Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: check deployer balance before deploy + verify contracts #480

Merged
merged 4 commits into from
Feb 22, 2023

Conversation

CJ42
Copy link
Member

@CJ42 CJ42 commented Feb 22, 2023

@github-actions
Copy link
Contributor

👋 Hello
⛽ I am the Gas Bot Reporter. I keep track of the gas costs of common interactions using Universal Profiles 🆙 !
📊 Here is a summary of the gas cost with the code introduced by this PR.

⛽📊 See Gas Benchmark report

This document contains the gas usage for common interactions and scenarios when using UniversalProfile smart contracts.

🔀 execute scenarios

👑 unrestricted controller

execute scenarios - 👑 main controller ⛽ Gas Usage
transfer LYX to an EOA 55442
transfer LYX to a UP 57044
transfer tokens (LSP7) to an EOA (no data) 101696
transfer tokens (LSP7) to a UP (no data) 261725
transfer a NFT (LSP8) to a EOA (no data) 165572
transfer a NFT (LSP8) to a UP (no data) 289481

🛃 restricted controller

execute scenarios - 🛃 restricted controller ⛽ Gas Usage
transfer some LYXes to an EOA - restricted to 1 x allowed address only (TRANSFERVALUE + 1x AllowedCalls) 62197
transfers some tokens (LSP7) to an EOA - restricted to LSP7 + 2x allowed contracts only (CALL + 2x AllowedCalls) (no data) 114110
transfers some tokens (LSP7) to an other UP - restricted to LSP7 + 2x allowed contracts only (CALL + 2x AllowedCalls) (no data) 274139
transfers a NFT (LSP8) to an EOA - restricted to LSP8 + 2x allowed contracts only (CALL + 2x AllowedCalls) (no data) 177986
transfers a NFT (LSP8) to an other UP - restricted to LSP8 + 2x allowed contracts only (CALL + 2x AllowedCalls) (no data) 301895

🗄️ setData scenarios

👑 unrestricted controller

setData scenarios - 👑 main controller ⛽ Gas Usage
updates profile details (LSP3Profile metadata) 135626
give permissions to a controller (AddressPermissions[] + AddressPermissions[index] + AddressPermissions:Permissions:) 140261
restrict a controller to some specific ERC725Y Data Keys 140116
restrict a controller to interact only with 3x specific addresses 140060
remove a controller (its permissions + its address from the AddressPermissions[] array) 75616
write 5x LSP12 Issued Assets 230434

🛃 restricted controller

setData scenarios - 🛃 restricted controller ⛽ Gas Usage
setData(bytes32,bytes) -> updates 1x data key 101383
setData(bytes32[],bytes[]) -> updates 3x data keys (first x3) 159345
setData(bytes32[],bytes[]) -> updates 3x data keys (middle x3) 143274
setData(bytes32[],bytes[]) -> updates 3x data keys (last x3) 168307
setData(bytes32[],bytes[]) -> updates 2x data keys + add 3x new controllers (including setting the array length + indexes under AddressPermissions[index]) 258255

📝 Notes

  • The execute and setData scenarios are executed on a fresh UniversalProfile and LSP6KeyManager smart contracts, deployed as standard contracts (not as proxy behind a base contract implementation).

Copy link
Contributor

@CallumGrindle CallumGrindle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool! Did you verify it fails when the balance is too low?

@CJ42 CJ42 force-pushed the ci/deployer-key branch 3 times, most recently from 90107e3 to eab92e7 Compare February 22, 2023 12:41
@CJ42 CJ42 force-pushed the ci/deployer-key branch 2 times, most recently from 5c84737 to 0bbc9f2 Compare February 22, 2023 13:00
@CJ42
Copy link
Member Author

CJ42 commented Feb 22, 2023

Cool! Did you verify it fails when the balance is too low?

@CallumGrindle checked and yes the CI fail.
I have also edited the script to output the deployer address to fund.

See example when CI fail: https://github.com/lukso-network/lsp-smart-contracts/actions/runs/4242918101/jobs/7375057169

image

@CJ42 CJ42 merged commit 7f9f209 into develop Feb 22, 2023
@CJ42 CJ42 deleted the ci/deployer-key branch February 22, 2023 18:00
JeneaVranceanu added a commit to JeneaVranceanu/lsp-universalprofile-smart-contracts that referenced this pull request Mar 1, 2023
* develop:
  refactor!: change LSP5/6/10 Array length from `uint256` to `uint128` (lukso-network#482)
  ci: temporarily disable downloading Android artifacts on github release (lukso-network#483)
  perf: reduce LSP1Delegate deployment cost by 8,678 gas (lukso-network#485)
  feat!: Add batchCalls function in LSP0 and LSP9 (lukso-network#476)
  test: add tests for edge cases with LSP1 returned values (e.g: `LSP1: asset sent is not registered`, ...) (lukso-network#479)
  refactor!: change `CHANGEPERMISSIONS` to `EDITPERMISSIONS` (lukso-network#481)
  ci: check deployer balance before deploy + verify contracts (lukso-network#480)
  ci: move ci scripts in a `ci/` subfolder (lukso-network#478)
  docs: add extra note about Address lib in CHANGELOG 0.8.1 (lukso-network#477)
  chore: prepare release 0.8.1 (lukso-network#474)
  refactor: replace param with literal LSP9 interfaceId (lukso-network#472)
  refactor: Support Extension for `bytes4(0)` sig in LSP0-LSP9 (lukso-network#473)
  refactor: separate the LSP6 core contract in logic modules (lukso-network#461)
  feat: create `LSP0Utils` library with functions to retrieve LSP1 addresses (lukso-network#466)
  ci: update CI to publish android artifacts + disable temporarily android artifacts build (web3 not working) (lukso-network#469)
  chore: remove Address library (lukso-network#471)
  fix: Add typescript transpilation and hook in package.json exports (lukso-network#470)

# Conflicts:
#	.gitignore
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants