!refactor(RewardsStreamerMP): rename internal functions and rewardIndex

This commit does the following changes:

`_getVaultPendingMP()` -> _`vaultPendingMP()`
`_liveTotalMP()` -> `_totalMP()`
`_liveRewardIndex()` -> `_rewardIndex()`
`updateRewardIndex()` -> `_updateRewardIndex()`

BREAKING CHANGE:

The previous public `rewardIndex` field is now called `lastRewardIndex`.

Closes #189
This commit is contained in:
r4bbit
2025-03-25 13:57:16 +01:00
parent 8df475aab8
commit fb0924bfed
3 changed files with 146 additions and 147 deletions

View File

@@ -10,7 +10,7 @@
|-------------------------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-------------------------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
| fallback | 746 | 132239 | 190895 | 190943 | 515 |
| fallback | 746 | 132251 | 190917 | 190965 | 515 |
╰-------------------------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╯
╭-----------------------------------------------------+-----------------+---------+---------+---------+---------╮
@@ -46,13 +46,13 @@
+=======================================================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| 8427605 | 40187 | | | | |
| 8425853 | 40179 | | | | |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| | | | | | |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| run | 7346139 | 7346139 | 7346139 | 7346139 | 92 |
| run | 7344531 | 7344531 | 7344531 | 7344531 | 92 |
╰-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
╭---------------------------------------------------------+-----------------+-----+--------+-----+---------╮
@@ -74,13 +74,13 @@
+=========================================================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| 5878083 | 28278 | | | | |
| 5876322 | 28270 | | | | |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| | | | | | |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| runWithAdminAndProxy | 3309002 | 3309002 | 3309002 | 3309002 | 3 |
| runWithAdminAndProxy | 3307394 | 3307394 | 3307394 | 3307394 | 3 |
╰-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
╭------------------------------+-----------------+--------+--------+--------+---------╮
@@ -116,7 +116,7 @@
|------------------------------+-----------------+--------+--------+--------+---------|
| removeRewardDistributor | 2632 | 12148 | 4824 | 28990 | 9 |
|------------------------------+-----------------+--------+--------+--------+---------|
| setReward | 22021 | 152039 | 164219 | 164219 | 290 |
| setReward | 22043 | 152059 | 164241 | 164241 | 290 |
|------------------------------+-----------------+--------+--------+--------+---------|
| totalSupply | 3545 | 5726 | 3545 | 11545 | 11 |
|------------------------------+-----------------+--------+--------+--------+---------|
@@ -164,7 +164,7 @@
+=============================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| 3515097 | 16284 | | | | |
| 3513337 | 16276 | | | | |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| | | | | | |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -176,33 +176,33 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| MIN_LOCKUP_PERIOD | 309 | 309 | 309 | 309 | 15 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| emergencyModeEnabled | 2399 | 2399 | 2399 | 2399 | 263 |
| emergencyModeEnabled | 2421 | 2421 | 2421 | 2421 | 263 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| enableEmergencyMode | 2521 | 25269 | 25435 | 25435 | 264 |
| enableEmergencyMode | 2543 | 25291 | 25457 | 25457 | 264 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getAccountTotalMaxMP | 3169 | 3169 | 3169 | 3169 | 1 |
| getAccountTotalMaxMP | 3191 | 3191 | 3191 | 3191 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getAccountTotalStakedBalance | 15170 | 15170 | 15170 | 15170 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getAccountVaults | 5208 | 5208 | 5208 | 5208 | 4 |
| getAccountVaults | 5230 | 5230 | 5230 | 5230 | 4 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getStakedBalance | 2643 | 2643 | 2643 | 2643 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getVault | 1970 | 7310 | 1970 | 17970 | 4182 |
| getVault | 1970 | 7411 | 1970 | 17970 | 4184 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| initialize | 92752 | 92752 | 92752 | 92752 | 92 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| lastRewardTime | 385 | 1385 | 1385 | 2385 | 2 |
| lastRewardTime | 407 | 1407 | 1407 | 2407 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 95188 | 95188 | 95188 | 95188 | 1 |
| leave | 94998 | 94998 | 94998 | 94998 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| lock | 7106 | 45325 | 48853 | 90909 | 1034 |
| lock | 7040 | 45022 | 48575 | 90631 | 1034 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| migrateToVault | 13548 | 72959 | 15755 | 189576 | 3 |
| migrateToVault | 13570 | 72911 | 15777 | 189386 | 3 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| mpBalanceOf | 917 | 2361 | 2316 | 7063 | 12 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| mpBalanceOfAccount | 6188 | 8261 | 8261 | 10334 | 2 |
| mpBalanceOfAccount | 6210 | 8283 | 8283 | 10356 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| mpStakedOf | 606 | 701 | 606 | 2606 | 21 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -214,47 +214,47 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| rewardStartTime | 408 | 1408 | 1408 | 2408 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| rewardsBalanceOf | 2340 | 3538 | 3953 | 6340 | 268 |
| rewardsBalanceOf | 2340 | 3544 | 3953 | 6340 | 268 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| rewardsBalanceOfAccount | 10220 | 10220 | 10220 | 10220 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| setReward | 2486 | 105543 | 107054 | 107054 | 265 |
| setReward | 2508 | 105565 | 107076 | 107076 | 265 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| setRewardsSupplier | 26831 | 26831 | 26831 | 26831 | 87 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| setTrustedCodehash | 24194 | 24194 | 24194 | 24194 | 92 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| stake | 2703 | 142975 | 62559 | 248644 | 2668 |
| stake | 2639 | 140819 | 62283 | 248368 | 2668 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalMP | 805 | 1257 | 1257 | 1710 | 6 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalMPAccrued | 385 | 1055 | 385 | 2385 | 4162 |
| totalMPAccrued | 385 | 1068 | 385 | 2385 | 4164 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalMPStaked | 429 | 1099 | 429 | 2429 | 4165 |
| totalMPStaked | 429 | 1111 | 429 | 2429 | 4167 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalMaxMP | 407 | 1077 | 407 | 2407 | 4162 |
| totalMaxMP | 407 | 1090 | 407 | 2407 | 4164 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalRewardsAccrued | 385 | 385 | 385 | 385 | 3 |
| totalRewardsAccrued | 407 | 407 | 407 | 407 | 3 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalRewardsSupply | 976 | 1599 | 1770 | 6715 | 290 |
| totalRewardsSupply | 998 | 1624 | 1792 | 6737 | 290 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalShares | 662 | 662 | 662 | 662 | 6 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalStaked | 386 | 1055 | 386 | 2386 | 4169 |
| totalStaked | 408 | 1090 | 408 | 2408 | 4171 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| unstake | 41762 | 44586 | 41788 | 81026 | 269 |
| unstake | 41550 | 44252 | 41576 | 80814 | 269 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| updateAccount | 369042 | 369042 | 369042 | 369042 | 1 |
| updateAccount | 368194 | 368194 | 368194 | 368194 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| updateGlobalState | 15820 | 25876 | 29230 | 29230 | 8 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| updateVault | 34763 | 37437 | 34763 | 115885 | 1024 |
| updateVault | 34573 | 36925 | 34573 | 115695 | 1026 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| upgradeTo | 10235 | 10851 | 10235 | 12701 | 4 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| upgradeToAndCall | 3228 | 3228 | 3228 | 3228 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| vaultShares | 871 | 1037 | 871 | 2871 | 12 |
| vaultShares | 893 | 1059 | 893 | 2893 | 12 |
╰------------------------------------------------------+-----------------+--------+--------+--------+---------╯
╭----------------------------------------+-----------------+--------+--------+--------+---------╮
@@ -270,27 +270,27 @@
|----------------------------------------+-----------------+--------+--------+--------+---------|
| STAKING_TOKEN | 240 | 240 | 240 | 240 | 1 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| emergencyExit | 15001 | 31441 | 31439 | 48539 | 263 |
| emergencyExit | 15023 | 31463 | 31461 | 48561 | 263 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| initialize | 97660 | 97660 | 97660 | 97660 | 362 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 12161 | 126456 | 69692 | 354278 | 4 |
| leave | 12161 | 126408 | 69597 | 354278 | 4 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| lock | 12091 | 60744 | 64319 | 106372 | 1035 |
| lock | 12091 | 60441 | 64041 | 106094 | 1035 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| migrateToVault | 29036 | 99641 | 31243 | 238646 | 3 |
| migrateToVault | 29058 | 99593 | 31265 | 238456 | 3 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| owner | 379 | 411 | 379 | 2379 | 370 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| register | 12674 | 78039 | 78600 | 78600 | 362 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| stake | 12071 | 177339 | 78052 | 304212 | 2669 |
| stake | 12071 | 174779 | 77776 | 303936 | 2669 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| stakeManager | 369 | 369 | 369 | 369 | 361 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| trustStakeManager | 7580 | 7580 | 7580 | 7580 | 1 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| unstake | 12048 | 60890 | 57231 | 112048 | 270 |
| unstake | 12048 | 60557 | 57019 | 111836 | 270 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| withdraw | 20754 | 20754 | 20754 | 20754 | 1 |
╰----------------------------------------+-----------------+--------+--------+--------+---------╯
@@ -306,7 +306,7 @@
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| fallback | 708 | 6583 | 2454 | 395419 | 23163 |
| fallback | 708 | 6601 | 2454 | 394571 | 23175 |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| implementation | 346 | 2345 | 2346 | 2346 | 4344 |
╰----------------------------------------------------+-----------------+------+--------+--------+---------╯
@@ -404,17 +404,17 @@
+==================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| 770657 | 3987 | | | | |
| 770741 | 3987 | | | | |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| | | | | | |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| approve | 29075 | 31481 | 29183 | 46259 | 2664 |
| approve | 29075 | 31479 | 29183 | 46259 | 2664 |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| balanceOf | 561 | 1339 | 561 | 2561 | 4956 |
| balanceOf | 561 | 1349 | 561 | 2561 | 4958 |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| mint | 33964 | 37111 | 34072 | 68248 | 2673 |
| mint | 33964 | 37109 | 34072 | 68248 | 2673 |
╰---------------------------------------------+-----------------+-------+--------+-------+---------╯
╭-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╮

