refactor(TrustedCodehashAccess): add storage gap for upgrade safety

Closes #131
This commit is contained in:
r4bbit
2025-02-28 10:23:39 +01:00
parent 60081c14fb
commit a95ff6d3f6
3 changed files with 21 additions and 19 deletions

View File

@@ -168,7 +168,7 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 95475 | 95475 | 95475 | 95475 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| lock | 14216 | 52150 | 52082 | 93689 | 260 |
| lock | 14216 | 52149 | 52082 | 93689 | 260 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| migrateToVault | 13563 | 72244 | 15769 | 187401 | 3 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -186,7 +186,7 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| rewardStartTime | 429 | 1429 | 1429 | 2429 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| rewardsBalanceOf | 2324 | 3519 | 3909 | 6324 | 268 |
| rewardsBalanceOf | 2324 | 3513 | 3909 | 6324 | 268 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| setReward | 2484 | 105517 | 107034 | 107034 | 264 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -194,7 +194,7 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| setTrustedCodehash | 24221 | 24221 | 24221 | 24221 | 77 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| stake | 2681 | 237280 | 230009 | 251100 | 1607 |
| stake | 2681 | 237192 | 230009 | 251100 | 1607 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalMP | 777 | 1223 | 1223 | 1669 | 6 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -206,17 +206,17 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalRewardsAccrued | 384 | 384 | 384 | 384 | 3 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalRewardsSupply | 993 | 1615 | 1774 | 6733 | 290 |
| totalRewardsSupply | 993 | 1612 | 1774 | 6733 | 290 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalShares | 637 | 637 | 637 | 637 | 6 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalStaked | 385 | 385 | 385 | 385 | 1115 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| unstake | 56017 | 81048 | 80911 | 88301 | 269 |
| unstake | 56017 | 81071 | 80911 | 88301 | 269 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| updateGlobalState | 15809 | 27646 | 29200 | 29503 | 276 |
| updateGlobalState | 15809 | 27797 | 29200 | 29503 | 276 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| updateVaultMP | 25103 | 34530 | 36516 | 36819 | 276 |
| updateVaultMP | 25103 | 34704 | 36516 | 36819 | 276 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| upgradeToAndCall | 3225 | 7892 | 8437 | 10925 | 5 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -242,7 +242,7 @@
|----------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 12167 | 126461 | 69872 | 353935 | 4 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| lock | 12097 | 67386 | 67531 | 109137 | 261 |
| lock | 12097 | 67385 | 67531 | 109137 | 261 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| migrateToVault | 29034 | 98943 | 31240 | 236555 | 3 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
@@ -250,13 +250,13 @@
|----------------------------------------+-----------------+--------+--------+--------+---------|
| register | 12632 | 78058 | 78550 | 78550 | 308 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| stake | 12077 | 290972 | 283898 | 304989 | 1608 |
| stake | 12077 | 290883 | 283898 | 304989 | 1608 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| stakeManager | 367 | 367 | 367 | 367 | 307 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| trustStakeManager | 7577 | 7577 | 7577 | 7577 | 1 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| unstake | 12054 | 111580 | 112021 | 119411 | 270 |
| unstake | 12054 | 111603 | 112021 | 119411 | 270 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| withdraw | 20705 | 20705 | 20705 | 20705 | 1 |
╰----------------------------------------+-----------------+--------+--------+--------+---------╯
@@ -272,7 +272,7 @@
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| fallback | 735 | 8099 | 833 | 142290 | 7358 |
| fallback | 735 | 8110 | 833 | 142290 | 7358 |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| implementation | 343 | 2342 | 2343 | 2343 | 2455 |
╰----------------------------------------------------+-----------------+------+--------+--------+---------╯
@@ -376,11 +376,11 @@
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| approve | 29158 | 32602 | 29350 | 46342 | 1586 |
| approve | 29158 | 32603 | 29350 | 46342 | 1586 |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| balanceOf | 558 | 1118 | 558 | 2558 | 1900 |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| mint | 34095 | 38637 | 34287 | 68379 | 1598 |
| mint | 34095 | 38638 | 34287 | 68379 | 1598 |
╰---------------------------------------------+-----------------+-------+--------+-------+---------╯
╭-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╮

View File

@@ -7,11 +7,11 @@ EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 450444)
EmergencyExitTest:test_EmergencyExitWithLock() (gas: 448187)
EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 435625)
EmergencyExitTest:test_OnlyOwnerCanEnableEmergencyMode() (gas: 39462)
FuzzTests:testFuzz_AccrueMP(uint256,uint256,uint16) (runs: 1000, μ: 521120, ~: 515988)
FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1000, μ: 510818, ~: 502017)
FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1000, μ: 604742, ~: 605988)
FuzzTests:testFuzz_Stake(uint256,uint256) (runs: 1000, μ: 404270, ~: 395469)
FuzzTests:testFuzz_Unstake(uint256,uint256,uint16,uint256) (runs: 1000, μ: 530267, ~: 529967)
FuzzTests:testFuzz_AccrueMP(uint256,uint256,uint16) (runs: 1000, μ: 521175, ~: 515988)
FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1000, μ: 510620, ~: 501981)
FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1000, μ: 604739, ~: 605984)
FuzzTests:testFuzz_Stake(uint256,uint256) (runs: 1000, μ: 404072, ~: 395433)
FuzzTests:testFuzz_Unstake(uint256,uint256,uint16,uint256) (runs: 1000, μ: 530269, ~: 529967)
IntegrationTest:testStakeFoo() (gas: 1403381)
KarmaMintAllowanceTest:testAddKarmaDistributorOnlyOwner() (gas: 348441)
KarmaMintAllowanceTest:testBalanceOf() (gas: 428754)
@@ -48,7 +48,7 @@ KarmaTest:testTransfersNotAllowed() (gas: 20685)
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 8942756)
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 350352)
LeaveTest:test_TrustNewStakeManager() (gas: 8995615)
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1000, μ: 406917, ~: 406944)
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1000, μ: 406915, ~: 406944)
LockTest:test_LockFailsWithNoStake() (gas: 114574)
LockTest:test_LockFailsWithZero() (gas: 367631)
LockTest:test_LockWithoutPriorLock() (gas: 465087)

View File

@@ -14,6 +14,8 @@ import { ITrustedCodehashAccess } from "./interfaces/ITrustedCodehashAccess.sol"
abstract contract TrustedCodehashAccess is ITrustedCodehashAccess, OwnableUpgradeable {
/// @notice Whidelisted codehashes.
mapping(bytes32 codehash => bool permission) private trustedCodehashes;
/// @notice Gap for upgrade safety.
uint256[10] private __gap;
/**
* @notice Restricts access based on the codehash of the caller.