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

chore: remove Address library #471

Merged
merged 2 commits into from
Feb 13, 2023
Merged

chore: remove Address library #471

merged 2 commits into from
Feb 13, 2023

Conversation

YamenMerhi
Copy link
Member

Why was this PR introduced ?

  • Although the init contracts were intended for minimal proxies development only, some devs use them for upgradeable proxies, which requires not having any mention of delegate-call in the contracts, so Address library was removed.

#241 to be implemented in the future.

@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 55316
transfer LYX to a UP 56918
transfer tokens (LSP7) to an EOA (no data) 101570
transfer tokens (LSP7) to a UP (no data) 261455
transfer a NFT (LSP8) to a EOA (no data) 165446
transfer a NFT (LSP8) to a UP (no data) 289199

🛃 restricted controller

execute scenarios - 🛃 restricted controller ⛽ Gas Usage
transfer some LYXes to an EOA - restricted to 1 x allowed address only (TRANSFERVALUE + 1x AllowedCalls) 62118
transfers some tokens (LSP7) to an EOA - restricted to LSP7 + 2x allowed contracts only (CALL + 2x AllowedCalls) (no data) 114031
transfers some tokens (LSP7) to an other UP - restricted to LSP7 + 2x allowed contracts only (CALL + 2x AllowedCalls) (no data) 273916
transfers a NFT (LSP8) to an EOA - restricted to LSP8 + 2x allowed contracts only (CALL + 2x AllowedCalls) (no data) 177907
transfers a NFT (LSP8) to an other UP - restricted to LSP8 + 2x allowed contracts only (CALL + 2x AllowedCalls) (no data) 301660

🗄️ setData scenarios

👑 unrestricted controller

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

🛃 restricted controller

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

📝 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).

@CJ42 CJ42 merged commit 4e11beb into develop Feb 13, 2023
@CJ42 CJ42 deleted the remove/isContract branch February 13, 2023 16:32
@YamenMerhi YamenMerhi mentioned this pull request Feb 21, 2023
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