mirror of
https://github.com/vacp2p/staking-reward-streamer.git
synced 2026-01-08 23:08:19 -05:00
refactor(RewardsStreamerMP): merge compound() with _updateVault()
This commit merges `compound()` into `_updateVault()` as there's no reason not to update vault without compounding it. This was discussed in #187. BREAKING CHANGE: A couple of APIs have been removed or replaced. -> inline _compound into _updateVault() -> remove compond() in favor of updateVaultMP() -> rename updateVaultMP() to updateVault() -> rename compoundAccount() to updateAccount() Closes #187
This commit is contained in:
122
.gas-report
122
.gas-report
@@ -10,7 +10,7 @@
|
||||
|-------------------------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-------------------------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| fallback | 746 | 132057 | 189609 | 190987 | 518 |
|
||||
| fallback | 746 | 132103 | 190895 | 190943 | 517 |
|
||||
╰-------------------------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
╭-----------------------------------------------------+-----------------+---------+---------+---------+---------╮
|
||||
@@ -24,7 +24,7 @@
|
||||
|-----------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-----------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| run | 4015668 | 4015668 | 4015668 | 4015668 | 120 |
|
||||
| run | 4015668 | 4015668 | 4015668 | 4015668 | 119 |
|
||||
╰-----------------------------------------------------+-----------------+---------+---------+---------+---------╯
|
||||
|
||||
╭-----------------------------------------------------------+-----------------+---------+---------+---------+---------╮
|
||||
@@ -46,13 +46,13 @@
|
||||
+=======================================================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| 8542904 | 40726 | | | | |
|
||||
| 8496724 | 40509 | | | | |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| | | | | | |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| run | 7454205 | 7454205 | 7454205 | 7454205 | 95 |
|
||||
| run | 7410704 | 7410704 | 7410704 | 7410704 | 94 |
|
||||
╰-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
|
||||
|
||||
╭---------------------------------------------------------+-----------------+-----+--------+-----+---------╮
|
||||
@@ -66,7 +66,7 @@
|
||||
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
|
||||
| activeNetworkConfig | 597 | 597 | 597 | 597 | 350 |
|
||||
| activeNetworkConfig | 597 | 597 | 597 | 597 | 347 |
|
||||
╰---------------------------------------------------------+-----------------+-----+--------+-----+---------╯
|
||||
|
||||
╭-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╮
|
||||
@@ -74,13 +74,13 @@
|
||||
+=========================================================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| 5993348 | 28817 | | | | |
|
||||
| 5947188 | 28600 | | | | |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| | | | | | |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| runWithAdminAndProxy | 3417066 | 3417066 | 3417066 | 3417066 | 3 |
|
||||
| runWithAdminAndProxy | 3373562 | 3373562 | 3373562 | 3373562 | 3 |
|
||||
╰-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
|
||||
|
||||
╭------------------------------+-----------------+--------+--------+--------+---------╮
|
||||
@@ -96,7 +96,7 @@
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| acceptOwnership | 12042 | 12042 | 12042 | 12042 | 1 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| addRewardDistributor | 2589 | 65661 | 70586 | 70586 | 156 |
|
||||
| addRewardDistributor | 2589 | 65629 | 70586 | 70586 | 155 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| allowance | 482 | 482 | 482 | 482 | 3 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
@@ -106,7 +106,7 @@
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getRewardDistributors | 1162 | 3406 | 3406 | 5650 | 6 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| initialize | 95872 | 95872 | 95872 | 95872 | 120 |
|
||||
| initialize | 95872 | 95872 | 95872 | 95872 | 119 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mint | 2654 | 56378 | 72352 | 72352 | 18 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
@@ -116,7 +116,7 @@
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| removeRewardDistributor | 2632 | 12148 | 4824 | 28990 | 9 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setReward | 22065 | 152079 | 164263 | 164263 | 290 |
|
||||
| setReward | 22021 | 152039 | 164219 | 164219 | 290 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalSupply | 3545 | 5726 | 3545 | 11545 | 11 |
|
||||
|------------------------------+-----------------+--------+--------+--------+---------|
|
||||
@@ -164,7 +164,7 @@
|
||||
+=============================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| 3630341 | 16823 | | | | |
|
||||
| 3584189 | 16606 | | | | |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| | | | | | |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
@@ -176,87 +176,85 @@
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| MIN_LOCKUP_PERIOD | 309 | 309 | 309 | 309 | 15 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| compound | 32664 | 33940 | 32664 | 116059 | 514 |
|
||||
| emergencyModeEnabled | 2399 | 2399 | 2399 | 2399 | 263 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| compoundAccount | 369662 | 369662 | 369662 | 369662 | 1 |
|
||||
| enableEmergencyMode | 2521 | 25269 | 25435 | 25435 | 264 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| emergencyModeEnabled | 2443 | 2443 | 2443 | 2443 | 263 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| enableEmergencyMode | 2476 | 25224 | 25390 | 25390 | 264 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getAccountTotalMaxMP | 3213 | 3213 | 3213 | 3213 | 1 |
|
||||
| getAccountTotalMaxMP | 3169 | 3169 | 3169 | 3169 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getAccountTotalStakedBalance | 15170 | 15170 | 15170 | 15170 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getAccountVaults | 5252 | 5252 | 5252 | 5252 | 4 |
|
||||
| getAccountVaults | 5208 | 5208 | 5208 | 5208 | 4 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getStakedBalance | 2643 | 2643 | 2643 | 2643 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getVault | 2139 | 7738 | 2139 | 20139 | 4666 |
|
||||
| getVault | 2139 | 8528 | 2139 | 20139 | 4158 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| initialize | 92753 | 92753 | 92753 | 92753 | 95 |
|
||||
| initialize | 92752 | 92752 | 92752 | 92752 | 94 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| lastRewardTime | 429 | 1429 | 1429 | 2429 | 2 |
|
||||
| lastRewardTime | 385 | 1385 | 1385 | 2385 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| leave | 95106 | 95106 | 95106 | 95106 | 1 |
|
||||
| leave | 97634 | 97634 | 97634 | 97634 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| lock | 7062 | 38963 | 59606 | 110806 | 1034 |
|
||||
| lock | 7106 | 42186 | 64216 | 113416 | 1034 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| migrateToVault | 13505 | 73541 | 15712 | 191406 | 3 |
|
||||
| migrateToVault | 13548 | 74440 | 15755 | 194018 | 3 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mpBalanceOf | 917 | 2361 | 2316 | 7063 | 12 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mpBalanceOfAccount | 6232 | 8305 | 8305 | 10378 | 2 |
|
||||
| mpBalanceOfAccount | 6188 | 8261 | 8261 | 10334 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mpStakedOf | 606 | 701 | 606 | 2606 | 21 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| proxiableUUID | 342 | 342 | 342 | 342 | 3 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| registerVault | 2539 | 74410 | 74970 | 74970 | 374 |
|
||||
| registerVault | 2539 | 74404 | 74970 | 74970 | 370 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardEndTime | 385 | 1385 | 1385 | 2385 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardStartTime | 430 | 1430 | 1430 | 2430 | 2 |
|
||||
| rewardStartTime | 408 | 1408 | 1408 | 2408 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardsBalanceOf | 2340 | 3544 | 3953 | 6340 | 268 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardsBalanceOfAccount | 10242 | 10242 | 10242 | 10242 | 1 |
|
||||
| rewardsBalanceOfAccount | 10220 | 10220 | 10220 | 10220 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setReward | 2530 | 105587 | 107098 | 107098 | 265 |
|
||||
| setReward | 2486 | 105543 | 107054 | 107054 | 265 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setRewardsSupplier | 26831 | 26831 | 26831 | 26831 | 90 |
|
||||
| setRewardsSupplier | 26831 | 26831 | 26831 | 26831 | 89 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setTrustedCodehash | 24194 | 24194 | 24194 | 24194 | 95 |
|
||||
| setTrustedCodehash | 24194 | 24194 | 24194 | 24194 | 94 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| stake | 2639 | 151014 | 82444 | 268529 | 2667 |
|
||||
| stake | 2703 | 151871 | 85074 | 271159 | 2666 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMP | 805 | 1257 | 1257 | 1710 | 6 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMPAccrued | 385 | 983 | 385 | 2385 | 4672 |
|
||||
| totalMPAccrued | 385 | 1067 | 385 | 2385 | 4164 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMPStaked | 429 | 1026 | 429 | 2429 | 4675 |
|
||||
| totalMPStaked | 429 | 1111 | 429 | 2429 | 4167 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMaxMP | 407 | 1005 | 407 | 2407 | 4672 |
|
||||
| totalMaxMP | 407 | 1089 | 407 | 2407 | 4164 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalRewardsAccrued | 429 | 429 | 429 | 429 | 3 |
|
||||
| totalRewardsAccrued | 385 | 385 | 385 | 385 | 3 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalRewardsSupply | 1020 | 1646 | 1814 | 6759 | 290 |
|
||||
| totalRewardsSupply | 976 | 1602 | 1770 | 6715 | 290 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalShares | 662 | 662 | 662 | 662 | 6 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalStaked | 430 | 1027 | 430 | 2430 | 4679 |
|
||||
| totalStaked | 386 | 1067 | 386 | 2386 | 4171 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| unstake | 39196 | 42183 | 39222 | 80792 | 269 |
|
||||
| unstake | 41762 | 44651 | 41788 | 83357 | 269 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| updateGlobalState | 15820 | 17250 | 15820 | 29516 | 1021 |
|
||||
| updateAccount | 369042 | 369042 | 369042 | 369042 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| updateVaultMP | 22753 | 24222 | 22753 | 36507 | 1021 |
|
||||
| updateGlobalState | 15820 | 25876 | 29230 | 29230 | 8 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| upgradeTo | 10235 | 10857 | 10235 | 12723 | 4 |
|
||||
| updateVault | 34763 | 37203 | 34763 | 115885 | 1026 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| upgradeTo | 10235 | 10851 | 10235 | 12701 | 4 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| upgradeToAndCall | 3228 | 3228 | 3228 | 3228 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| vaultShares | 915 | 1081 | 915 | 2915 | 12 |
|
||||
| vaultShares | 871 | 1037 | 871 | 2871 | 12 |
|
||||
╰------------------------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
╭----------------------------------------+-----------------+--------+--------+--------+---------╮
|
||||
@@ -272,27 +270,27 @@
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| STAKING_TOKEN | 240 | 240 | 240 | 240 | 1 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| emergencyExit | 15045 | 31485 | 31483 | 48583 | 263 |
|
||||
| emergencyExit | 15001 | 31441 | 31439 | 48539 | 263 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| initialize | 97660 | 97660 | 97660 | 97660 | 374 |
|
||||
| initialize | 97660 | 97660 | 97660 | 97660 | 370 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| leave | 12161 | 128077 | 69651 | 360844 | 4 |
|
||||
| leave | 12161 | 127067 | 70915 | 354278 | 4 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| lock | 12091 | 54388 | 75072 | 126269 | 1035 |
|
||||
| lock | 12091 | 57608 | 79682 | 128879 | 1035 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| migrateToVault | 28993 | 100223 | 31200 | 240476 | 3 |
|
||||
| migrateToVault | 29036 | 101122 | 31243 | 243088 | 3 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| owner | 379 | 410 | 379 | 2379 | 382 |
|
||||
| owner | 379 | 410 | 379 | 2379 | 378 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| register | 12674 | 78057 | 78600 | 78600 | 374 |
|
||||
| register | 12674 | 78052 | 78600 | 78600 | 370 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| stake | 12071 | 185300 | 97937 | 324097 | 2668 |
|
||||
| stake | 12071 | 185788 | 100567 | 326727 | 2667 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| stakeManager | 369 | 369 | 369 | 369 | 373 |
|
||||
| stakeManager | 369 | 369 | 369 | 369 | 369 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| trustStakeManager | 7580 | 7580 | 7580 | 7580 | 1 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| unstake | 12048 | 58554 | 54665 | 111814 | 270 |
|
||||
| unstake | 12048 | 61012 | 57231 | 114379 | 270 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| withdraw | 20754 | 20754 | 20754 | 20754 | 1 |
|
||||
╰----------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
@@ -308,9 +306,9 @@
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| fallback | 708 | 8138 | 2629 | 396039 | 27214 |
|
||||
| fallback | 708 | 6812 | 2629 | 395419 | 23151 |
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| implementation | 346 | 2345 | 2346 | 2346 | 4355 |
|
||||
| implementation | 346 | 2345 | 2346 | 2346 | 4350 |
|
||||
╰----------------------------------------------------+-----------------+------+--------+--------+---------╯
|
||||
|
||||
╭--------------------------------------------+-----------------+--------+--------+--------+---------╮
|
||||
@@ -324,7 +322,7 @@
|
||||
|--------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|--------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| createVault | 230924 | 247657 | 248024 | 248024 | 373 |
|
||||
| createVault | 230924 | 247653 | 248024 | 248024 | 369 |
|
||||
╰--------------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
╭------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------╮
|
||||
@@ -412,11 +410,11 @@
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| approve | 29075 | 31547 | 29183 | 46259 | 2676 |
|
||||
| approve | 29075 | 31523 | 29183 | 46259 | 2672 |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| balanceOf | 561 | 1266 | 561 | 2561 | 5466 |
|
||||
| balanceOf | 561 | 1348 | 561 | 2561 | 4958 |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| mint | 33964 | 37192 | 34072 | 68248 | 2685 |
|
||||
| mint | 33964 | 37163 | 34072 | 68248 | 2681 |
|
||||
╰---------------------------------------------+-----------------+-------+--------+-------+---------╯
|
||||
|
||||
╭-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╮
|
||||
@@ -430,9 +428,9 @@
|
||||
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| leave | 237 | 164473 | 164473 | 328813 | 333 |
|
||||
| leave | 26 | 161075 | 161075 | 322247 | 334 |
|
||||
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| proxiableUUID | 330 | 330 | 330 | 330 | 1 |
|
||||
| proxiableUUID | 308 | 308 | 308 | 308 | 1 |
|
||||
╰-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
|
||||
|
||||
173
.gas-snapshot
173
.gas-snapshot
@@ -1,23 +1,21 @@
|
||||
CompoundTest:test_CompoundForAccount() (gas: 2493583)
|
||||
CompoundTest:test_RevertWhenInsufficientMPBalance() (gas: 382062)
|
||||
EmergencyExitTest:test_CannotEnableEmergencyModeTwice() (gas: 93420)
|
||||
EmergencyExitTest:test_CannotLeaveBeforeEmergencyMode() (gas: 355403)
|
||||
EmergencyExitTest:test_EmergencyExitBasic() (gas: 450256)
|
||||
EmergencyExitTest:test_EmergencyExitMultipleUsers() (gas: 776060)
|
||||
EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 455763)
|
||||
EmergencyExitTest:test_EmergencyExitWithLock() (gas: 473103)
|
||||
EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 438555)
|
||||
EmergencyExitTest:test_OnlyOwnerCanEnableEmergencyMode() (gas: 39109)
|
||||
FuzzTests:testFuzz_AccrueMP(uint128,uint64,uint64) (runs: 1024, μ: 434256, ~: 407334)
|
||||
FuzzTests:testFuzz_AccrueMP_Relock(uint128,uint64,uint64,uint64) (runs: 1024, μ: 533518, ~: 509224)
|
||||
FuzzTests:testFuzz_Compound(uint128,uint64,uint64) (runs: 1024, μ: 522387, ~: 494820)
|
||||
FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1007, μ: 528440, ~: 509976)
|
||||
FuzzTests:testFuzz_Lock(uint256,uint64) (runs: 1025, μ: 772594, ~: 793906)
|
||||
FuzzTests:testFuzz_Relock(uint256,uint64,uint64) (runs: 1025, μ: 408965, ~: 392534)
|
||||
FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1001, μ: 636843, ~: 638758)
|
||||
FuzzTests:testFuzz_Stake(uint256,uint64) (runs: 1025, μ: 314299, ~: 290763)
|
||||
FuzzTests:testFuzz_Unstake(uint128,uint64,uint16,uint128) (runs: 1024, μ: 621954, ~: 599327)
|
||||
IntegrationTest:testStakeFoo() (gas: 1441361)
|
||||
EmergencyExitTest:test_CannotEnableEmergencyModeTwice() (gas: 93510)
|
||||
EmergencyExitTest:test_CannotLeaveBeforeEmergencyMode() (gas: 357967)
|
||||
EmergencyExitTest:test_EmergencyExitBasic() (gas: 452843)
|
||||
EmergencyExitTest:test_EmergencyExitMultipleUsers() (gas: 781167)
|
||||
EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 458394)
|
||||
EmergencyExitTest:test_EmergencyExitWithLock() (gas: 475778)
|
||||
EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 441142)
|
||||
EmergencyExitTest:test_OnlyOwnerCanEnableEmergencyMode() (gas: 39154)
|
||||
FuzzTests:testFuzz_AccrueMP(uint128,uint64,uint64) (runs: 1003, μ: 408527, ~: 383746)
|
||||
FuzzTests:testFuzz_AccrueMP_Relock(uint128,uint64,uint64,uint64) (runs: 1003, μ: 510823, ~: 487453)
|
||||
FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1002, μ: 530631, ~: 512563)
|
||||
FuzzTests:testFuzz_Lock(uint256,uint64) (runs: 1004, μ: 777485, ~: 801080)
|
||||
FuzzTests:testFuzz_Relock(uint256,uint64,uint64) (runs: 1004, μ: 415384, ~: 399686)
|
||||
FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1000, μ: 639388, ~: 641300)
|
||||
FuzzTests:testFuzz_Stake(uint256,uint64) (runs: 1004, μ: 314995, ~: 293349)
|
||||
FuzzTests:testFuzz_Unstake(uint128,uint64,uint16,uint128) (runs: 1003, μ: 515012, ~: 492212)
|
||||
FuzzTests:testFuzz_UpdateVault(uint128,uint64,uint64) (runs: 1003, μ: 408550, ~: 383769)
|
||||
IntegrationTest:testStakeFoo() (gas: 1453985)
|
||||
KarmaMintAllowanceTest:testAddKarmaDistributorOnlyOwner() (gas: 364802)
|
||||
KarmaMintAllowanceTest:testBalanceOf() (gas: 441486)
|
||||
KarmaMintAllowanceTest:testBalanceOfWithNoSystemTotalKarma() (gas: 49545)
|
||||
@@ -58,84 +56,85 @@ KarmaTest:testRemoveKarmaDistributorOnlyOwner() (gas: 88820)
|
||||
KarmaTest:testRemoveUnknownKarmaDistributor() (gas: 41398)
|
||||
KarmaTest:testTotalSupply() (gas: 349329)
|
||||
KarmaTest:testTransfersNotAllowed() (gas: 40241)
|
||||
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 9899202)
|
||||
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 352518)
|
||||
LeaveTest:test_TrustNewStakeManager() (gas: 9949960)
|
||||
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1025, μ: 388844, ~: 366617)
|
||||
LockTest:test_LockFailsWithNoStake() (gas: 109665)
|
||||
LockTest:test_LockFailsWithZero() (gas: 362602)
|
||||
LockTest:test_LockMultipleTimesExceedMaxLock() (gas: 674397)
|
||||
LockTest:test_LockWithPriorLock() (gas: 621342)
|
||||
LockTest:test_LockWithoutPriorLock() (gas: 493744)
|
||||
LockTest:test_RevertWhenVaultToLockIsEmpty() (gas: 109623)
|
||||
MaliciousUpgradeTest:test_UpgradeStackOverflowStakeManager() (gas: 2018869)
|
||||
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 9813528)
|
||||
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 355148)
|
||||
LeaveTest:test_TrustNewStakeManager() (gas: 9862860)
|
||||
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1004, μ: 393465, ~: 369257)
|
||||
LockTest:test_LockFailsWithNoStake() (gas: 114275)
|
||||
LockTest:test_LockFailsWithZero() (gas: 365276)
|
||||
LockTest:test_LockMultipleTimesExceedMaxLock() (gas: 649138)
|
||||
LockTest:test_LockWithPriorLock() (gas: 629170)
|
||||
LockTest:test_LockWithoutPriorLock() (gas: 498962)
|
||||
LockTest:test_RevertWhenVaultToLockIsEmpty() (gas: 114275)
|
||||
MaliciousUpgradeTest:test_UpgradeStackOverflowStakeManager() (gas: 2014867)
|
||||
MathTest:test_CalcAbsoluteMaxTotalMP() (gas: 5240)
|
||||
MathTest:test_CalcAccrueMP() (gas: 8599)
|
||||
MathTest:test_CalcBonusMP() (gas: 19200)
|
||||
MathTest:test_CalcInitialMP() (gas: 5794)
|
||||
MathTest:test_CalcInitialMP() (gas: 5836)
|
||||
MathTest:test_CalcMaxAccruedMP() (gas: 4886)
|
||||
MathTest:test_CalcMaxTotalMP() (gas: 19940)
|
||||
MultipleVaultsStakeTest:test_StakeMultipleVaults() (gas: 860071)
|
||||
MathTest:test_CalcMaxTotalMP() (gas: 19984)
|
||||
MultipleVaultsStakeTest:test_StakeMultipleVaults() (gas: 867829)
|
||||
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: 1326310)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards() (gas: 224746)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadAmount() (gas: 61282)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadDuration() (gas: 101104)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsNotAuthorized() (gas: 39344)
|
||||
RewardsStreamerMP_RewardsTest:testTotalRewardsSupply() (gas: 761364)
|
||||
StakeTest:test_RevertWhenStakeMultipleTimesExceedsMaxLockUpTime() (gas: 774528)
|
||||
StakeTest:test_RevertWhenStakeMultipleTimesWithGapsExceedsMaxLockUpTime() (gas: 826669)
|
||||
StakeTest:test_StakeMultipleAccounts() (gas: 601877)
|
||||
StakeTest:test_StakeMultipleAccountsAndRewards() (gas: 610415)
|
||||
StakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1039884)
|
||||
StakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 630260)
|
||||
StakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 674876)
|
||||
StakeTest:test_StakeMultipleTimesWithLockIncreaseAtSameBlock() (gas: 623415)
|
||||
StakeTest:test_StakeMultipleTimesWithLockZeroAfterMaxLock() (gas: 739368)
|
||||
StakeTest:test_StakeOneAccount() (gas: 339156)
|
||||
StakeTest:test_StakeOneAccountAndRewards() (gas: 347756)
|
||||
StakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 615095)
|
||||
StakeTest:test_StakeOneAccountReachingMPLimit() (gas: 603226)
|
||||
StakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 377449)
|
||||
StakeTest:test_StakeOneAccountWithMinLockUp() (gas: 378045)
|
||||
StakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 378090)
|
||||
StakeVaultMigrationTest:testMigrateToVault() (gas: 958866)
|
||||
StakeVaultMigrationTest:test_RevertWhenMigrationVaultNotEmpty() (gas: 648499)
|
||||
StakeVaultMigrationTest:test_RevertWhenNotOwnerOfMigrationVault() (gas: 68044)
|
||||
RewardsStreamerMP_RewardsTest:testRewardsBalanceOf() (gas: 1330208)
|
||||
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: 762564)
|
||||
StakeTest:test_RevertWhenStakeMultipleTimesExceedsMaxLockUpTime() (gas: 790648)
|
||||
StakeTest:test_RevertWhenStakeMultipleTimesWithGapsExceedsMaxLockUpTime() (gas: 842833)
|
||||
StakeTest:test_StakeMultipleAccounts() (gas: 607093)
|
||||
StakeTest:test_StakeMultipleAccountsAndRewards() (gas: 615587)
|
||||
StakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1020283)
|
||||
StakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 635454)
|
||||
StakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 680092)
|
||||
StakeTest:test_StakeMultipleTimesWithLockIncreaseAtSameBlock() (gas: 631217)
|
||||
StakeTest:test_StakeMultipleTimesWithLockZeroAfterMaxLock() (gas: 749888)
|
||||
StakeTest:test_StakeOneAccount() (gas: 341742)
|
||||
StakeTest:test_StakeOneAccountAndRewards() (gas: 350276)
|
||||
StakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 654186)
|
||||
StakeTest:test_StakeOneAccountReachingMPLimit() (gas: 538684)
|
||||
StakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 380035)
|
||||
StakeTest:test_StakeOneAccountWithMinLockUp() (gas: 380631)
|
||||
StakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 380676)
|
||||
StakeVaultMigrationTest:testMigrateToVault() (gas: 933616)
|
||||
StakeVaultMigrationTest:test_RevertWhenMigrationVaultNotEmpty() (gas: 651195)
|
||||
StakeVaultMigrationTest:test_RevertWhenNotOwnerOfMigrationVault() (gas: 68065)
|
||||
StakeVaultTest:testOwner() (gas: 15262)
|
||||
StakingTokenTest:testOwner() (gas: 15262)
|
||||
StakingTokenTest:testStakeToken() (gas: 13144)
|
||||
TrustedCodehashAccessTest:test_RevertWhenProxyCloneCodehashNotTrusted() (gas: 2023424)
|
||||
UnstakeTest:test_RevertWhenStakeMultipleTimesExceedsMaxLockUpTime() (gas: 774528)
|
||||
UnstakeTest:test_RevertWhenStakeMultipleTimesWithGapsExceedsMaxLockUpTime() (gas: 826713)
|
||||
UnstakeTest:test_StakeMultipleAccounts() (gas: 601834)
|
||||
UnstakeTest:test_StakeMultipleAccountsAndRewards() (gas: 610437)
|
||||
UnstakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1039928)
|
||||
UnstakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 630304)
|
||||
UnstakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 674920)
|
||||
UnstakeTest:test_StakeMultipleTimesWithLockIncreaseAtSameBlock() (gas: 623415)
|
||||
UnstakeTest:test_StakeMultipleTimesWithLockZeroAfterMaxLock() (gas: 739368)
|
||||
UnstakeTest:test_StakeOneAccount() (gas: 339156)
|
||||
UnstakeTest:test_StakeOneAccountAndRewards() (gas: 347733)
|
||||
UnstakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 615072)
|
||||
UnstakeTest:test_StakeOneAccountReachingMPLimit() (gas: 603184)
|
||||
UnstakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 377449)
|
||||
UnstakeTest:test_StakeOneAccountWithMinLockUp() (gas: 378045)
|
||||
UnstakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 378156)
|
||||
UnstakeTest:test_UnstakeBonusMPAndAccuredMP() (gas: 655966)
|
||||
UnstakeTest:test_UnstakeMultipleAccounts() (gas: 844237)
|
||||
UnstakeTest:test_UnstakeMultipleAccountsAndRewards() (gas: 959589)
|
||||
UnstakeTest:test_UnstakeOneAccount() (gas: 575842)
|
||||
UnstakeTest:test_UnstakeOneAccountAndAccruedMP() (gas: 600078)
|
||||
UnstakeTest:test_UnstakeOneAccountAndRewards() (gas: 496119)
|
||||
UnstakeTest:test_UnstakeOneAccountWithLockUpAndAccruedMP() (gas: 642865)
|
||||
UpgradeTest:test_RevertWhenNotOwner() (gas: 3706881)
|
||||
UpgradeTest:test_UpgradeStakeManager() (gas: 9786130)
|
||||
VaultRegistrationTest:test_VaultRegistration() (gas: 63226)
|
||||
TrustedCodehashAccessTest:test_RevertWhenProxyCloneCodehashNotTrusted() (gas: 2023488)
|
||||
UnstakeTest:test_RevertWhenStakeMultipleTimesExceedsMaxLockUpTime() (gas: 790648)
|
||||
UnstakeTest:test_RevertWhenStakeMultipleTimesWithGapsExceedsMaxLockUpTime() (gas: 842877)
|
||||
UnstakeTest:test_StakeMultipleAccounts() (gas: 607050)
|
||||
UnstakeTest:test_StakeMultipleAccountsAndRewards() (gas: 615609)
|
||||
UnstakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 1020327)
|
||||
UnstakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 635498)
|
||||
UnstakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 680136)
|
||||
UnstakeTest:test_StakeMultipleTimesWithLockIncreaseAtSameBlock() (gas: 631217)
|
||||
UnstakeTest:test_StakeMultipleTimesWithLockZeroAfterMaxLock() (gas: 749888)
|
||||
UnstakeTest:test_StakeOneAccount() (gas: 341742)
|
||||
UnstakeTest:test_StakeOneAccountAndRewards() (gas: 350253)
|
||||
UnstakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 654230)
|
||||
UnstakeTest:test_StakeOneAccountReachingMPLimit() (gas: 538728)
|
||||
UnstakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 380035)
|
||||
UnstakeTest:test_StakeOneAccountWithMinLockUp() (gas: 380631)
|
||||
UnstakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 380742)
|
||||
UnstakeTest:test_UnstakeBonusMPAndAccuredMP() (gas: 630320)
|
||||
UnstakeTest:test_UnstakeMultipleAccounts() (gas: 854539)
|
||||
UnstakeTest:test_UnstakeMultipleAccountsAndRewards() (gas: 971298)
|
||||
UnstakeTest:test_UnstakeOneAccount() (gas: 582511)
|
||||
UnstakeTest:test_UnstakeOneAccountAndAccruedMP() (gas: 580840)
|
||||
UnstakeTest:test_UnstakeOneAccountAndRewards() (gas: 501182)
|
||||
UnstakeTest:test_UnstakeOneAccountWithLockUpAndAccruedMP() (gas: 617297)
|
||||
UpdateVaultTest:test_UpdateAccount() (gas: 2503372)
|
||||
UpgradeTest:test_RevertWhenNotOwner() (gas: 3660673)
|
||||
UpgradeTest:test_UpgradeStakeManager() (gas: 9698983)
|
||||
VaultRegistrationTest:test_VaultRegistration() (gas: 63050)
|
||||
WithdrawTest:testOwner() (gas: 15296)
|
||||
WithdrawTest:test_CannotWithdrawStakedFunds() (gas: 368209)
|
||||
WithdrawTest:test_CannotWithdrawStakedFunds() (gas: 370795)
|
||||
@@ -30,9 +30,8 @@ definition noCallDuringEmergency(method f) returns bool = (
|
||||
|| f.selector == sig:streamer.setRewardsSupplier(address).selector
|
||||
|| f.selector == sig:streamer.registerVault().selector
|
||||
|| f.selector == sig:streamer.migrateToVault(address).selector
|
||||
|| f.selector == sig:streamer.compound(address).selector
|
||||
|| f.selector == sig:streamer.compoundAccount(address).selector
|
||||
|| f.selector == sig:streamer.updateVaultMP(address).selector
|
||||
|| f.selector == sig:streamer.updateAccount(address).selector
|
||||
|| f.selector == sig:streamer.updateVault(address).selector
|
||||
|| f.selector == sig:streamer.unstake(uint256).selector
|
||||
|| f.selector == sig:streamer.stake(uint256, uint256).selector
|
||||
|| f.selector == sig:streamer.lock(uint256).selector
|
||||
|
||||
@@ -10,7 +10,7 @@ methods {
|
||||
function vaultData(address) external returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256) envfree;
|
||||
function lastMPUpdatedTime() external returns (uint256) envfree;
|
||||
function updateGlobalState() external;
|
||||
function updateVaultMP(address vaultAddress) external;
|
||||
function updateVault(address vaultAddress) external;
|
||||
function emergencyModeEnabled() external returns (bool) envfree;
|
||||
function leave() external;
|
||||
function Math.mulDiv(uint256 a, uint256 b, uint256 c) internal returns uint256 => mulDivSummary(a,b,c);
|
||||
@@ -77,8 +77,7 @@ rule stakingMintsMultiplierPoints1To1Ratio {
|
||||
|
||||
require getVaultLockUntil(e.msg.sender) <= e.block.timestamp;
|
||||
|
||||
updateGlobalState(e);
|
||||
updateVaultMP(e, e.msg.sender);
|
||||
updateVault(e, e.msg.sender);
|
||||
uint256 t = lastMPUpdatedTime();
|
||||
|
||||
multiplierPointsBefore = getVaultMPAccrued(e.msg.sender);
|
||||
|
||||
@@ -335,50 +335,26 @@ contract RewardsStreamerMP is
|
||||
rewardEndTime = block.timestamp + duration;
|
||||
}
|
||||
|
||||
/**
|
||||
* @notice Allows users to compound their accrued MP.
|
||||
* @dev This function is only callable when emergency mode is disabled.
|
||||
* @dev Anyone can compound MPs for any vault.
|
||||
*/
|
||||
function compound(address vaultAddress) external onlyNotEmergencyMode {
|
||||
_updateGlobalState();
|
||||
_compound(vaultAddress);
|
||||
}
|
||||
|
||||
/**
|
||||
* @notice Allows any user to compound accrued MP for any user.
|
||||
* @dev This function is only callable when emergency mode is disabled.
|
||||
* @dev Anyone can compound MPs for account.
|
||||
*/
|
||||
function compoundAccount(address account) external onlyNotEmergencyMode {
|
||||
function updateAccount(address account) external onlyNotEmergencyMode {
|
||||
_updateGlobalState();
|
||||
address[] memory accountVaults = vaults[account];
|
||||
for (uint256 i = 0; i < accountVaults.length; i++) {
|
||||
_compound(accountVaults[i]);
|
||||
_updateVault(accountVaults[i], false);
|
||||
}
|
||||
}
|
||||
|
||||
function _compound(address vaultAddress) internal {
|
||||
VaultData storage vault = vaultData[vaultAddress];
|
||||
_updateVault(vaultAddress, false);
|
||||
|
||||
uint256 mpToStake = vault.mpAccrued - vault.mpStaked;
|
||||
if (mpToStake == 0) {
|
||||
revert StakingManager__InsufficientBalance();
|
||||
}
|
||||
|
||||
vault.mpStaked += mpToStake;
|
||||
totalMPStaked += mpToStake;
|
||||
vault.rewardIndex = rewardIndex;
|
||||
emit Compound(vaultAddress, mpToStake);
|
||||
}
|
||||
|
||||
/**
|
||||
* @notice Allows users to claim their accrued rewards.
|
||||
* @dev This function is only callable when emergency mode is disabled.
|
||||
* @dev Anyone can claim rewards on behalf of any vault
|
||||
*/
|
||||
function updateVaultMP(address vaultAddress) external onlyNotEmergencyMode {
|
||||
function updateVault(address vaultAddress) external onlyNotEmergencyMode {
|
||||
_updateGlobalState();
|
||||
_updateVault(vaultAddress, false);
|
||||
}
|
||||
|
||||
@@ -459,6 +435,12 @@ contract RewardsStreamerMP is
|
||||
uint256 rewardsAccrued = _vaultPendingRewards(vault);
|
||||
vault.rewardsAccrued += rewardsAccrued;
|
||||
vault.rewardIndex = rewardIndex;
|
||||
|
||||
uint256 mpToStake = vault.mpAccrued - vault.mpStaked;
|
||||
vault.mpStaked += mpToStake;
|
||||
totalMPStaked += mpToStake;
|
||||
vault.rewardIndex = rewardIndex;
|
||||
emit Compound(vaultAddress, mpToStake);
|
||||
}
|
||||
|
||||
function updateRewardIndex() internal {
|
||||
|
||||
@@ -59,7 +59,7 @@ interface IStakeManager is ITrustedCodehashAccess, IStakeConstants {
|
||||
function unstake(uint256 _amount) external;
|
||||
function leave() external;
|
||||
function migrateToVault(address migrateTo) external;
|
||||
function compound(address _vault) external;
|
||||
function updateVault(address vaultAddress) external;
|
||||
|
||||
function emergencyModeEnabled() external view returns (bool);
|
||||
function totalStaked() external view returns (uint256);
|
||||
|
||||
@@ -163,9 +163,9 @@ contract RewardsStreamerMPTest is StakeMath, Test {
|
||||
vault.stake(amount, lockupTime);
|
||||
}
|
||||
|
||||
function _compound(address account) public {
|
||||
function _updateVault(address account) public {
|
||||
StakeVault vault = StakeVault(vaults[account]);
|
||||
streamer.compound(address(vault));
|
||||
streamer.updateVault(address(vault));
|
||||
}
|
||||
|
||||
function _unstake(address account, uint256 amount) public {
|
||||
@@ -835,16 +835,15 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
vm.warp(currentTime + (YEAR));
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
|
||||
uint256 expectedMPIncrease = stakeAmount; // 1 year passed, 1 MP accrued per token staked
|
||||
uint256 totalMPStaked = totalMPAccrued;
|
||||
totalMPAccrued = totalMPAccrued + expectedMPIncrease;
|
||||
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: stakeAmount,
|
||||
totalMPStaked: totalMPAccrued,
|
||||
totalMPAccrued: totalMPAccrued,
|
||||
totalMaxMP: totalMaxMP,
|
||||
stakingBalance: stakeAmount,
|
||||
@@ -860,7 +859,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: totalMPStaked,
|
||||
mpStaked: totalMPAccrued,
|
||||
mpAccrued: totalMPAccrued, // accountMP == totalMPAccrued because only one account is staking
|
||||
maxMP: totalMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -871,7 +870,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
vm.warp(currentTime + (YEAR / 2));
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
|
||||
expectedMPIncrease = stakeAmount / 2; // 1/2 year passed, 1/2 MP accrued per token staked
|
||||
totalMPAccrued = totalMPAccrued + expectedMPIncrease;
|
||||
@@ -879,7 +878,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: stakeAmount,
|
||||
totalMPStaked: totalMPAccrued,
|
||||
totalMPAccrued: totalMPAccrued,
|
||||
totalMaxMP: totalMaxMP,
|
||||
stakingBalance: stakeAmount,
|
||||
@@ -895,7 +894,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: totalMPStaked,
|
||||
mpStaked: totalMPAccrued,
|
||||
mpAccrued: totalMPAccrued, // accountMP == totalMPAccrued because only one account is staking
|
||||
maxMP: totalMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -929,7 +928,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: stakeAmount,
|
||||
mpStaked: totalMPAccrued,
|
||||
mpAccrued: totalMPAccrued, // accountMP == totalMPAccrued because only one account is staking
|
||||
maxMP: totalMaxMP, // maxMP == totalMaxMP because only one account is staking
|
||||
rewardsAccrued: 0
|
||||
@@ -940,13 +939,12 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
uint256 timeToMaxMP = _timeToAccrueMP(stakeAmount, totalMaxMP - totalMPAccrued);
|
||||
vm.warp(currentTime + timeToMaxMP);
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: stakeAmount,
|
||||
totalMPStaked: totalMaxMP,
|
||||
totalMPAccrued: totalMaxMP,
|
||||
totalMaxMP: totalMaxMP,
|
||||
stakingBalance: stakeAmount,
|
||||
@@ -962,7 +960,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: stakeAmount,
|
||||
mpStaked: totalMaxMP,
|
||||
mpAccrued: totalMaxMP,
|
||||
maxMP: totalMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -974,13 +972,12 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
// increasing time by some big enough time such that MPs are actually generated
|
||||
vm.warp(currentTime + 14 days);
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: stakeAmount,
|
||||
totalMPStaked: totalMaxMP,
|
||||
totalMPAccrued: totalMaxMP,
|
||||
totalMaxMP: totalMaxMP,
|
||||
stakingBalance: stakeAmount,
|
||||
@@ -1320,7 +1317,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: params.totalStaked,
|
||||
totalMPStaked: params.totalStaked,
|
||||
totalMPStaked: params.totalMPAccrued,
|
||||
totalMPAccrued: params.totalMPAccrued,
|
||||
totalMaxMP: params.totalMaxMP,
|
||||
stakingBalance: params.totalStaked,
|
||||
@@ -1359,9 +1356,8 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
uint256 currentTime = vm.getBlockTimestamp();
|
||||
vm.warp(currentTime + (YEAR));
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVaultMP(vaults[bob]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
streamer.updateVault(vaults[bob]);
|
||||
|
||||
uint256 aliceExpectedMPIncrease = params.aliceStakeAmount; // 1 year passed, 1 MP accrued per token staked
|
||||
uint256 bobExpectedMPIncrease = params.bobStakeAmount; // 1 year passed, 1 MP accrued per token staked
|
||||
@@ -1374,7 +1370,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: params.totalStaked,
|
||||
totalMPStaked: params.totalStaked,
|
||||
totalMPStaked: params.totalMPAccrued,
|
||||
totalMPAccrued: params.totalMPAccrued,
|
||||
totalMaxMP: params.totalMaxMP,
|
||||
stakingBalance: params.totalStaked,
|
||||
@@ -1390,7 +1386,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: params.aliceStakeAmount,
|
||||
vaultBalance: params.aliceStakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: aliceMP,
|
||||
mpStaked: aliceMP + aliceExpectedMPIncrease,
|
||||
mpAccrued: aliceMP + aliceExpectedMPIncrease,
|
||||
maxMP: aliceMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1403,7 +1399,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: params.bobStakeAmount,
|
||||
vaultBalance: params.bobStakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: bobMP,
|
||||
mpStaked: bobMPAccrued,
|
||||
mpAccrued: bobMPAccrued,
|
||||
maxMP: bobMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1413,9 +1409,8 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
currentTime = vm.getBlockTimestamp();
|
||||
vm.warp(currentTime + (YEAR / 2));
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVaultMP(vaults[bob]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
streamer.updateVault(vaults[bob]);
|
||||
|
||||
aliceExpectedMPIncrease = params.aliceStakeAmount / 2;
|
||||
bobExpectedMPIncrease = params.bobStakeAmount / 2;
|
||||
@@ -1428,7 +1423,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: params.totalStaked,
|
||||
totalMPStaked: params.totalStaked,
|
||||
totalMPStaked: params.totalMPAccrued,
|
||||
totalMPAccrued: params.totalMPAccrued,
|
||||
totalMaxMP: params.totalMaxMP,
|
||||
stakingBalance: params.totalStaked,
|
||||
@@ -1444,7 +1439,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: params.aliceStakeAmount,
|
||||
vaultBalance: params.aliceStakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: aliceMP,
|
||||
mpStaked: aliceMPAccrued,
|
||||
mpAccrued: aliceMPAccrued,
|
||||
maxMP: aliceMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1457,7 +1452,7 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: params.bobStakeAmount,
|
||||
vaultBalance: params.bobStakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: bobMP,
|
||||
mpStaked: bobMPAccrued,
|
||||
mpAccrued: bobMPAccrued,
|
||||
maxMP: bobMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1524,13 +1519,12 @@ contract UnstakeTest is StakeTest {
|
||||
uint256 currentTime = vm.getBlockTimestamp();
|
||||
vm.warp(currentTime + (YEAR));
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: 10e18,
|
||||
totalMPStaked: 10e18,
|
||||
totalMPStaked: 20e18,
|
||||
totalMPAccrued: 20e18, // total MP must have been doubled
|
||||
totalMaxMP: 50e18,
|
||||
stakingBalance: 10e18,
|
||||
@@ -1569,13 +1563,12 @@ contract UnstakeTest is StakeTest {
|
||||
|
||||
vm.warp(currentTime + (warpLength));
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: (stakeAmount + expectedBonusMP),
|
||||
totalMPStaked: (stakeAmount + expectedBonusMP) + stakeAmount,
|
||||
totalMPAccrued: (stakeAmount + expectedBonusMP) + stakeAmount, // we do `+ stakeAmount` we've accrued
|
||||
// `stakeAmount` after 1 year
|
||||
totalMaxMP: _maxTotalMP(stakeAmount, lockUpPeriod),
|
||||
@@ -1706,8 +1699,7 @@ contract UnstakeTest is StakeTest {
|
||||
|
||||
stage++; // second stage: progress in time
|
||||
vm.warp(timestamp[stage]);
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
{
|
||||
RewardsStreamerMP.VaultData memory vaultData = streamer.getVault(vaults[alice]);
|
||||
assertEq(vaultData.stakedBalance, totalStaked[stage], "stage 2: wrong account staked balance");
|
||||
@@ -2033,8 +2025,7 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
uint256 currentTime = vm.getBlockTimestamp();
|
||||
vm.warp(currentTime + (4 * YEAR));
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
|
||||
// Check updated state
|
||||
checkVault(
|
||||
@@ -2044,7 +2035,7 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP + expectedBonusMP,
|
||||
mpStaked: initialAccountMP + expectedBonusMP + (initialAccountMP * 4),
|
||||
mpAccrued: initialAccountMP + expectedBonusMP + (initialAccountMP * 4),
|
||||
maxMP: initialMaxMP + expectedBonusMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -2640,7 +2631,7 @@ contract RewardsStreamerMP_RewardsTest is RewardsStreamerMPTest {
|
||||
assertEq(streamer.vaultShares(vaults[bob]), 200e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[bob]), 250e18);
|
||||
|
||||
_compound(alice);
|
||||
_updateVault(alice);
|
||||
|
||||
assertEq(streamer.totalStaked(), 200e18);
|
||||
assertEq(streamer.totalMPStaked(), 400e18);
|
||||
@@ -2795,8 +2786,7 @@ contract StakeVaultMigrationTest is RewardsStreamerMPTest {
|
||||
uint256 currentTime = vm.getBlockTimestamp();
|
||||
vm.warp(currentTime + 365 days);
|
||||
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[alice]);
|
||||
streamer.updateVault(vaults[alice]);
|
||||
|
||||
// ensure vault has accumulated MPs
|
||||
checkVault(
|
||||
@@ -2806,7 +2796,7 @@ contract StakeVaultMigrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP,
|
||||
mpStaked: initialAccountMP * 2,
|
||||
mpAccrued: initialAccountMP * 2, // alice now has twice the amount after a year
|
||||
maxMP: initialMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -2816,7 +2806,7 @@ contract StakeVaultMigrationTest is RewardsStreamerMPTest {
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: stakeAmount,
|
||||
totalMPStaked: stakeAmount * 2,
|
||||
totalMPAccrued: initialAccountMP * 2, // stakemanager has twice the amount after a year
|
||||
totalMaxMP: initialMaxMP,
|
||||
stakingBalance: stakeAmount,
|
||||
@@ -2837,7 +2827,7 @@ contract StakeVaultMigrationTest is RewardsStreamerMPTest {
|
||||
checkStreamer(
|
||||
CheckStreamerParams({
|
||||
totalStaked: stakeAmount,
|
||||
totalMPStaked: initialAccountMP,
|
||||
totalMPStaked: initialAccountMP * 2,
|
||||
totalMPAccrued: initialAccountMP * 2,
|
||||
totalMaxMP: initialMaxMP,
|
||||
stakingBalance: stakeAmount,
|
||||
@@ -2854,7 +2844,7 @@ contract StakeVaultMigrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP,
|
||||
mpStaked: initialAccountMP * 2,
|
||||
mpAccrued: initialAccountMP * 2, // alice now has twice the amount after a year
|
||||
maxMP: initialMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -2878,18 +2868,12 @@ contract StakeVaultMigrationTest is RewardsStreamerMPTest {
|
||||
}
|
||||
}
|
||||
|
||||
contract CompoundTest is RewardsStreamerMPTest {
|
||||
contract UpdateVaultTest is RewardsStreamerMPTest {
|
||||
function setUp() public virtual override {
|
||||
super.setUp();
|
||||
}
|
||||
|
||||
function test_RevertWhenInsufficientMPBalance() public {
|
||||
_stake(alice, 10e18, 0);
|
||||
vm.expectRevert(IStakeManager.StakingManager__InsufficientBalance.selector);
|
||||
_compound(alice);
|
||||
}
|
||||
|
||||
function test_CompoundForAccount() public {
|
||||
function test_UpdateAccount() public {
|
||||
uint256 stakeAmount = 1000e18;
|
||||
|
||||
// alice stakes 1000 tokens
|
||||
@@ -2928,7 +2912,7 @@ contract CompoundTest is RewardsStreamerMPTest {
|
||||
assertEq(streamer.mpStakedOf(vault4), stakeAmount);
|
||||
|
||||
// compound alice's MP
|
||||
streamer.compoundAccount(alice);
|
||||
streamer.updateAccount(alice);
|
||||
|
||||
uint256 expectedMPIncreasePerVault = _accrueMP(stakeAmount, rewardPeriod);
|
||||
|
||||
@@ -3038,18 +3022,17 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
}
|
||||
}
|
||||
|
||||
function _compound(address account, bytes4 _expectedRevert) internal {
|
||||
function _updateVault(address account, bytes4 _expectedRevert) internal {
|
||||
StakeVault vault = StakeVault(vaults[account]);
|
||||
_expectRevert(_expectedRevert);
|
||||
streamer.compound(address(vault));
|
||||
streamer.updateVault(address(vault));
|
||||
}
|
||||
|
||||
function _accrue(address account, uint256 accruedTime) internal {
|
||||
if (accruedTime > 0) {
|
||||
vm.warp(vm.getBlockTimestamp() + accruedTime);
|
||||
}
|
||||
streamer.updateGlobalState();
|
||||
streamer.updateVaultMP(vaults[account]);
|
||||
streamer.updateVault(vaults[account]);
|
||||
}
|
||||
|
||||
function _unstake(address account, uint256 amount, bytes4 _expectedRevert) internal {
|
||||
@@ -3060,7 +3043,7 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
expectedRevert = FuzzTests__UndefinedError.selector;
|
||||
}
|
||||
|
||||
function _expectCompound(address account) internal {
|
||||
function _expectUpdateVault(address account) internal {
|
||||
CheckVaultParams storage expectedAccountParams = expectedAccountState[account];
|
||||
uint256 mpCompounded = expectedAccountParams.mpAccrued - expectedAccountParams.mpStaked;
|
||||
if (mpCompounded == 0) {
|
||||
@@ -3235,30 +3218,27 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
|
||||
function testFuzz_AccrueMP(uint128 stakeAmount, uint64 lockUpPeriod, uint64 accruedTime) public {
|
||||
vm.assume(stakeAmount > 0 && stakeAmount <= MAX_BALANCE);
|
||||
//vm.assume(lockUpPeriod < vm.getBlockTimestamp() - (MAX_LOCKUP_PERIOD*10));
|
||||
|
||||
_expectStake(alice, stakeAmount, lockUpPeriod);
|
||||
_stake(alice, stakeAmount, lockUpPeriod, expectedRevert);
|
||||
check("Stake: ", alice);
|
||||
|
||||
_expectAccrue(alice, accruedTime);
|
||||
_expectUpdateVault(alice);
|
||||
_accrue(alice, accruedTime);
|
||||
check("Accrue: ", alice);
|
||||
}
|
||||
|
||||
function testFuzz_Compound(uint128 stakeAmount, uint64 lockUpPeriod, uint64 accruedTime) public {
|
||||
function testFuzz_UpdateVault(uint128 stakeAmount, uint64 lockUpPeriod, uint64 accruedTime) public {
|
||||
vm.assume(stakeAmount > 0 && stakeAmount <= MAX_BALANCE);
|
||||
_expectStake(alice, stakeAmount, lockUpPeriod);
|
||||
_stake(alice, stakeAmount, lockUpPeriod, expectedRevert);
|
||||
check("Stake: ", alice);
|
||||
|
||||
_expectAccrue(alice, accruedTime);
|
||||
_expectUpdateVault(alice);
|
||||
_accrue(alice, accruedTime);
|
||||
check("Accrue: ", alice);
|
||||
|
||||
_expectCompound(alice);
|
||||
_compound(alice, expectedRevert);
|
||||
check("Compound", alice);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3280,6 +3260,7 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
check("Stake: ", alice);
|
||||
|
||||
_expectAccrue(alice, accruedTime);
|
||||
_expectUpdateVault(alice);
|
||||
_accrue(alice, accruedTime);
|
||||
check("Accrue: ", alice);
|
||||
|
||||
@@ -3304,14 +3285,12 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
|
||||
if (accruedTime > 0) {
|
||||
_expectAccrue(alice, accruedTime);
|
||||
_expectUpdateVault(alice);
|
||||
_accrue(alice, accruedTime);
|
||||
check("Accrue: ", alice);
|
||||
}
|
||||
|
||||
_expectCompound(alice);
|
||||
_compound(alice, expectedRevert);
|
||||
check("Compound", alice);
|
||||
|
||||
_expectUpdateVault(alice);
|
||||
_expectUnstake(alice, unstakeAmount);
|
||||
_unstake(alice, unstakeAmount, expectedRevert);
|
||||
check("Unstake: ", alice);
|
||||
|
||||
@@ -54,7 +54,7 @@ contract StackOverflowStakeManager is UUPSUpgradeable, IStakeManager, TrustedCod
|
||||
}
|
||||
|
||||
// solhint-disable-next-line
|
||||
function compound(address _vaultAddress) external override {
|
||||
function updateVault(address _vaultAddress) external override {
|
||||
// implementation
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user