View File

@@ -1,21 +1,21 @@
EmergencyExitTest:test_CannotEnableEmergencyModeTwice() (gas: 93510)
EmergencyExitTest:test_CannotLeaveBeforeEmergencyMode() (gas: 357956)
EmergencyExitTest:test_EmergencyExitBasic() (gas: 450623)
EmergencyExitTest:test_EmergencyExitMultipleUsers() (gas: 776726)
EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 456174)
EmergencyExitTest:test_EmergencyExitWithLock() (gas: 453263)
EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 441131)
EmergencyExitTest:test_OnlyOwnerCanEnableEmergencyMode() (gas: 39154)
FuzzTests:testFuzz_AccrueMP(uint128,uint64,uint64) (runs: 1024, μ: 394287, ~: 358834)
FuzzTests:testFuzz_AccrueMP_Relock(uint128,uint64,uint64,uint64) (runs: 1024, μ: 494753, ~: 462295)
FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1007, μ: 519035, ~: 510343)
FuzzTests:testFuzz_Lock(uint256,uint64) (runs: 1024, μ: 777031, ~: 776145)
FuzzTests:testFuzz_Relock(uint256,uint64,uint64) (runs: 1024, μ: 400366, ~: 374940)
FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1001, μ: 617477, ~: 618785)
FuzzTests:testFuzz_Stake(uint256,uint64) (runs: 1024, μ: 302125, ~: 268696)
FuzzTests:testFuzz_Unstake(uint128,uint64,uint16,uint128) (runs: 1024, μ: 500493, ~: 467093)
FuzzTests:testFuzz_UpdateVault(uint128,uint64,uint64) (runs: 1024, μ: 394310, ~: 358857)
IntegrationTest:testStakeFoo() (gas: 1439862)
EmergencyExitTest:test_CannotEnableEmergencyModeTwice() (gas: 93554)
EmergencyExitTest:test_CannotLeaveBeforeEmergencyMode() (gas: 357702)
EmergencyExitTest:test_EmergencyExitBasic() (gas: 450413)
EmergencyExitTest:test_EmergencyExitMultipleUsers() (gas: 776284)
EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 455942)
EmergencyExitTest:test_EmergencyExitWithLock() (gas: 453031)
EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 440921)
EmergencyExitTest:test_OnlyOwnerCanEnableEmergencyMode() (gas: 39176)
FuzzTests:testFuzz_AccrueMP(uint128,uint64,uint64) (runs: 1003, μ: 392259, ~: 358391)
FuzzTests:testFuzz_AccrueMP_Relock(uint128,uint64,uint64,uint64) (runs: 1003, μ: 492243, ~: 461616)
FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1002, μ: 518848, ~: 510133)
FuzzTests:testFuzz_Lock(uint256,uint64) (runs: 1004, μ: 776280, ~: 775635)
FuzzTests:testFuzz_Relock(uint256,uint64,uint64) (runs: 1004, μ: 399185, ~: 374421)
FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1000, μ: 617250, ~: 618553)
FuzzTests:testFuzz_Stake(uint256,uint64) (runs: 1004, μ: 301165, ~: 268436)
FuzzTests:testFuzz_Unstake(uint128,uint64,uint16,uint128) (runs: 1003, μ: 499623, ~: 466490)
FuzzTests:testFuzz_UpdateVault(uint128,uint64,uint64) (runs: 1003, μ: 392282, ~: 358414)
IntegrationTest:testStakeFoo() (gas: 1438808)
KarmaMintAllowanceTest:testAddKarmaDistributorOnlyOwner() (gas: 364802)
KarmaMintAllowanceTest:testBalanceOf() (gas: 441486)
KarmaMintAllowanceTest:testBalanceOfWithNoSystemTotalKarma() (gas: 49545)
@@ -56,83 +56,83 @@ KarmaTest:testRemoveKarmaDistributorOnlyOwner() (gas: 88820)
KarmaTest:testRemoveUnknownKarmaDistributor() (gas: 41398)
KarmaTest:testTotalSupply() (gas: 349329)
KarmaTest:testTransfersNotAllowed() (gas: 40241)
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 9678086)
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 355137)
LeaveTest:test_TrustNewStakeManager() (gas: 9729089)
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1025, μ: 408592, ~: 408617)
LockTest:test_LockFailsWithNoStake() (gas: 91768)
LockTest:test_LockFailsWithZero() (gas: 365265)
LockTest:test_LockMultipleTimesExceedMaxLock() (gas: 664894)
LockTest:test_LockWithPriorLock() (gas: 598618)
LockTest:test_LockWithoutPriorLock() (gas: 474027)
LockTest:test_RevertWhenVaultToLockIsEmpty() (gas: 91768)
MaliciousUpgradeTest:test_UpgradeStackOverflowStakeManager() (gas: 2014856)
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 9674371)
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 354861)
LeaveTest:test_TrustNewStakeManager() (gas: 9725444)
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1004, μ: 408039, ~: 408063)
LockTest:test_LockFailsWithNoStake() (gas: 91490)
LockTest:test_LockFailsWithZero() (gas: 364923)
LockTest:test_LockMultipleTimesExceedMaxLock() (gas: 663872)
LockTest:test_LockWithPriorLock() (gas: 597786)
LockTest:test_LockWithoutPriorLock() (gas: 473473)
LockTest:test_RevertWhenVaultToLockIsEmpty() (gas: 91490)
MaliciousUpgradeTest:test_UpgradeStackOverflowStakeManager() (gas: 2014602)
MathTest:test_CalcAbsoluteMaxTotalMP() (gas: 5240)
MathTest:test_CalcAccrueMP() (gas: 8599)
MathTest:test_CalcBonusMP() (gas: 19200)
MathTest:test_CalcInitialMP() (gas: 5836)
MathTest:test_CalcMaxAccruedMP() (gas: 4886)
MathTest:test_CalcMaxTotalMP() (gas: 19984)
MultipleVaultsStakeTest:test_StakeMultipleVaults() (gas: 867796)
MultipleVaultsStakeTest:test_StakeMultipleVaults() (gas: 867034)
NFTMetadataGeneratorSVGTest:testGenerateMetadata() (gas: 92580)
NFTMetadataGeneratorSVGTest:testSetImageStrings() (gas: 60081)
NFTMetadataGeneratorSVGTest:testSetImageStringsRevert() (gas: 35891)
NFTMetadataGeneratorURLTest:testGenerateMetadata() (gas: 108341)
NFTMetadataGeneratorURLTest:testSetBaseURL() (gas: 50631)
NFTMetadataGeneratorURLTest:testSetBaseURLRevert() (gas: 36066)
RewardsStreamerMP_RewardsTest:testRewardsBalanceOf() (gas: 1330186)
RewardsStreamerMP_RewardsTest:testSetRewards() (gas: 224570)
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadAmount() (gas: 61280)
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadDuration() (gas: 101038)
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsNotAuthorized() (gas: 39300)
RewardsStreamerMP_RewardsTest:testTotalRewardsSupply() (gas: 762553)
StakeTest:test_StakeMultipleAccounts() (gas: 602653)
StakeTest:test_StakeMultipleAccountsAndRewards() (gas: 611147)
StakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1014977)
StakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 612928)
StakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 635062)
StakeTest:test_StakeMultipleTimesDoesNotExceedsMaxMP() (gas: 1589437)
StakeTest:test_StakeMultipleTimesWithLockIncreaseAtSameBlock() (gas: 605951)
StakeTest:test_StakeMultipleTimesWithLockZeroAfterMaxLock() (gas: 1182972)
StakeTest:test_StakeOneAccount() (gas: 339523)
StakeTest:test_StakeOneAccountAndRewards() (gas: 348056)
StakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 651757)
StakeTest:test_StakeOneAccountReachingMPLimit() (gas: 536255)
StakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 357498)
StakeTest:test_StakeOneAccountWithMinLockUp() (gas: 358116)
StakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 358161)
StakeVaultMigrationTest:testMigrateToVault() (gas: 926324)
StakeVaultMigrationTest:test_RevertWhenMigrationVaultNotEmpty() (gas: 651184)
StakeVaultMigrationTest:test_RevertWhenNotOwnerOfMigrationVault() (gas: 68065)
RewardsStreamerMP_RewardsTest:testRewardsBalanceOf() (gas: 1330038)
RewardsStreamerMP_RewardsTest:testSetRewards() (gas: 224636)
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadAmount() (gas: 61302)
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadDuration() (gas: 101060)
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsNotAuthorized() (gas: 39322)
RewardsStreamerMP_RewardsTest:testTotalRewardsSupply() (gas: 762981)
StakeTest:test_StakeMultipleAccounts() (gas: 602123)
StakeTest:test_StakeMultipleAccountsAndRewards() (gas: 610639)
StakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1013731)
StakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 612398)
StakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 634532)
StakeTest:test_StakeMultipleTimesDoesNotExceedsMaxMP() (gas: 1587229)
StakeTest:test_StakeMultipleTimesWithLockIncreaseAtSameBlock() (gas: 605167)
StakeTest:test_StakeMultipleTimesWithLockZeroAfterMaxLock() (gas: 1181314)
StakeTest:test_StakeOneAccount() (gas: 339269)
StakeTest:test_StakeOneAccountAndRewards() (gas: 347824)
StakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 651167)
StakeTest:test_StakeOneAccountReachingMPLimit() (gas: 535665)
StakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 357244)
StakeTest:test_StakeOneAccountWithMinLockUp() (gas: 357862)
StakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 357907)
StakeVaultMigrationTest:testMigrateToVault() (gas: 925734)
StakeVaultMigrationTest:test_RevertWhenMigrationVaultNotEmpty() (gas: 650930)
StakeVaultMigrationTest:test_RevertWhenNotOwnerOfMigrationVault() (gas: 68087)
StakeVaultTest:testOwner() (gas: 15262)
StakingTokenTest:testOwner() (gas: 15262)
StakingTokenTest:testStakeToken() (gas: 13144)
TrustedCodehashAccessTest:test_RevertWhenProxyCloneCodehashNotTrusted() (gas: 2023488)
UnstakeTest:test_StakeMultipleAccounts() (gas: 602632)
UnstakeTest:test_StakeMultipleAccountsAndRewards() (gas: 611102)
UnstakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1015021)
UnstakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 612994)
UnstakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 635061)
UnstakeTest:test_StakeMultipleTimesDoesNotExceedsMaxMP() (gas: 1589493)
UnstakeTest:test_StakeMultipleTimesWithLockIncreaseAtSameBlock() (gas: 605973)
UnstakeTest:test_StakeMultipleTimesWithLockZeroAfterMaxLock() (gas: 1182983)
UnstakeTest:test_StakeOneAccount() (gas: 339523)
UnstakeTest:test_StakeOneAccountAndRewards() (gas: 348055)
UnstakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 651756)
UnstakeTest:test_StakeOneAccountReachingMPLimit() (gas: 536235)
UnstakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 357520)
UnstakeTest:test_StakeOneAccountWithMinLockUp() (gas: 358116)
UnstakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 358161)
UnstakeTest:test_UnstakeBonusMPAndAccuredMP() (gas: 607059)
UnstakeTest:test_UnstakeMultipleAccounts() (gas: 847228)
UnstakeTest:test_UnstakeMultipleAccountsAndRewards() (gas: 962376)
UnstakeTest:test_UnstakeOneAccount() (gas: 578496)
UnstakeTest:test_UnstakeOneAccountAndAccruedMP() (gas: 578523)
UnstakeTest:test_UnstakeOneAccountAndRewards() (gas: 498634)
UnstakeTest:test_UnstakeOneAccountWithLockUpAndAccruedMP() (gas: 594663)
UpdateVaultTest:test_UpdateAccount() (gas: 2503328)
UpgradeTest:test_RevertWhenNotOwner() (gas: 3591501)
UpgradeTest:test_UpgradeStakeManager() (gas: 9565211)
VaultRegistrationTest:test_VaultRegistration() (gas: 63050)
TrustedCodehashAccessTest:test_RevertWhenProxyCloneCodehashNotTrusted() (gas: 2023424)
UnstakeTest:test_StakeMultipleAccounts() (gas: 602102)
UnstakeTest:test_StakeMultipleAccountsAndRewards() (gas: 610594)
UnstakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1013775)
UnstakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 612464)
UnstakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 634531)
UnstakeTest:test_StakeMultipleTimesDoesNotExceedsMaxMP() (gas: 1587285)
UnstakeTest:test_StakeMultipleTimesWithLockIncreaseAtSameBlock() (gas: 605189)
UnstakeTest:test_StakeMultipleTimesWithLockZeroAfterMaxLock() (gas: 1181325)
UnstakeTest:test_StakeOneAccount() (gas: 339269)
UnstakeTest:test_StakeOneAccountAndRewards() (gas: 347823)
UnstakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 651166)
UnstakeTest:test_StakeOneAccountReachingMPLimit() (gas: 535645)
UnstakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 357266)
UnstakeTest:test_StakeOneAccountWithMinLockUp() (gas: 357862)
UnstakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 357907)
UnstakeTest:test_UnstakeBonusMPAndAccuredMP() (gas: 606447)
UnstakeTest:test_UnstakeMultipleAccounts() (gas: 846296)
UnstakeTest:test_UnstakeMultipleAccountsAndRewards() (gas: 961382)
UnstakeTest:test_UnstakeOneAccount() (gas: 577948)
UnstakeTest:test_UnstakeOneAccountAndAccruedMP() (gas: 577911)
UnstakeTest:test_UnstakeOneAccountAndRewards() (gas: 498212)
UnstakeTest:test_UnstakeOneAccountWithLockUpAndAccruedMP() (gas: 594051)
UpdateVaultTest:test_UpdateAccount() (gas: 2501420)
UpgradeTest:test_RevertWhenNotOwner() (gas: 3589741)
UpgradeTest:test_UpgradeStakeManager() (gas: 9561610)
VaultRegistrationTest:test_VaultRegistration() (gas: 63138)
WithdrawTest:testOwner() (gas: 15296)
WithdrawTest:test_CannotWithdrawStakedFunds() (gas: 370784)
WithdrawTest:test_CannotWithdrawStakedFunds() (gas: 370530)

