mirror of
https://github.com/vacp2p/staking-reward-streamer.git
synced 2026-01-09 21:18:01 -05:00
feat(RewardsStreamerMP): enable extending lock period
This commit is contained in:
committed by
r4bbit
parent
50439be124
commit
e4d21b6caf
186
.gas-report
186
.gas-report
@@ -10,7 +10,7 @@
|
||||
|-------------------------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-------------------------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| fallback | 5307 | 133939 | 190833 | 190869 | 502 |
|
||||
| fallback | 746 | 132652 | 190833 | 190869 | 507 |
|
||||
╰-------------------------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
╭-----------------------------------------------------+-----------------+---------+---------+---------+---------╮
|
||||
@@ -24,7 +24,7 @@
|
||||
|-----------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-----------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| run | 4074161 | 4074161 | 4074161 | 4074161 | 105 |
|
||||
| run | 4074161 | 4074161 | 4074161 | 4074161 | 110 |
|
||||
╰-----------------------------------------------------+-----------------+---------+---------+---------+---------╯
|
||||
|
||||
╭-----------------------------------------------------------+-----------------+---------+---------+---------+---------╮
|
||||
@@ -46,41 +46,41 @@
|
||||
+=======================================================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| 8534673 | 40690 | | | | |
|
||||
| 8516593 | 40605 | | | | |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| | | | | | |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| run | 7449061 | 7449061 | 7449061 | 7449061 | 77 |
|
||||
| run | 7432013 | 7432013 | 7432013 | 7432013 | 82 |
|
||||
╰-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
|
||||
|
||||
╭---------------------------------------------------------+-----------------+------+--------+------+---------╮
|
||||
| script/DeploymentConfig.s.sol:DeploymentConfig Contract | | | | | |
|
||||
+============================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|---------------------------------------------------------+-----------------+------+--------+------+---------|
|
||||
| 0 | 9183 | | | | |
|
||||
|---------------------------------------------------------+-----------------+------+--------+------+---------|
|
||||
| | | | | | |
|
||||
|---------------------------------------------------------+-----------------+------+--------+------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|---------------------------------------------------------+-----------------+------+--------+------+---------|
|
||||
| activeNetworkConfig | 597 | 2744 | 597 | 6597 | 299 |
|
||||
╰---------------------------------------------------------+-----------------+------+--------+------+---------╯
|
||||
╭---------------------------------------------------------+-----------------+-----+--------+-----+---------╮
|
||||
| script/DeploymentConfig.s.sol:DeploymentConfig Contract | | | | | |
|
||||
+==========================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
|
||||
| 0 | 9183 | | | | |
|
||||
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
|
||||
| | | | | | |
|
||||
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
|
||||
| activeNetworkConfig | 597 | 597 | 597 | 597 | 314 |
|
||||
╰---------------------------------------------------------+-----------------+-----+--------+-----+---------╯
|
||||
|
||||
╭-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╮
|
||||
| script/UpgradeRewardsStreamerMP.s.sol:UpgradeRewardsStreamerMPScript Contract | | | | | |
|
||||
+=========================================================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| 5915618 | 28454 | | | | |
|
||||
| 5897542 | 28369 | | | | |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| | | | | | |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| runWithAdminAndProxy | 3344290 | 3344290 | 3344290 | 3344290 | 3 |
|
||||
| runWithAdminAndProxy | 3327242 | 3327242 | 3327242 | 3327242 | 3 |
|
||||
╰-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
|
||||
|
||||
╭------------------------------+-----------------+--------+--------+--------+---------╮
|
||||
@@ -96,29 +96,29 @@
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| acceptOwnership | 12020 | 12020 | 12020 | 12020 | 1 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| addRewardDistributor | 2589 | 65137 | 70586 | 70586 | 141 |
|
||||
| addRewardDistributor | 2589 | 65323 | 70586 | 70586 | 146 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| allowance | 482 | 482 | 482 | 482 | 3 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| approve | 419 | 419 | 419 | 419 | 3 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| balanceOf | 21019 | 21019 | 21019 | 21019 | 9 |
|
||||
| balanceOf | 4019 | 11685 | 10019 | 21019 | 9 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getRewardDistributors | 5140 | 7384 | 7384 | 9628 | 6 |
|
||||
| getRewardDistributors | 1140 | 3384 | 3384 | 5628 | 6 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| initialize | 98237 | 98237 | 98237 | 98237 | 105 |
|
||||
| initialize | 98237 | 98237 | 98237 | 98237 | 110 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mint | 2654 | 58515 | 74916 | 74916 | 18 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mintAllowance | 28286 | 28322 | 28322 | 28359 | 2 |
|
||||
| mintAllowance | 7286 | 7322 | 7322 | 7359 | 2 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| owner | 2363 | 2363 | 2363 | 2363 | 3 |
|
||||
| owner | 363 | 1029 | 363 | 2363 | 3 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| removeRewardDistributor | 2632 | 12148 | 4824 | 28990 | 9 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setReward | 21947 | 151921 | 164145 | 164145 | 289 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalSupply | 24827 | 24827 | 24827 | 24827 | 11 |
|
||||
| totalSupply | 3827 | 6008 | 3827 | 11827 | 11 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| transfer | 417 | 417 | 417 | 417 | 3 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
@@ -144,7 +144,7 @@
|
||||
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| isApprovedForAll | 510 | 510 | 510 | 510 | 1 |
|
||||
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| metadataGenerator | 2325 | 2325 | 2325 | 2325 | 1 |
|
||||
| metadataGenerator | 325 | 325 | 325 | 325 | 1 |
|
||||
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| safeTransferFrom(address,address,uint256) | 485 | 485 | 485 | 485 | 1 |
|
||||
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
@@ -154,7 +154,7 @@
|
||||
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| setMetadataGenerator | 24036 | 27334 | 28983 | 28983 | 3 |
|
||||
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| tokenURI | 75449 | 75449 | 75449 | 75449 | 1 |
|
||||
| tokenURI | 68949 | 68949 | 68949 | 68949 | 1 |
|
||||
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| transferFrom | 530 | 530 | 530 | 530 | 1 |
|
||||
╰-------------------------------------------------+-----------------+-------+--------+-------+---------╯
|
||||
@@ -164,7 +164,7 @@
|
||||
+=============================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| 3552625 | 16460 | | | | |
|
||||
| 3534553 | 16375 | | | | |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| | | | | | |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
@@ -172,7 +172,7 @@
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| MAX_LOCKUP_PERIOD | 383 | 383 | 383 | 383 | 4 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| MAX_MULTIPLIER | 263 | 263 | 263 | 263 | 14 |
|
||||
| MAX_MULTIPLIER | 263 | 263 | 263 | 263 | 16 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| MIN_LOCKUP_PERIOD | 309 | 309 | 309 | 309 | 15 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
@@ -182,77 +182,77 @@
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| enableEmergencyMode | 2543 | 25291 | 25457 | 25457 | 264 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getAccountTotalMaxMP | 21191 | 21191 | 21191 | 21191 | 1 |
|
||||
| getAccountTotalMaxMP | 3191 | 3191 | 3191 | 3191 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getAccountTotalStakedBalance | 21170 | 21170 | 21170 | 21170 | 1 |
|
||||
| getAccountTotalStakedBalance | 15170 | 15170 | 15170 | 15170 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getAccountVaults | 5230 | 5230 | 5230 | 5230 | 4 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getStakedBalance | 2643 | 2643 | 2643 | 2643 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getVault | 17970 | 17970 | 17970 | 17970 | 1100 |
|
||||
| getVault | 1970 | 1970 | 1970 | 1970 | 2130 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| initialize | 94886 | 94886 | 94886 | 94886 | 77 |
|
||||
| initialize | 94886 | 94886 | 94886 | 94886 | 82 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| lastRewardTime | 2407 | 2407 | 2407 | 2407 | 2 |
|
||||
| lastRewardTime | 407 | 1407 | 1407 | 2407 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| leave | 90373 | 90373 | 90373 | 90373 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| lock | 9163 | 47133 | 47067 | 88574 | 260 |
|
||||
| lock | 7040 | 69718 | 71758 | 88871 | 1032 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| migrateToVault | 13570 | 72264 | 15777 | 187446 | 3 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mpBalanceOf | 4917 | 8695 | 10316 | 10316 | 12 |
|
||||
| mpBalanceOf | 917 | 2361 | 2316 | 7063 | 12 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mpBalanceOfAccount | 32356 | 32356 | 32356 | 32356 | 1 |
|
||||
| mpBalanceOfAccount | 10356 | 10356 | 10356 | 10356 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mpStakedOf | 2606 | 2606 | 2606 | 2606 | 13 |
|
||||
| mpStakedOf | 606 | 759 | 606 | 2606 | 13 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| proxiableUUID | 342 | 342 | 342 | 342 | 3 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| registerVault | 2539 | 74457 | 74970 | 74970 | 308 |
|
||||
| registerVault | 2539 | 74488 | 74970 | 74970 | 328 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardEndTime | 2385 | 2385 | 2385 | 2385 | 2 |
|
||||
| rewardEndTime | 385 | 1385 | 1385 | 2385 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardStartTime | 2430 | 2430 | 2430 | 2430 | 2 |
|
||||
| rewardStartTime | 430 | 1430 | 1430 | 2430 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardsBalanceOf | 20340 | 24496 | 25953 | 26174 | 268 |
|
||||
| rewardsBalanceOf | 2340 | 3556 | 3953 | 6340 | 268 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setReward | 2508 | 105559 | 107076 | 107076 | 264 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setRewardsSupplier | 26831 | 26831 | 26831 | 26831 | 75 |
|
||||
| setRewardsSupplier | 26831 | 26831 | 26831 | 26831 | 80 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setTrustedCodehash | 24194 | 24194 | 24194 | 24194 | 77 |
|
||||
| setTrustedCodehash | 24194 | 24194 | 24194 | 24194 | 82 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| stake | 2703 | 232062 | 224911 | 245989 | 1607 |
|
||||
| stake | 2703 | 234447 | 225331 | 246118 | 2377 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMP | 6805 | 8257 | 8257 | 9710 | 6 |
|
||||
| totalMP | 805 | 1257 | 1257 | 1710 | 6 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMPAccrued | 2385 | 2385 | 2385 | 2385 | 1108 |
|
||||
| totalMPAccrued | 385 | 385 | 385 | 385 | 2132 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMPStaked | 2429 | 2429 | 2429 | 2429 | 1111 |
|
||||
| totalMPStaked | 429 | 429 | 429 | 429 | 2135 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMaxMP | 2407 | 2407 | 2407 | 2407 | 1108 |
|
||||
| totalMaxMP | 407 | 407 | 407 | 407 | 2132 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalRewardsAccrued | 2407 | 2407 | 2407 | 2407 | 3 |
|
||||
| totalRewardsAccrued | 407 | 407 | 407 | 407 | 3 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalRewardsSupply | 6737 | 11078 | 11792 | 11903 | 290 |
|
||||
| totalRewardsSupply | 998 | 1629 | 1792 | 6737 | 290 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalShares | 4662 | 4662 | 4662 | 4662 | 6 |
|
||||
| totalShares | 662 | 662 | 662 | 662 | 6 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalStaked | 2408 | 2408 | 2408 | 2408 | 1115 |
|
||||
| totalStaked | 408 | 408 | 408 | 408 | 2139 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| unstake | 50925 | 75961 | 75829 | 83197 | 269 |
|
||||
| unstake | 50925 | 75963 | 75829 | 83197 | 269 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| updateGlobalState | 15820 | 27835 | 29230 | 29521 | 276 |
|
||||
| updateGlobalState | 15820 | 27867 | 29230 | 29521 | 277 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| updateVaultMP | 25061 | 34604 | 36472 | 36763 | 276 |
|
||||
| updateVaultMP | 25061 | 34672 | 36472 | 36763 | 277 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| upgradeTo | 10235 | 10857 | 10235 | 12723 | 4 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| upgradeToAndCall | 3228 | 3228 | 3228 | 3228 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| vaultShares | 4893 | 4893 | 4893 | 4893 | 12 |
|
||||
| vaultShares | 893 | 1059 | 893 | 2893 | 12 |
|
||||
╰------------------------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
╭----------------------------------------+-----------------+--------+--------+--------+---------╮
|
||||
@@ -270,44 +270,44 @@
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| emergencyExit | 15023 | 31463 | 31461 | 48561 | 263 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| initialize | 99781 | 99781 | 99781 | 99781 | 308 |
|
||||
| initialize | 99781 | 99781 | 99781 | 99781 | 328 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| leave | 12161 | 126893 | 67285 | 360841 | 4 |
|
||||
| leave | 12161 | 126893 | 67285 | 360844 | 4 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| lock | 12091 | 62406 | 62533 | 104037 | 261 |
|
||||
| lock | 12091 | 85111 | 87221 | 104334 | 1033 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| migrateToVault | 29058 | 98946 | 31265 | 236516 | 3 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| owner | 379 | 398 | 379 | 2379 | 313 |
|
||||
| owner | 379 | 397 | 379 | 2379 | 333 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| register | 12674 | 78108 | 78600 | 78600 | 308 |
|
||||
| register | 12674 | 78138 | 78600 | 78600 | 328 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| stake | 12071 | 287434 | 280479 | 301557 | 1608 |
|
||||
| stake | 12071 | 289881 | 280899 | 301686 | 2378 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| stakeManager | 369 | 369 | 369 | 369 | 307 |
|
||||
| stakeManager | 369 | 369 | 369 | 369 | 327 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| trustStakeManager | 7580 | 7580 | 7580 | 7580 | 1 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| unstake | 12048 | 106424 | 106851 | 114219 | 270 |
|
||||
| unstake | 12048 | 106426 | 106851 | 114219 | 270 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| withdraw | 20754 | 20754 | 20754 | 20754 | 1 |
|
||||
╰----------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
╭----------------------------------------------------+-----------------+-------+--------+--------+---------╮
|
||||
| src/TransparentProxy.sol:TransparentProxy Contract | | | | | |
|
||||
+==========================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|----------------------------------------------------+-----------------+-------+--------+--------+---------|
|
||||
| 0 | 1520 | | | | |
|
||||
|----------------------------------------------------+-----------------+-------+--------+--------+---------|
|
||||
| | | | | | |
|
||||
|----------------------------------------------------+-----------------+-------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|----------------------------------------------------+-----------------+-------+--------+--------+---------|
|
||||
| fallback | 5208 | 16690 | 7374 | 142390 | 7358 |
|
||||
|----------------------------------------------------+-----------------+-------+--------+--------+---------|
|
||||
| implementation | 2346 | 2346 | 2346 | 2346 | 2455 |
|
||||
╰----------------------------------------------------+-----------------+-------+--------+--------+---------╯
|
||||
╭----------------------------------------------------+-----------------+------+--------+--------+---------╮
|
||||
| src/TransparentProxy.sol:TransparentProxy Contract | | | | | |
|
||||
+=========================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| 0 | 1520 | | | | |
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| | | | | | |
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| fallback | 708 | 5310 | 853 | 142390 | 12493 |
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| implementation | 346 | 2345 | 2346 | 2346 | 4017 |
|
||||
╰----------------------------------------------------+-----------------+------+--------+--------+---------╯
|
||||
|
||||
╭--------------------------------------------+-----------------+--------+--------+--------+---------╮
|
||||
| src/VaultFactory.sol:VaultFactory Contract | | | | | |
|
||||
@@ -320,7 +320,7 @@
|
||||
|--------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|--------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| createVault | 233045 | 249866 | 250145 | 250145 | 307 |
|
||||
| createVault | 233045 | 249883 | 250145 | 250145 | 327 |
|
||||
╰--------------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
╭------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------╮
|
||||
@@ -336,9 +336,9 @@
|
||||
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| generate | 54036 | 54036 | 54036 | 54036 | 1 |
|
||||
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| imagePrefix | 3183 | 3183 | 3183 | 3183 | 2 |
|
||||
| imagePrefix | 1183 | 2183 | 2183 | 3183 | 2 |
|
||||
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| imageSuffix | 3227 | 3227 | 3227 | 3227 | 2 |
|
||||
| imageSuffix | 1227 | 2227 | 2227 | 3227 | 2 |
|
||||
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| setImageStrings | 25295 | 30634 | 30634 | 35974 | 2 |
|
||||
╰------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------╯
|
||||
@@ -358,9 +358,9 @@
|
||||
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| setURLStrings | 25463 | 30802 | 30802 | 36142 | 2 |
|
||||
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| urlPrefix | 3184 | 3184 | 3184 | 3184 | 1 |
|
||||
| urlPrefix | 1184 | 1184 | 1184 | 1184 | 1 |
|
||||
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| urlSuffix | 3228 | 3228 | 3228 | 3228 | 1 |
|
||||
| urlSuffix | 1228 | 1228 | 1228 | 1228 | 1 |
|
||||
╰------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------╯
|
||||
|
||||
╭-------------------------------------------------------------------+-----------------+-------+--------+-------+---------╮
|
||||
@@ -374,13 +374,13 @@
|
||||
|-------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| rewardsBalanceOfAccount | 2549 | 2549 | 2549 | 2549 | 18 |
|
||||
| rewardsBalanceOfAccount | 549 | 1882 | 2549 | 2549 | 18 |
|
||||
|-------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| setTotalKarmaShares | 43589 | 43589 | 43589 | 43589 | 26 |
|
||||
|-------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| setUserKarmaShare | 44194 | 44194 | 44194 | 44194 | 6 |
|
||||
|-------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| totalRewardsSupply | 324 | 1568 | 2324 | 2324 | 90 |
|
||||
| totalRewardsSupply | 324 | 990 | 324 | 2324 | 90 |
|
||||
╰-------------------------------------------------------------------+-----------------+-------+--------+-------+---------╯
|
||||
|
||||
╭---------------------------------------------------------------------+-----------------+-------+--------+-------+---------╮
|
||||
@@ -394,7 +394,7 @@
|
||||
|---------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|---------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| generate | 60281 | 60281 | 60281 | 60281 | 1 |
|
||||
| generate | 58281 | 58281 | 58281 | 58281 | 1 |
|
||||
╰---------------------------------------------------------------------+-----------------+-------+--------+-------+---------╯
|
||||
|
||||
╭---------------------------------------------+-----------------+-------+--------+-------+---------╮
|
||||
@@ -408,11 +408,11 @@
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| approve | 29075 | 32521 | 29267 | 46259 | 1586 |
|
||||
| approve | 29075 | 31575 | 29243 | 46259 | 2374 |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| balanceOf | 2561 | 2561 | 2561 | 2561 | 1900 |
|
||||
| balanceOf | 561 | 924 | 561 | 2561 | 2930 |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| mint | 33964 | 38508 | 34156 | 68248 | 1598 |
|
||||
| mint | 33964 | 37240 | 34144 | 68248 | 2386 |
|
||||
╰---------------------------------------------+-----------------+-------+--------+-------+---------╯
|
||||
|
||||
╭-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╮
|
||||
@@ -426,7 +426,7 @@
|
||||
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| leave | 234 | 164470 | 164470 | 328810 | 333 |
|
||||
| leave | 237 | 164473 | 164473 | 328813 | 333 |
|
||||
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| proxiableUUID | 330 | 330 | 330 | 330 | 1 |
|
||||
╰-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
193
.gas-snapshot
193
.gas-snapshot
@@ -1,123 +1,128 @@
|
||||
CompoundTest:test_RevertWhenInsufficientMPBalance() (gas: 382543)
|
||||
CompoundTest:test_RevertWhenInsufficientMPBalance() (gas: 382672)
|
||||
EmergencyExitTest:test_CannotEnableEmergencyModeTwice() (gas: 93554)
|
||||
EmergencyExitTest:test_CannotLeaveBeforeEmergencyMode() (gas: 355447)
|
||||
EmergencyExitTest:test_EmergencyExitBasic() (gas: 549158)
|
||||
EmergencyExitTest:test_EmergencyExitMultipleUsers() (gas: 986752)
|
||||
EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 503687)
|
||||
EmergencyExitTest:test_EmergencyExitWithLock() (gas: 469608)
|
||||
EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 504144)
|
||||
EmergencyExitTest:test_CannotLeaveBeforeEmergencyMode() (gas: 355576)
|
||||
EmergencyExitTest:test_EmergencyExitBasic() (gas: 448287)
|
||||
EmergencyExitTest:test_EmergencyExitMultipleUsers() (gas: 772010)
|
||||
EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 453816)
|
||||
EmergencyExitTest:test_EmergencyExitWithLock() (gas: 450737)
|
||||
EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 438773)
|
||||
EmergencyExitTest:test_OnlyOwnerCanEnableEmergencyMode() (gas: 39133)
|
||||
FuzzTests:testFuzz_AccrueMP(uint256,uint256,uint16) (runs: 1000, μ: 604183, ~: 598482)
|
||||
FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1000, μ: 608711, ~: 600167)
|
||||
FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1000, μ: 662753, ~: 665434)
|
||||
FuzzTests:testFuzz_Stake(uint256,uint256) (runs: 1000, μ: 487065, ~: 478521)
|
||||
FuzzTests:testFuzz_Unstake(uint256,uint256,uint16,uint256) (runs: 1000, μ: 613831, ~: 613495)
|
||||
IntegrationTest:testStakeFoo() (gas: 2474855)
|
||||
KarmaMintAllowanceTest:testAddKarmaDistributorOnlyOwner() (gas: 373280)
|
||||
KarmaMintAllowanceTest:testBalanceOf() (gas: 467836)
|
||||
KarmaMintAllowanceTest:testBalanceOfWithNoSystemTotalKarma() (gas: 69501)
|
||||
KarmaMintAllowanceTest:testMintAllowance_Available() (gas: 383546)
|
||||
KarmaMintAllowanceTest:testMintAllowance_NotAvailable() (gas: 383551)
|
||||
KarmaMintAllowanceTest:testMintOnlyOwner() (gas: 449793)
|
||||
KarmaMintAllowanceTest:testMint_Ok() (gas: 485459)
|
||||
FuzzTests:testFuzz_AccrueMP(uint256,uint256,uint16) (runs: 1000, μ: 524502, ~: 518644)
|
||||
FuzzTests:testFuzz_AccrueMP_Relock(uint256,uint256,uint16) (runs: 1000, μ: 547862, ~: 549760)
|
||||
FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1000, μ: 514153, ~: 505343)
|
||||
FuzzTests:testFuzz_Lock(uint256,uint256) (runs: 1000, μ: 526489, ~: 526492)
|
||||
FuzzTests:testFuzz_Relock(uint256,uint256,uint256) (runs: 1000, μ: 547061, ~: 553885)
|
||||
FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1000, μ: 612269, ~: 613540)
|
||||
FuzzTests:testFuzz_Stake(uint256,uint256) (runs: 1000, μ: 407464, ~: 398654)
|
||||
FuzzTests:testFuzz_Unstake(uint256,uint256,uint16,uint256) (runs: 1000, μ: 533989, ~: 533640)
|
||||
IntegrationTest:testStakeFoo() (gas: 1425242)
|
||||
KarmaMintAllowanceTest:testAddKarmaDistributorOnlyOwner() (gas: 364780)
|
||||
KarmaMintAllowanceTest:testBalanceOf() (gas: 443836)
|
||||
KarmaMintAllowanceTest:testBalanceOfWithNoSystemTotalKarma() (gas: 49501)
|
||||
KarmaMintAllowanceTest:testMintAllowance_Available() (gas: 355546)
|
||||
KarmaMintAllowanceTest:testMintAllowance_NotAvailable() (gas: 355551)
|
||||
KarmaMintAllowanceTest:testMintOnlyOwner() (gas: 397793)
|
||||
KarmaMintAllowanceTest:testMint_Ok() (gas: 425459)
|
||||
KarmaMintAllowanceTest:testMint_RevertWithAllowanceExceeded() (gas: 405516)
|
||||
KarmaMintAllowanceTest:testRemoveKarmaDistributorOnlyOwner() (gas: 97355)
|
||||
KarmaMintAllowanceTest:testRemoveKarmaDistributorOnlyOwner() (gas: 88855)
|
||||
KarmaMintAllowanceTest:testRemoveUnknownKarmaDistributor() (gas: 41416)
|
||||
KarmaMintAllowanceTest:testTotalSupply() (gas: 380013)
|
||||
KarmaMintAllowanceTest:testTransfersNotAllowed() (gas: 61719)
|
||||
KarmaMintAllowanceTest:testTotalSupply() (gas: 352013)
|
||||
KarmaMintAllowanceTest:testTransfersNotAllowed() (gas: 40219)
|
||||
KarmaNFTTest:testApproveNotAllowed() (gas: 10507)
|
||||
KarmaNFTTest:testGetApproved() (gas: 10531)
|
||||
KarmaNFTTest:testIsApprovedForAll() (gas: 10705)
|
||||
KarmaNFTTest:testSafeTransferNotAllowed() (gas: 10688)
|
||||
KarmaNFTTest:testSafeTransferWithDataNotAllowed() (gas: 10884)
|
||||
KarmaNFTTest:testSetApprovalForAllNotAllowed() (gas: 8519)
|
||||
KarmaNFTTest:testSetMetadataGenerator() (gas: 986525)
|
||||
KarmaNFTTest:testSetMetadataGenerator() (gas: 984525)
|
||||
KarmaNFTTest:testSetMetadataGeneratorRevert() (gas: 981085)
|
||||
KarmaNFTTest:testTokenURI() (gas: 1086310)
|
||||
KarmaNFTTest:testTokenURI() (gas: 1079810)
|
||||
KarmaNFTTest:testTransferNotAllowed() (gas: 10701)
|
||||
KarmaOwnershipTest:testAddKarmaDistributorOnlyOwner() (gas: 373268)
|
||||
KarmaOwnershipTest:testBalanceOf() (gas: 467806)
|
||||
KarmaOwnershipTest:testBalanceOfWithNoSystemTotalKarma() (gas: 69479)
|
||||
KarmaOwnershipTest:testAddKarmaDistributorOnlyOwner() (gas: 364768)
|
||||
KarmaOwnershipTest:testBalanceOf() (gas: 443806)
|
||||
KarmaOwnershipTest:testBalanceOfWithNoSystemTotalKarma() (gas: 49479)
|
||||
KarmaOwnershipTest:testInitialOwner() (gas: 17601)
|
||||
KarmaOwnershipTest:testMintOnlyOwner() (gas: 449757)
|
||||
KarmaOwnershipTest:testOwnershipTransfer() (gas: 124047)
|
||||
KarmaOwnershipTest:testRemoveKarmaDistributorOnlyOwner() (gas: 97320)
|
||||
KarmaOwnershipTest:testMintOnlyOwner() (gas: 397757)
|
||||
KarmaOwnershipTest:testOwnershipTransfer() (gas: 98047)
|
||||
KarmaOwnershipTest:testRemoveKarmaDistributorOnlyOwner() (gas: 88820)
|
||||
KarmaOwnershipTest:testRemoveUnknownKarmaDistributor() (gas: 41398)
|
||||
KarmaOwnershipTest:testTotalSupply() (gas: 379983)
|
||||
KarmaOwnershipTest:testTransfersNotAllowed() (gas: 61696)
|
||||
KarmaTest:testAddKarmaDistributorOnlyOwner() (gas: 373268)
|
||||
KarmaTest:testBalanceOf() (gas: 467806)
|
||||
KarmaTest:testBalanceOfWithNoSystemTotalKarma() (gas: 69545)
|
||||
KarmaTest:testMintOnlyOwner() (gas: 449757)
|
||||
KarmaTest:testRemoveKarmaDistributorOnlyOwner() (gas: 97298)
|
||||
KarmaOwnershipTest:testTotalSupply() (gas: 351983)
|
||||
KarmaOwnershipTest:testTransfersNotAllowed() (gas: 40196)
|
||||
KarmaTest:testAddKarmaDistributorOnlyOwner() (gas: 364768)
|
||||
KarmaTest:testBalanceOf() (gas: 443806)
|
||||
KarmaTest:testBalanceOfWithNoSystemTotalKarma() (gas: 49545)
|
||||
KarmaTest:testMintOnlyOwner() (gas: 397757)
|
||||
KarmaTest:testRemoveKarmaDistributorOnlyOwner() (gas: 88798)
|
||||
KarmaTest:testRemoveUnknownKarmaDistributor() (gas: 41398)
|
||||
KarmaTest:testTotalSupply() (gas: 379983)
|
||||
KarmaTest:testTransfersNotAllowed() (gas: 61741)
|
||||
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 9895239)
|
||||
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 352541)
|
||||
LeaveTest:test_TrustNewStakeManager() (gas: 9810393)
|
||||
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1000, μ: 404121, ~: 404145)
|
||||
LockTest:test_LockFailsWithNoStake() (gas: 109576)
|
||||
LockTest:test_LockFailsWithZero() (gas: 364791)
|
||||
LockTest:test_LockWithoutPriorLock() (gas: 552397)
|
||||
LockTest:test_RevertWhenVaultToLockIsEmpty() (gas: 109534)
|
||||
MaliciousUpgradeTest:test_UpgradeStackOverflowStakeManager() (gas: 2139179)
|
||||
KarmaTest:testTotalSupply() (gas: 351983)
|
||||
KarmaTest:testTransfersNotAllowed() (gas: 40241)
|
||||
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 9710215)
|
||||
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 352670)
|
||||
LeaveTest:test_TrustNewStakeManager() (gas: 9764369)
|
||||
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1000, μ: 404126, ~: 404151)
|
||||
LockTest:test_LockFailsWithNoStake() (gas: 109453)
|
||||
LockTest:test_LockFailsWithZero() (gas: 362797)
|
||||
LockTest:test_LockMultipleTimesExceedMaxLock() (gas: 687937)
|
||||
LockTest:test_LockWithPriorLock() (gas: 591117)
|
||||
LockTest:test_LockWithoutPriorLock() (gas: 469032)
|
||||
LockTest:test_RevertWhenVaultToLockIsEmpty() (gas: 109411)
|
||||
MaliciousUpgradeTest:test_UpgradeStackOverflowStakeManager() (gas: 2077811)
|
||||
MathTest:test_CalcAbsoluteMaxTotalMP() (gas: 5196)
|
||||
MathTest:test_CalcAccrueMP() (gas: 8511)
|
||||
MathTest:test_CalcBonusMP() (gas: 30612)
|
||||
MathTest:test_CalcBonusMP() (gas: 19112)
|
||||
MathTest:test_CalcInitialMP() (gas: 5728)
|
||||
MathTest:test_CalcMaxAccruedMP() (gas: 4842)
|
||||
MathTest:test_CalcMaxTotalMP() (gas: 31352)
|
||||
MultipleVaultsStakeTest:test_StakeMultipleVaults() (gas: 977093)
|
||||
MathTest:test_CalcMaxTotalMP() (gas: 19852)
|
||||
MultipleVaultsStakeTest:test_StakeMultipleVaults() (gas: 860480)
|
||||
NFTMetadataGeneratorSVGTest:testGenerateMetadata() (gas: 91375)
|
||||
NFTMetadataGeneratorSVGTest:testSetImageStrings() (gas: 77581)
|
||||
NFTMetadataGeneratorSVGTest:testSetImageStrings() (gas: 60081)
|
||||
NFTMetadataGeneratorSVGTest:testSetImageStringsRevert() (gas: 35891)
|
||||
NFTMetadataGeneratorURLTest:testGenerateMetadata() (gas: 108068)
|
||||
NFTMetadataGeneratorURLTest:testSetBaseURL() (gas: 59131)
|
||||
NFTMetadataGeneratorURLTest:testSetBaseURL() (gas: 50631)
|
||||
NFTMetadataGeneratorURLTest:testSetBaseURLRevert() (gas: 36066)
|
||||
RewardsStreamerMP_RewardsTest:testRewardsBalanceOf() (gas: 2769110)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards() (gas: 275584)
|
||||
RewardsStreamerMP_RewardsTest:testRewardsBalanceOf() (gas: 1325868)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards() (gas: 224584)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadAmount() (gas: 61186)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadDuration() (gas: 100963)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsNotAuthorized() (gas: 39344)
|
||||
RewardsStreamerMP_RewardsTest:testTotalRewardsSupply() (gas: 1295024)
|
||||
StakeTest:test_StakeMultipleAccounts() (gas: 715652)
|
||||
StakeTest:test_StakeMultipleAccountsAndRewards() (gas: 770600)
|
||||
StakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1439544)
|
||||
StakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 651698)
|
||||
StakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 680208)
|
||||
StakeTest:test_StakeOneAccount() (gas: 414772)
|
||||
StakeTest:test_StakeOneAccountAndRewards() (gas: 469716)
|
||||
StakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 828627)
|
||||
StakeTest:test_StakeOneAccountReachingMPLimit() (gas: 819194)
|
||||
StakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 398799)
|
||||
StakeTest:test_StakeOneAccountWithMinLockUp() (gas: 399373)
|
||||
StakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 399462)
|
||||
StakeVaultMigrationTest:testMigrateToVault() (gas: 1241396)
|
||||
StakeVaultMigrationTest:test_RevertWhenMigrationVaultNotEmpty() (gas: 650773)
|
||||
RewardsStreamerMP_RewardsTest:testTotalRewardsSupply() (gas: 760653)
|
||||
StakeTest:test_StakeMultipleAccounts() (gas: 597410)
|
||||
StakeTest:test_StakeMultipleAccountsAndRewards() (gas: 605858)
|
||||
StakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1033802)
|
||||
StakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 607956)
|
||||
StakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 629966)
|
||||
StakeTest:test_StakeOneAccount() (gas: 336901)
|
||||
StakeTest:test_StakeOneAccountAndRewards() (gas: 345345)
|
||||
StakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 612256)
|
||||
StakeTest:test_StakeOneAccountReachingMPLimit() (gas: 600323)
|
||||
StakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 354928)
|
||||
StakeTest:test_StakeOneAccountWithMinLockUp() (gas: 355502)
|
||||
StakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 355591)
|
||||
StakeVaultMigrationTest:testMigrateToVault() (gas: 953525)
|
||||
StakeVaultMigrationTest:test_RevertWhenMigrationVaultNotEmpty() (gas: 650902)
|
||||
StakeVaultMigrationTest:test_RevertWhenNotOwnerOfMigrationVault() (gas: 68131)
|
||||
StakingTokenTest:testStakeToken() (gas: 13144)
|
||||
TrustedCodehashAccessTest:test_RevertWhenProxyCloneCodehashNotTrusted() (gas: 2095134)
|
||||
UnstakeTest:test_StakeMultipleAccounts() (gas: 715696)
|
||||
UnstakeTest:test_StakeMultipleAccountsAndRewards() (gas: 770644)
|
||||
UnstakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1439521)
|
||||
UnstakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 651675)
|
||||
UnstakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 680185)
|
||||
UnstakeTest:test_StakeOneAccount() (gas: 414772)
|
||||
UnstakeTest:test_StakeOneAccountAndRewards() (gas: 469760)
|
||||
UnstakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 828604)
|
||||
UnstakeTest:test_StakeOneAccountReachingMPLimit() (gas: 819238)
|
||||
UnstakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 398821)
|
||||
UnstakeTest:test_StakeOneAccountWithMinLockUp() (gas: 399395)
|
||||
UnstakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 399440)
|
||||
UnstakeTest:test_UnstakeBonusMPAndAccuredMP() (gas: 824214)
|
||||
UnstakeTest:test_UnstakeMultipleAccounts() (gas: 1094152)
|
||||
UnstakeTest:test_UnstakeMultipleAccountsAndRewards() (gas: 1386761)
|
||||
UnstakeTest:test_UnstakeOneAccount() (gas: 794477)
|
||||
UnstakeTest:test_UnstakeOneAccountAndAccruedMP() (gas: 776636)
|
||||
UnstakeTest:test_UnstakeOneAccountAndRewards() (gas: 706714)
|
||||
UnstakeTest:test_UnstakeOneAccountWithLockUpAndAccruedMP() (gas: 778836)
|
||||
UpgradeTest:test_RevertWhenNotOwner() (gas: 3629043)
|
||||
UpgradeTest:test_UpgradeStakeManager() (gas: 9721364)
|
||||
VaultRegistrationTest:test_VaultRegistration() (gas: 89962)
|
||||
WithdrawTest:test_CannotWithdrawStakedFunds() (gas: 392751)
|
||||
UnstakeTest:test_StakeMultipleAccounts() (gas: 597454)
|
||||
UnstakeTest:test_StakeMultipleAccountsAndRewards() (gas: 605902)
|
||||
UnstakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1033779)
|
||||
UnstakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 607933)
|
||||
UnstakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 629943)
|
||||
UnstakeTest:test_StakeOneAccount() (gas: 336901)
|
||||
UnstakeTest:test_StakeOneAccountAndRewards() (gas: 345389)
|
||||
UnstakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 612233)
|
||||
UnstakeTest:test_StakeOneAccountReachingMPLimit() (gas: 600367)
|
||||
UnstakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 354950)
|
||||
UnstakeTest:test_StakeOneAccountWithMinLockUp() (gas: 355524)
|
||||
UnstakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 355569)
|
||||
UnstakeTest:test_UnstakeBonusMPAndAccuredMP() (gas: 639843)
|
||||
UnstakeTest:test_UnstakeMultipleAccounts() (gas: 837910)
|
||||
UnstakeTest:test_UnstakeMultipleAccountsAndRewards() (gas: 951519)
|
||||
UnstakeTest:test_UnstakeOneAccount() (gas: 572606)
|
||||
UnstakeTest:test_UnstakeOneAccountAndAccruedMP() (gas: 597765)
|
||||
UnstakeTest:test_UnstakeOneAccountAndRewards() (gas: 493843)
|
||||
UnstakeTest:test_UnstakeOneAccountWithLockUpAndAccruedMP() (gas: 627465)
|
||||
UpgradeTest:test_RevertWhenNotOwner() (gas: 3610947)
|
||||
UpgradeTest:test_UpgradeStakeManager() (gas: 9600340)
|
||||
VaultRegistrationTest:test_VaultRegistration() (gas: 62962)
|
||||
WithdrawTest:test_CannotWithdrawStakedFunds() (gas: 368380)
|
||||
@@ -224,10 +224,6 @@ contract RewardsStreamerMP is
|
||||
function lock(uint256 lockPeriod) external onlyTrustedCodehash onlyNotEmergencyMode onlyRegisteredVault {
|
||||
VaultData storage vault = vaultData[msg.sender];
|
||||
|
||||
if (vault.lockUntil > 0) {
|
||||
revert StakingManager__AlreadyLocked();
|
||||
}
|
||||
|
||||
if (lockPeriod == 0) {
|
||||
revert StakingManager__DurationCannotBeZero();
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ interface IStakeManager is ITrustedCodehashAccess, IStakeConstants {
|
||||
error StakingManager__DurationCannotBeZero();
|
||||
/// @notice Emitted when there are insufficient funds to stake.
|
||||
error StakingManager__InsufficientBalance();
|
||||
/// @notice Emitted when the reward period has not ended.
|
||||
error StakingManager__RewardPeriodNotEnded();
|
||||
|
||||
/// @notice Emitted when a vault is registered.
|
||||
|
||||
@@ -67,7 +67,7 @@ abstract contract StakeMath is MultiplierPointMath {
|
||||
_deltaMpTotal = _initialMP(_increasedAmount) + deltaMpBonus;
|
||||
_deltaMpMax = _deltaMpTotal + _accrueMP(_increasedAmount, MAX_MULTIPLIER * YEAR);
|
||||
|
||||
if (_deltaMpMax + _currentMaxMP > MP_MPY_ABSOLUTE * newBalance) {
|
||||
if (_deltaMpMax + _currentMaxMP > _maxAbsoluteTotalMP(newBalance)) {
|
||||
revert StakeMath__AbsoluteMaxMPOverflow();
|
||||
}
|
||||
}
|
||||
@@ -105,8 +105,7 @@ abstract contract StakeMath is MultiplierPointMath {
|
||||
}
|
||||
|
||||
_deltaMp = _bonusMP(_balance, _increasedLockSeconds);
|
||||
|
||||
if (_deltaMp + _currentMaxMP > MP_MPY_ABSOLUTE * _balance) {
|
||||
if (_deltaMp + _currentMaxMP > _maxAbsoluteTotalMP(_balance)) {
|
||||
revert StakeMath__AbsoluteMaxMPOverflow();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1721,6 +1721,70 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
vault.lock(lockPeriod);
|
||||
}
|
||||
|
||||
function test_LockWithPriorLock() public {
|
||||
// Setup - alice stakes 10 tokens without lock
|
||||
uint256 stakeAmount = 10e18;
|
||||
_stake(alice, stakeAmount, 0);
|
||||
|
||||
uint256 initialAccountMP = stakeAmount; // 10e18
|
||||
uint256 initialMaxMP = stakeAmount * streamer.MAX_MULTIPLIER() + stakeAmount; // 50e18
|
||||
|
||||
// Verify initial state
|
||||
checkVault(
|
||||
CheckVaultParams({
|
||||
account: vaults[alice],
|
||||
rewardBalance: 0,
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP,
|
||||
mpAccrued: initialAccountMP,
|
||||
maxMP: initialMaxMP,
|
||||
rewardsAccrued: 0
|
||||
})
|
||||
);
|
||||
|
||||
// Lock for 1 year
|
||||
uint256 lockPeriod = YEAR;
|
||||
uint256 expectedBonusMP = _bonusMP(stakeAmount, lockPeriod);
|
||||
|
||||
_lock(alice, lockPeriod);
|
||||
|
||||
// Check updated state
|
||||
checkVault(
|
||||
CheckVaultParams({
|
||||
account: vaults[alice],
|
||||
rewardBalance: 0,
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP + expectedBonusMP,
|
||||
mpAccrued: initialAccountMP + expectedBonusMP,
|
||||
maxMP: initialMaxMP + expectedBonusMP,
|
||||
rewardsAccrued: 0
|
||||
})
|
||||
);
|
||||
|
||||
expectedBonusMP = _bonusMP(stakeAmount, lockPeriod * 2);
|
||||
// Lock for more one 1 year
|
||||
_lock(alice, lockPeriod);
|
||||
|
||||
// Check updated state
|
||||
checkVault(
|
||||
CheckVaultParams({
|
||||
account: vaults[alice],
|
||||
rewardBalance: 0,
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP + expectedBonusMP,
|
||||
mpAccrued: initialAccountMP + expectedBonusMP,
|
||||
maxMP: initialMaxMP + expectedBonusMP,
|
||||
rewardsAccrued: 0
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function test_LockWithoutPriorLock() public {
|
||||
// Setup - alice stakes 10 tokens without lock
|
||||
uint256 stakeAmount = 10e18;
|
||||
@@ -1766,6 +1830,78 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
);
|
||||
}
|
||||
|
||||
function test_LockMultipleTimesExceedMaxLock() public {
|
||||
// Setup - alice stakes 10 tokens without lock
|
||||
uint256 stakeAmount = 10e18;
|
||||
|
||||
_stake(alice, stakeAmount, 0);
|
||||
|
||||
uint256 initialAccountMP = stakeAmount; // 10e18
|
||||
uint256 initialMaxMP = stakeAmount * streamer.MAX_MULTIPLIER() + stakeAmount; // 50e18
|
||||
|
||||
// Verify initial state
|
||||
checkVault(
|
||||
CheckVaultParams({
|
||||
account: vaults[alice],
|
||||
rewardBalance: 0,
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP,
|
||||
mpAccrued: initialAccountMP,
|
||||
maxMP: initialMaxMP,
|
||||
rewardsAccrued: 0
|
||||
})
|
||||
);
|
||||
|
||||
// Lock for 1 year
|
||||
uint256 lockPeriod = 4 * YEAR;
|
||||
uint256 expectedBonusMP = _bonusMP(stakeAmount, lockPeriod);
|
||||
|
||||
_lock(alice, lockPeriod);
|
||||
|
||||
// Check updated state
|
||||
checkVault(
|
||||
CheckVaultParams({
|
||||
account: vaults[alice],
|
||||
rewardBalance: 0,
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP + expectedBonusMP,
|
||||
mpAccrued: initialAccountMP + expectedBonusMP,
|
||||
maxMP: initialMaxMP + expectedBonusMP,
|
||||
rewardsAccrued: 0
|
||||
})
|
||||
);
|
||||
|
||||
// wait for lock year to be over
|
||||
uint256 currentTime = vm.getBlockTimestamp();
|
||||
vm.warp(currentTime + (4 * YEAR));
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
|
||||
// Check updated state
|
||||
checkVault(
|
||||
CheckVaultParams({
|
||||
account: vaults[alice],
|
||||
rewardBalance: 0,
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP + expectedBonusMP,
|
||||
mpAccrued: initialAccountMP + expectedBonusMP + (initialAccountMP * 4),
|
||||
maxMP: initialMaxMP + expectedBonusMP,
|
||||
rewardsAccrued: 0
|
||||
})
|
||||
);
|
||||
|
||||
// lock for another year should fail as 4 years is the maximum of total lock time
|
||||
vm.expectRevert(StakeMath.StakeMath__AbsoluteMaxMPOverflow.selector);
|
||||
_lock(alice, YEAR);
|
||||
}
|
||||
|
||||
function test_LockFailsWithNoStake() public {
|
||||
vm.expectRevert(StakeMath.StakeMath__InsufficientBalance.selector);
|
||||
_lock(alice, YEAR);
|
||||
@@ -2610,6 +2746,12 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
super._stake(account, amount, lockPeriod);
|
||||
}
|
||||
|
||||
function _lock(address account, uint256 lockPeriod) internal {
|
||||
StakeVault vault = StakeVault(vaults[account]);
|
||||
vm.prank(account);
|
||||
vault.lock(lockPeriod);
|
||||
}
|
||||
|
||||
function testFuzz_Stake(uint256 stakeAmount, uint256 lockUpPeriod) public {
|
||||
vm.assume(stakeAmount > 0 && stakeAmount <= MAX_BALANCE);
|
||||
vm.assume(lockUpPeriod == 0 || (lockUpPeriod >= MIN_LOCKUP_PERIOD && lockUpPeriod <= MAX_LOCKUP_PERIOD));
|
||||
@@ -2645,6 +2787,111 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
);
|
||||
}
|
||||
|
||||
function testFuzz_Lock(uint256 stakeAmount, uint256 lockUpPeriod) public {
|
||||
vm.assume(stakeAmount > 0 && stakeAmount <= MAX_BALANCE);
|
||||
vm.assume(lockUpPeriod >= MIN_LOCKUP_PERIOD && lockUpPeriod <= MAX_LOCKUP_PERIOD);
|
||||
uint256 expectedBonusMP = _bonusMP(stakeAmount, lockUpPeriod);
|
||||
uint256 expectedMaxTotalMP = _maxTotalMP(stakeAmount, lockUpPeriod);
|
||||
|
||||
_stake(alice, stakeAmount, 0);
|
||||
_lock(alice, lockUpPeriod);
|
||||
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: stakeAmount + expectedBonusMP,
|
||||
totalMPAccrued: stakeAmount + expectedBonusMP,
|
||||
totalMaxMP: expectedMaxTotalMP,
|
||||
stakingBalance: stakeAmount,
|
||||
rewardBalance: 0,
|
||||
rewardIndex: 0
|
||||
})
|
||||
);
|
||||
|
||||
checkVault(
|
||||
CheckVaultParams({
|
||||
account: vaults[alice],
|
||||
rewardBalance: 0,
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: stakeAmount + expectedBonusMP,
|
||||
mpAccrued: stakeAmount + expectedBonusMP,
|
||||
maxMP: expectedMaxTotalMP,
|
||||
rewardsAccrued: 0
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function testFuzz_Relock(uint256 stakeAmount, uint256 lockUpPeriod, uint256 lockUpPeriod2) public {
|
||||
stakeAmount = bound(stakeAmount, 1, MAX_BALANCE);
|
||||
lockUpPeriod = lockUpPeriod == 0 ? 0 : bound(lockUpPeriod, MIN_LOCKUP_PERIOD, MAX_LOCKUP_PERIOD);
|
||||
vm.assume(
|
||||
lockUpPeriod2 > 0 && lockUpPeriod2 <= MAX_LOCKUP_PERIOD && lockUpPeriod + lockUpPeriod2 >= MIN_LOCKUP_PERIOD
|
||||
&& lockUpPeriod + lockUpPeriod2 <= MAX_LOCKUP_PERIOD
|
||||
);
|
||||
uint256 expectedBonusMP = _bonusMP(stakeAmount, lockUpPeriod);
|
||||
uint256 expectedMaxTotalMP = _maxTotalMP(stakeAmount, lockUpPeriod);
|
||||
|
||||
_stake(alice, stakeAmount, lockUpPeriod);
|
||||
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: stakeAmount + expectedBonusMP,
|
||||
totalMPAccrued: stakeAmount + expectedBonusMP,
|
||||
totalMaxMP: expectedMaxTotalMP,
|
||||
stakingBalance: stakeAmount,
|
||||
rewardBalance: 0,
|
||||
rewardIndex: 0
|
||||
})
|
||||
);
|
||||
|
||||
checkVault(
|
||||
CheckVaultParams({
|
||||
account: vaults[alice],
|
||||
rewardBalance: 0,
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: stakeAmount + expectedBonusMP,
|
||||
mpAccrued: stakeAmount + expectedBonusMP,
|
||||
maxMP: expectedMaxTotalMP,
|
||||
rewardsAccrued: 0
|
||||
})
|
||||
);
|
||||
|
||||
_lock(alice, lockUpPeriod2);
|
||||
expectedBonusMP += _bonusMP(stakeAmount, lockUpPeriod2);
|
||||
expectedMaxTotalMP += _bonusMP(stakeAmount, lockUpPeriod2);
|
||||
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: stakeAmount + expectedBonusMP,
|
||||
totalMPAccrued: stakeAmount + expectedBonusMP,
|
||||
totalMaxMP: expectedMaxTotalMP,
|
||||
stakingBalance: stakeAmount,
|
||||
rewardBalance: 0,
|
||||
rewardIndex: 0
|
||||
})
|
||||
);
|
||||
|
||||
checkVault(
|
||||
CheckVaultParams({
|
||||
account: vaults[alice],
|
||||
rewardBalance: 0,
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: stakeAmount + expectedBonusMP,
|
||||
mpAccrued: stakeAmount + expectedBonusMP,
|
||||
maxMP: expectedMaxTotalMP,
|
||||
rewardsAccrued: 0
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function testFuzz_AccrueMP(uint256 stakeAmount, uint256 lockUpPeriod, uint16 accruedTime) public {
|
||||
vm.assume(stakeAmount > 0 && stakeAmount <= MAX_BALANCE);
|
||||
vm.assume(lockUpPeriod == 0 || (lockUpPeriod >= MIN_LOCKUP_PERIOD && lockUpPeriod <= MAX_LOCKUP_PERIOD));
|
||||
@@ -2686,6 +2933,58 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
);
|
||||
}
|
||||
|
||||
function testFuzz_AccrueMP_Relock(uint256 stakeAmount, uint256 lockUpPeriod2, uint16 accruedTime) public {
|
||||
uint256 lockUpPeriod = MIN_LOCKUP_PERIOD;
|
||||
vm.assume(lockUpPeriod2 <= MAX_LOCKUP_PERIOD);
|
||||
if (accruedTime <= lockUpPeriod) {
|
||||
vm.assume(
|
||||
lockUpPeriod2 > 0 && lockUpPeriod + lockUpPeriod2 - accruedTime >= MIN_LOCKUP_PERIOD
|
||||
&& lockUpPeriod + lockUpPeriod2 - accruedTime <= MAX_LOCKUP_PERIOD
|
||||
);
|
||||
} else {
|
||||
vm.assume(lockUpPeriod2 >= MIN_LOCKUP_PERIOD);
|
||||
}
|
||||
stakeAmount = bound(stakeAmount, MIN_BALANCE, MAX_BALANCE);
|
||||
uint256 expectedMaxTotalMP = _maxTotalMP(stakeAmount, lockUpPeriod);
|
||||
uint256 expectedStakedMP = _initialMP(stakeAmount) + _bonusMP(stakeAmount, lockUpPeriod);
|
||||
uint256 rawTotalMP = expectedStakedMP + _accrueMP(stakeAmount, accruedTime);
|
||||
uint256 expectedTotalMP = Math.min(rawTotalMP, expectedMaxTotalMP);
|
||||
|
||||
_stake(alice, stakeAmount, lockUpPeriod);
|
||||
|
||||
uint256 currentTime = vm.getBlockTimestamp();
|
||||
vm.warp(currentTime + accruedTime);
|
||||
_lock(alice, lockUpPeriod2);
|
||||
expectedTotalMP += _bonusMP(stakeAmount, lockUpPeriod2);
|
||||
expectedStakedMP += _bonusMP(stakeAmount, lockUpPeriod2);
|
||||
expectedMaxTotalMP += _bonusMP(stakeAmount, lockUpPeriod2);
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: expectedStakedMP,
|
||||
totalMPAccrued: expectedTotalMP,
|
||||
totalMaxMP: expectedMaxTotalMP,
|
||||
stakingBalance: stakeAmount,
|
||||
rewardBalance: 0,
|
||||
rewardIndex: 0
|
||||
})
|
||||
);
|
||||
|
||||
checkVault(
|
||||
CheckVaultParams({
|
||||
account: vaults[alice],
|
||||
rewardBalance: 0,
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: expectedStakedMP,
|
||||
mpAccrued: expectedTotalMP,
|
||||
maxMP: expectedMaxTotalMP,
|
||||
rewardsAccrued: 0
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function testFuzz_Unstake(
|
||||
uint256 stakeAmount,
|
||||
uint256 lockUpPeriod,
|
||||
|
||||
Reference in New Issue
Block a user