View File

@@ -59,7 +59,7 @@ contract RewardsStreamerMP is
/// @notice Time of the last multiplier points update.
uint256 public lastMPUpdatedTime;
/// @notice Index of the current reward period.
uint256 public rewardIndex;
uint256 public lastRewardIndex;
/// @notice The address that can set rewards
address public rewardsSupplier;
/// @notice Amount of rewards available for distribution.
@@ -205,7 +205,7 @@ contract RewardsStreamerMP is
vault.maxMP += _deltaMPMax;
totalMaxMP += _deltaMPMax;
vault.rewardIndex = rewardIndex;
vault.rewardIndex = lastRewardIndex;
emit Staked(msg.sender, amount, lockPeriod);
}
@@ -240,7 +240,7 @@ contract RewardsStreamerMP is
totalMPStaked += deltaMp;
totalMaxMP += deltaMp;
vault.rewardIndex = rewardIndex;
vault.rewardIndex = lastRewardIndex;
emit Locked(msg.sender, lockPeriod, newLockEnd);
}
@@ -398,11 +398,11 @@ contract RewardsStreamerMP is
function _updateGlobalState() internal {
_updateGlobalMP();
updateRewardIndex();
_updateRewardIndex();
}
function _updateGlobalMP() internal {
uint256 newTotalMPAccrued = _liveTotalMP();
uint256 newTotalMPAccrued = _totalMP();
if (newTotalMPAccrued > totalMPAccrued) {
totalMPAccrued = newTotalMPAccrued;
lastMPUpdatedTime = block.timestamp;
@@ -411,7 +411,7 @@ contract RewardsStreamerMP is
function _updateVault(address vaultAddress, bool forceMPUpdate) internal {
VaultData storage vault = vaultData[vaultAddress];
uint256 accruedMP = _getVaultPendingMP(vault);
uint256 accruedMP = _vaultPendingMP(vault);
if (accruedMP > 0 || forceMPUpdate) {
vault.mpAccrued += accruedMP;
vault.lastMPUpdateTime = block.timestamp;
@@ -419,24 +419,23 @@ contract RewardsStreamerMP is
uint256 rewardsAccrued = _vaultPendingRewards(vault);
vault.rewardsAccrued += rewardsAccrued;
vault.rewardIndex = rewardIndex;
vault.rewardIndex = lastRewardIndex;
uint256 mpToStake = vault.mpAccrued - vault.mpStaked;
vault.mpStaked += mpToStake;
totalMPStaked += mpToStake;
vault.rewardIndex = rewardIndex;
emit Compound(vaultAddress, mpToStake);
}
function updateRewardIndex() internal {
function _updateRewardIndex() internal {
uint256 accruedRewards;
uint256 newRewardIndex;
(accruedRewards, newRewardIndex) = _liveRewardIndex();
(accruedRewards, newRewardIndex) = _rewardIndex();
totalRewardsAccrued += accruedRewards;
if (newRewardIndex > rewardIndex) {
rewardIndex = newRewardIndex;
if (newRewardIndex > lastRewardIndex) {
lastRewardIndex = newRewardIndex;
lastRewardTime = block.timestamp < rewardEndTime ? block.timestamp : rewardEndTime;
}
}
@@ -450,7 +449,7 @@ contract RewardsStreamerMP is
);
vault.stakedBalance -= amount;
vault.maxMP -= _deltaMpMax;
vault.rewardIndex = rewardIndex;
vault.rewardIndex = lastRewardIndex;
vault.mpAccrued -= _deltaMpTotal;
// A vault's "staked" MP will be reduced if the accrued MP is less than the staked MP.
@@ -478,7 +477,7 @@ contract RewardsStreamerMP is
return vault.stakedBalance + vault.mpStaked;
}
function _liveTotalMP() internal view returns (uint256) {
function _totalMP() internal view returns (uint256) {
if (totalMaxMP == 0) {
return totalMPAccrued;
}
@@ -499,11 +498,11 @@ contract RewardsStreamerMP is
return newTotalMPAccrued;
}
function _liveRewardIndex() internal view returns (uint256, uint256) {
function _rewardIndex() internal view returns (uint256, uint256) {
uint256 shares = _totalShares();
if (shares == 0) {
return (0, rewardIndex);
return (0, lastRewardIndex);
}
uint256 currentTime = block.timestamp;
@@ -511,15 +510,15 @@ contract RewardsStreamerMP is
uint256 elapsedTime = applicableTime - lastRewardTime;
if (elapsedTime == 0) {
return (0, rewardIndex);
return (0, lastRewardIndex);
}
uint256 accruedRewards = _calculatePendingRewards();
if (accruedRewards == 0) {
return (0, rewardIndex);
return (0, lastRewardIndex);
}
uint256 newRewardIndex = rewardIndex + Math.mulDiv(accruedRewards, SCALE_FACTOR, shares);
uint256 newRewardIndex = lastRewardIndex + Math.mulDiv(accruedRewards, SCALE_FACTOR, shares);
return (accruedRewards, newRewardIndex);
}
@@ -549,7 +548,7 @@ contract RewardsStreamerMP is
return accruedRewards;
}
function _getVaultPendingMP(VaultData storage vault) internal view returns (uint256) {
function _vaultPendingMP(VaultData storage vault) internal view returns (uint256) {
if (block.timestamp == vault.lastMPUpdateTime) {
return 0;
}
@@ -566,12 +565,12 @@ contract RewardsStreamerMP is
function _mpBalanceOf(address vaultAddress) internal view returns (uint256) {
VaultData storage vault = vaultData[vaultAddress];
return vault.mpAccrued + _getVaultPendingMP(vault);
return vault.mpAccrued + _vaultPendingMP(vault);
}
function _vaultPendingRewards(VaultData storage vault) internal view returns (uint256) {
uint256 newRewardIndex;
(, newRewardIndex) = _liveRewardIndex();
(, newRewardIndex) = _rewardIndex();
uint256 accountShares = vault.stakedBalance + vault.mpStaked;
uint256 deltaRewardIndex = newRewardIndex - vault.rewardIndex;
@@ -605,7 +604,7 @@ contract RewardsStreamerMP is
* @return The total multiplier points accrued in the system.
*/
function totalMP() external view returns (uint256) {
return _liveTotalMP();
return _totalMP();
}
/**
@@ -687,7 +686,7 @@ contract RewardsStreamerMP is
for (uint256 i = 0; i < accountVaults.length; i++) {
VaultData storage vault = vaultData[accountVaults[i]];
accountTotalMP += vault.mpAccrued + _getVaultPendingMP(vault);
accountTotalMP += vault.mpAccrued + _vaultPendingMP(vault);
}
return accountTotalMP;
}