mirror of
https://github.com/vacp2p/staking-reward-streamer.git
synced 2026-01-08 23:08:19 -05:00
!refactor(RewardsStreamerMP): remove VaultData.mpStaked
After doing somme work on merging `compound()` into `updateVault()`, we noticed that both, `vault.mpStaked` and `vault.mpAccrued` are always equal. Therefore, we're removing `vault.mpStaked`. BREAKING CHANGE: - `VaultData.mpStaked` no longer exists, use `VaultData.mpAccrued` instead. - `Compound(address,uint256)` is now `VaultUpdated(address,uint256,uint256)` - `AccountLeft(address)` is now `VaultLeft(address)`
This commit is contained in:
84
.gas-report
84
.gas-report
@@ -46,13 +46,13 @@
|
||||
+=======================================================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| 8426081 | 40179 | | | | |
|
||||
| 8381426 | 39972 | | | | |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| | | | | | |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| run | 7344553 | 7344553 | 7344553 | 7344553 | 92 |
|
||||
| run | 7303079 | 7303079 | 7303079 | 7303079 | 92 |
|
||||
╰-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
|
||||
|
||||
╭---------------------------------------------------------+-----------------+-----+--------+-----+---------╮
|
||||
@@ -74,13 +74,13 @@
|
||||
+=========================================================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| 5876550 | 28270 | | | | |
|
||||
| 5831915 | 28063 | | | | |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| | | | | | |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
|
||||
| runWithAdminAndProxy | 3307416 | 3307416 | 3307416 | 3307416 | 3 |
|
||||
| runWithAdminAndProxy | 3265942 | 3265942 | 3265942 | 3265942 | 3 |
|
||||
╰-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
|
||||
|
||||
╭------------------------------+-----------------+--------+--------+--------+---------╮
|
||||
@@ -162,7 +162,7 @@
|
||||
+=============================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| 3513565 | 16276 | | | | |
|
||||
| 3468937 | 16069 | | | | |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| | | | | | |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
@@ -172,7 +172,7 @@
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| MAX_MULTIPLIER | 263 | 263 | 263 | 263 | 20 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| MIN_LOCKUP_PERIOD | 309 | 309 | 309 | 309 | 15 |
|
||||
| MIN_LOCKUP_PERIOD | 331 | 331 | 331 | 331 | 15 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| emergencyModeEnabled | 2421 | 2421 | 2421 | 2421 | 263 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
@@ -184,71 +184,71 @@
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getAccountVaults | 5230 | 5230 | 5230 | 5230 | 4 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| getVault | 1970 | 7418 | 1970 | 17970 | 4182 |
|
||||
| getVault | 1823 | 6577 | 1823 | 15823 | 4181 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| initialize | 92752 | 92752 | 92752 | 92752 | 92 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| lastRewardTime | 407 | 1407 | 1407 | 2407 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| leave | 94998 | 94998 | 94998 | 94998 | 1 |
|
||||
| leave | 88837 | 88837 | 88837 | 88837 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| lock | 7040 | 45107 | 48575 | 90631 | 1034 |
|
||||
| lock | 7040 | 42377 | 45950 | 84893 | 1034 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| migrateToVault | 13570 | 72911 | 15777 | 189386 | 3 |
|
||||
| migrateToVault | 13570 | 63656 | 15777 | 161622 | 3 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mpAccruedOf | 629 | 629 | 629 | 629 | 20 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mpBalanceOf | 917 | 2361 | 2316 | 7063 | 12 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mpBalanceOfAccount | 6210 | 8283 | 8283 | 10356 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| mpStakedOf | 606 | 701 | 606 | 2606 | 21 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| proxiableUUID | 342 | 342 | 342 | 342 | 3 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| registerVault | 2561 | 74414 | 74992 | 74992 | 362 |
|
||||
| registerVault | 2583 | 74436 | 75014 | 75014 | 362 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardEndTime | 407 | 1407 | 1407 | 2407 | 2 |
|
||||
| rewardEndTime | 429 | 1429 | 1429 | 2429 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardStartTime | 430 | 1430 | 1430 | 2430 | 2 |
|
||||
| rewardStartTime | 364 | 1364 | 1364 | 2364 | 2 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardsBalanceOf | 2273 | 3477 | 3886 | 6273 | 268 |
|
||||
| rewardsBalanceOf | 2295 | 3505 | 3908 | 6295 | 268 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| rewardsBalanceOfAccount | 10220 | 10220 | 10220 | 10220 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setReward | 2508 | 105565 | 107076 | 107076 | 265 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setRewardsSupplier | 26853 | 26853 | 26853 | 26853 | 87 |
|
||||
| setRewardsSupplier | 26875 | 26875 | 26875 | 26875 | 87 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| setTrustedCodehash | 24216 | 24216 | 24216 | 24216 | 92 |
|
||||
| setTrustedCodehash | 24238 | 24238 | 24238 | 24238 | 92 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| stake | 2639 | 140781 | 62283 | 248368 | 2668 |
|
||||
| stake | 2639 | 129409 | 59967 | 225838 | 2668 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| stakedBalanceOf | 2600 | 2600 | 2600 | 2600 | 1 |
|
||||
| stakedBalanceOf | 2622 | 2622 | 2622 | 2622 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMP | 805 | 1257 | 1257 | 1710 | 6 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMPAccrued | 385 | 1069 | 385 | 2385 | 4162 |
|
||||
| totalMPAccrued | 385 | 1067 | 385 | 2385 | 4161 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMPStaked | 429 | 1112 | 429 | 2429 | 4165 |
|
||||
| totalMPStaked | 429 | 1111 | 429 | 2429 | 4164 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalMaxMP | 407 | 1091 | 407 | 2407 | 4162 |
|
||||
| totalMaxMP | 407 | 1089 | 407 | 2407 | 4161 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalRewardsAccrued | 407 | 407 | 407 | 407 | 3 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalRewardsSupply | 998 | 1624 | 1792 | 6737 | 290 |
|
||||
| totalRewardsSupply | 998 | 1627 | 1792 | 6737 | 290 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalShares | 662 | 662 | 662 | 662 | 6 |
|
||||
| totalShares | 597 | 597 | 597 | 597 | 6 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| totalStaked | 408 | 1091 | 408 | 2408 | 4169 |
|
||||
| totalStaked | 408 | 1089 | 408 | 2408 | 4168 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| unstake | 41572 | 44532 | 41598 | 80836 | 269 |
|
||||
| unstake | 38969 | 41819 | 38995 | 75006 | 269 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| updateAccount | 368128 | 368128 | 368128 | 368128 | 1 |
|
||||
| updateAccount | 347677 | 347677 | 347677 | 347677 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| updateGlobalState | 15820 | 25876 | 29230 | 29230 | 8 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| updateVault | 34573 | 37053 | 34573 | 115695 | 1024 |
|
||||
| updateVault | 31948 | 34247 | 31948 | 110579 | 1023 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| upgradeTo | 10257 | 10873 | 10257 | 12723 | 4 |
|
||||
| upgradeTo | 10279 | 10895 | 10279 | 12745 | 4 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| upgradeToAndCall | 3228 | 3228 | 3228 | 3228 | 1 |
|
||||
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
@@ -272,25 +272,25 @@
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| initialize | 97660 | 97660 | 97660 | 97660 | 362 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| leave | 12161 | 126408 | 69597 | 354278 | 4 |
|
||||
| leave | 12161 | 124868 | 66517 | 354279 | 4 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| lock | 12091 | 60526 | 64041 | 106094 | 1035 |
|
||||
| lock | 12091 | 57799 | 61416 | 100356 | 1035 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| migrateToVault | 29058 | 99593 | 31265 | 238456 | 3 |
|
||||
| migrateToVault | 29058 | 90338 | 31265 | 210692 | 3 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| owner | 379 | 411 | 379 | 2379 | 370 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| register | 12696 | 78061 | 78622 | 78622 | 362 |
|
||||
| register | 12718 | 78083 | 78644 | 78644 | 362 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| stake | 12071 | 174725 | 77776 | 303936 | 2669 |
|
||||
| stake | 12071 | 163418 | 75460 | 281406 | 2669 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| stakeManager | 369 | 369 | 369 | 369 | 361 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| trustStakeManager | 7580 | 7580 | 7580 | 7580 | 1 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| unstake | 12048 | 60951 | 57041 | 111858 | 270 |
|
||||
| unstake | 12048 | 58306 | 54438 | 106028 | 270 |
|
||||
|----------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| withdraw | 20711 | 20711 | 20711 | 20711 | 1 |
|
||||
| withdraw | 20733 | 20733 | 20733 | 20733 | 1 |
|
||||
╰----------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
╭----------------------------------------------------+-----------------+------+--------+--------+---------╮
|
||||
@@ -304,7 +304,7 @@
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| fallback | 708 | 6605 | 2454 | 394505 | 23163 |
|
||||
| fallback | 708 | 6324 | 2301 | 374054 | 23156 |
|
||||
|----------------------------------------------------+-----------------+------+--------+--------+---------|
|
||||
| implementation | 346 | 2345 | 2346 | 2346 | 4344 |
|
||||
╰----------------------------------------------------+-----------------+------+--------+--------+---------╯
|
||||
@@ -320,7 +320,7 @@
|
||||
|--------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|--------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| createVault | 230946 | 247667 | 248046 | 248046 | 361 |
|
||||
| createVault | 230968 | 247689 | 248068 | 248068 | 361 |
|
||||
╰--------------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
╭------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------╮
|
||||
@@ -402,7 +402,7 @@
|
||||
+==================================================================================================+
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| 770657 | 3987 | | | | |
|
||||
| 770741 | 3987 | | | | |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| | | | | | |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
@@ -410,7 +410,7 @@
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| approve | 29075 | 31479 | 29183 | 46259 | 2664 |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| balanceOf | 561 | 1350 | 561 | 2561 | 4956 |
|
||||
| balanceOf | 561 | 1348 | 561 | 2561 | 4955 |
|
||||
|---------------------------------------------+-----------------+-------+--------+-------+---------|
|
||||
| mint | 33964 | 37108 | 34072 | 68248 | 2673 |
|
||||
╰---------------------------------------------+-----------------+-------+--------+-------+---------╯
|
||||
@@ -426,7 +426,7 @@
|
||||
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| Function Name | Min | Avg | Median | Max | # Calls |
|
||||
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| leave | 26 | 161075 | 161075 | 322247 | 334 |
|
||||
| leave | 29 | 161076 | 161076 | 322248 | 334 |
|
||||
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
|
||||
| proxiableUUID | 308 | 308 | 308 | 308 | 1 |
|
||||
╰-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╯
|
||||
|
||||
156
.gas-snapshot
156
.gas-snapshot
@@ -1,21 +1,21 @@
|
||||
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_CannotLeaveBeforeEmergencyMode() (gas: 335172)
|
||||
EmergencyExitTest:test_EmergencyExitBasic() (gas: 426892)
|
||||
EmergencyExitTest:test_EmergencyExitMultipleUsers() (gas: 729239)
|
||||
EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 432421)
|
||||
EmergencyExitTest:test_EmergencyExitWithLock() (gas: 430501)
|
||||
EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 418391)
|
||||
EmergencyExitTest:test_OnlyOwnerCanEnableEmergencyMode() (gas: 39176)
|
||||
FuzzTests:testFuzz_AccrueMP(uint128,uint64,uint64) (runs: 1003, μ: 391761, ~: 358391)
|
||||
FuzzTests:testFuzz_AccrueMP_Relock(uint128,uint64,uint64,uint64) (runs: 1003, μ: 493828, ~: 461619)
|
||||
FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1002, μ: 519049, ~: 510169)
|
||||
FuzzTests:testFuzz_Lock(uint256,uint64) (runs: 1004, μ: 776285, ~: 775635)
|
||||
FuzzTests:testFuzz_Relock(uint256,uint64,uint64) (runs: 1004, μ: 395664, ~: 374421)
|
||||
FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1000, μ: 617159, ~: 618464)
|
||||
FuzzTests:testFuzz_Stake(uint256,uint64) (runs: 1004, μ: 297458, ~: 268424)
|
||||
FuzzTests:testFuzz_Unstake(uint128,uint64,uint16,uint128) (runs: 1003, μ: 497858, ~: 466515)
|
||||
FuzzTests:testFuzz_UpdateVault(uint128,uint64,uint64) (runs: 1003, μ: 391784, ~: 358414)
|
||||
IntegrationTest:testStakeFoo() (gas: 1438852)
|
||||
FuzzTests:testFuzz_AccrueMP(uint128,uint64,uint64) (runs: 1003, μ: 373311, ~: 342639)
|
||||
FuzzTests:testFuzz_AccrueMP_Relock(uint128,uint64,uint64,uint64) (runs: 1003, μ: 473961, ~: 444755)
|
||||
FuzzTests:testFuzz_EmergencyExit(uint256,uint256) (runs: 1002, μ: 495554, ~: 486579)
|
||||
FuzzTests:testFuzz_Lock(uint256,uint64) (runs: 1004, μ: 726451, ~: 725709)
|
||||
FuzzTests:testFuzz_Relock(uint256,uint64,uint64) (runs: 1004, μ: 385583, ~: 362897)
|
||||
FuzzTests:testFuzz_Rewards(uint256,uint256,uint256,uint16,uint16) (runs: 1000, μ: 594627, ~: 595934)
|
||||
FuzzTests:testFuzz_Stake(uint256,uint64) (runs: 1004, μ: 287630, ~: 260823)
|
||||
FuzzTests:testFuzz_Unstake(uint128,uint64,uint16,uint128) (runs: 1003, μ: 479272, ~: 448228)
|
||||
FuzzTests:testFuzz_UpdateVault(uint128,uint64,uint64) (runs: 1003, μ: 373334, ~: 342662)
|
||||
IntegrationTest:testStakeFoo() (gas: 1362727)
|
||||
KarmaNFTTest:testApproveNotAllowed() (gas: 10507)
|
||||
KarmaNFTTest:testGetApproved() (gas: 10531)
|
||||
KarmaNFTTest:testIsApprovedForAll() (gas: 10705)
|
||||
@@ -44,83 +44,83 @@ KarmaTest:testRemoveKarmaDistributorOnlyOwner() (gas: 88798)
|
||||
KarmaTest:testRemoveUnknownKarmaDistributor() (gas: 41398)
|
||||
KarmaTest:testTotalSupply() (gas: 331725)
|
||||
KarmaTest:testTransfersNotAllowed() (gas: 40241)
|
||||
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 9674621)
|
||||
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 354861)
|
||||
LeaveTest:test_TrustNewStakeManager() (gas: 9725694)
|
||||
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: 2014624)
|
||||
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 9561246)
|
||||
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 332331)
|
||||
LeaveTest:test_TrustNewStakeManager() (gas: 9616988)
|
||||
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1004, μ: 382885, ~: 382908)
|
||||
LockTest:test_LockFailsWithNoStake() (gas: 88865)
|
||||
LockTest:test_LockFailsWithZero() (gas: 342393)
|
||||
LockTest:test_LockMultipleTimesExceedMaxLock() (gas: 624582)
|
||||
LockTest:test_LockWithPriorLock() (gas: 560665)
|
||||
LockTest:test_LockWithoutPriorLock() (gas: 443152)
|
||||
LockTest:test_RevertWhenVaultToLockIsEmpty() (gas: 88865)
|
||||
MaliciousUpgradeTest:test_UpgradeStackOverflowStakeManager() (gas: 1992117)
|
||||
MathTest:test_CalcAbsoluteMaxTotalMP() (gas: 5240)
|
||||
MathTest:test_CalcAccrueMP() (gas: 8599)
|
||||
MathTest:test_CalcBonusMP() (gas: 19200)
|
||||
MathTest:test_CalcBonusMP() (gas: 19244)
|
||||
MathTest:test_CalcInitialMP() (gas: 5836)
|
||||
MathTest:test_CalcMaxAccruedMP() (gas: 4886)
|
||||
MathTest:test_CalcMaxTotalMP() (gas: 19984)
|
||||
MultipleVaultsStakeTest:test_StakeMultipleVaults() (gas: 867034)
|
||||
MathTest:test_CalcMaxTotalMP() (gas: 20006)
|
||||
MultipleVaultsStakeTest:test_StakeMultipleVaults() (gas: 799444)
|
||||
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: 1329190)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards() (gas: 224702)
|
||||
RewardsStreamerMP_RewardsTest:testRewardsBalanceOf() (gas: 1274873)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards() (gas: 224614)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadAmount() (gas: 61280)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadDuration() (gas: 101038)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsNotAuthorized() (gas: 39322)
|
||||
RewardsStreamerMP_RewardsTest:testTotalRewardsSupply() (gas: 762937)
|
||||
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: 925756)
|
||||
StakeVaultMigrationTest:test_RevertWhenMigrationVaultNotEmpty() (gas: 650952)
|
||||
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsNotAuthorized() (gas: 39367)
|
||||
RewardsStreamerMP_RewardsTest:testTotalRewardsSupply() (gas: 740407)
|
||||
StakeTest:test_StakeMultipleAccounts() (gas: 555080)
|
||||
StakeTest:test_StakeMultipleAccountsAndRewards() (gas: 563572)
|
||||
StakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 942163)
|
||||
StakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 567360)
|
||||
StakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 589494)
|
||||
StakeTest:test_StakeMultipleTimesDoesNotExceedsMaxMP() (gas: 1507716)
|
||||
StakeTest:test_StakeMultipleTimesWithLockIncreaseAtSameBlock() (gas: 574936)
|
||||
StakeTest:test_StakeMultipleTimesWithLockZeroAfterMaxLock() (gas: 1113666)
|
||||
StakeTest:test_StakeOneAccount() (gas: 315747)
|
||||
StakeTest:test_StakeOneAccountAndRewards() (gas: 324302)
|
||||
StakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 616419)
|
||||
StakeTest:test_StakeOneAccountReachingMPLimit() (gas: 503409)
|
||||
StakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 334714)
|
||||
StakeTest:test_StakeOneAccountWithMinLockUp() (gas: 335354)
|
||||
StakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 335399)
|
||||
StakeVaultMigrationTest:testMigrateToVault() (gas: 875821)
|
||||
StakeVaultMigrationTest:test_RevertWhenMigrationVaultNotEmpty() (gas: 628444)
|
||||
StakeVaultMigrationTest:test_RevertWhenNotOwnerOfMigrationVault() (gas: 68087)
|
||||
StakeVaultTest:testOwner() (gas: 15262)
|
||||
StakingTokenTest:testOwner() (gas: 15262)
|
||||
StakingTokenTest:testStakeToken() (gas: 13144)
|
||||
TrustedCodehashAccessTest:test_RevertWhenProxyCloneCodehashNotTrusted() (gas: 2023446)
|
||||
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: 606469)
|
||||
UnstakeTest:test_UnstakeMultipleAccounts() (gas: 846340)
|
||||
UnstakeTest:test_UnstakeMultipleAccountsAndRewards() (gas: 961440)
|
||||
UnstakeTest:test_UnstakeOneAccount() (gas: 577982)
|
||||
UnstakeTest:test_UnstakeOneAccountAndAccruedMP() (gas: 577933)
|
||||
UnstakeTest:test_UnstakeOneAccountAndRewards() (gas: 498234)
|
||||
UnstakeTest:test_UnstakeOneAccountWithLockUpAndAccruedMP() (gas: 594073)
|
||||
UpdateVaultTest:test_UpdateAccount() (gas: 2501398)
|
||||
UpgradeTest:test_RevertWhenNotOwner() (gas: 3589969)
|
||||
UpgradeTest:test_UpgradeStakeManager() (gas: 9561860)
|
||||
TrustedCodehashAccessTest:test_RevertWhenProxyCloneCodehashNotTrusted() (gas: 2023468)
|
||||
UnstakeTest:test_StakeMultipleAccounts() (gas: 555059)
|
||||
UnstakeTest:test_StakeMultipleAccountsAndRewards() (gas: 563616)
|
||||
UnstakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 942207)
|
||||
UnstakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 567426)
|
||||
UnstakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 589493)
|
||||
UnstakeTest:test_StakeMultipleTimesDoesNotExceedsMaxMP() (gas: 1507772)
|
||||
UnstakeTest:test_StakeMultipleTimesWithLockIncreaseAtSameBlock() (gas: 574891)
|
||||
UnstakeTest:test_StakeMultipleTimesWithLockZeroAfterMaxLock() (gas: 1113677)
|
||||
UnstakeTest:test_StakeOneAccount() (gas: 315747)
|
||||
UnstakeTest:test_StakeOneAccountAndRewards() (gas: 324301)
|
||||
UnstakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 616418)
|
||||
UnstakeTest:test_StakeOneAccountReachingMPLimit() (gas: 503389)
|
||||
UnstakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 334736)
|
||||
UnstakeTest:test_StakeOneAccountWithMinLockUp() (gas: 335354)
|
||||
UnstakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 335399)
|
||||
UnstakeTest:test_UnstakeBonusMPAndAccuredMP() (gas: 572145)
|
||||
UnstakeTest:test_UnstakeMultipleAccounts() (gas: 794627)
|
||||
UnstakeTest:test_UnstakeMultipleAccountsAndRewards() (gas: 905041)
|
||||
UnstakeTest:test_UnstakeOneAccount() (gas: 543645)
|
||||
UnstakeTest:test_UnstakeOneAccountAndAccruedMP() (gas: 543156)
|
||||
UnstakeTest:test_UnstakeOneAccountAndRewards() (gas: 467580)
|
||||
UnstakeTest:test_UnstakeOneAccountWithLockUpAndAccruedMP() (gas: 560332)
|
||||
UpdateVaultTest:test_UpdateAccount() (gas: 2391077)
|
||||
UpgradeTest:test_RevertWhenNotOwner() (gas: 3545293)
|
||||
UpgradeTest:test_UpgradeStakeManager() (gas: 9453155)
|
||||
VaultRegistrationTest:test_VaultRegistration() (gas: 63138)
|
||||
WithdrawTest:testOwner() (gas: 15296)
|
||||
WithdrawTest:test_CannotWithdrawStakedFunds() (gas: 370487)
|
||||
WithdrawTest:test_CannotWithdrawStakedFunds() (gas: 347979)
|
||||
@@ -7,7 +7,7 @@ methods {
|
||||
function ERC20A.allowance(address, address) external returns(uint256) envfree;
|
||||
function ERC20A.totalSupply() external returns(uint256) envfree;
|
||||
function totalStaked() external returns (uint256) envfree;
|
||||
function vaultData(address) external returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256) envfree;
|
||||
function vaultData(address) external returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) envfree;
|
||||
function lastMPUpdatedTime() external returns (uint256) envfree;
|
||||
function updateGlobalState() external;
|
||||
function updateVault(address vaultAddress) external;
|
||||
@@ -31,19 +31,19 @@ hook Sstore vaultData[KEY address vault].stakedBalance uint256 newValue (uint256
|
||||
|
||||
function getVaultMaxMP(address vault) returns uint256 {
|
||||
uint256 maxMP;
|
||||
_, _, _, maxMP, _, _, _, _ = streamer.vaultData(vault);
|
||||
_, _, _, maxMP, _, _, _ = streamer.vaultData(vault);
|
||||
return maxMP;
|
||||
}
|
||||
|
||||
function getVaultMPAccrued(address vault) returns uint256 {
|
||||
uint256 vaultMPAccrued;
|
||||
_, _, vaultMPAccrued, _, _, _, _, _ = streamer.vaultData(vault);
|
||||
_, _, vaultMPAccrued, _, _, _, _ = streamer.vaultData(vault);
|
||||
return vaultMPAccrued;
|
||||
}
|
||||
|
||||
function getVaultLockUntil(address vault) returns uint256 {
|
||||
uint256 lockUntil;
|
||||
_, _, _, _, _, lockUntil, _, _ = streamer.vaultData(vault);
|
||||
_, _, _, _, _, lockUntil, _ = streamer.vaultData(vault);
|
||||
return lockUntil;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ using RewardsStreamerMP as streamer;
|
||||
|
||||
function getVaultStakedBalance(address vault) returns uint256 {
|
||||
uint256 stakedBalance;
|
||||
stakedBalance, _, _, _, _, _, _, _ = streamer.vaultData(vault);
|
||||
stakedBalance, _, _, _, _, _, _ = streamer.vaultData(vault);
|
||||
return stakedBalance;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@ contract RewardsStreamerMP is
|
||||
uint256 maxMP;
|
||||
uint256 lastMPUpdateTime;
|
||||
uint256 lockUntil;
|
||||
uint256 mpStaked;
|
||||
uint256 rewardsAccrued;
|
||||
}
|
||||
|
||||
@@ -199,7 +198,6 @@ contract RewardsStreamerMP is
|
||||
}
|
||||
|
||||
vault.mpAccrued += _deltaMpTotal;
|
||||
vault.mpStaked += _deltaMpTotal;
|
||||
totalMPAccrued += _deltaMpTotal;
|
||||
|
||||
vault.maxMP += _deltaMPMax;
|
||||
@@ -232,7 +230,6 @@ contract RewardsStreamerMP is
|
||||
// Update account state
|
||||
vault.lockUntil = newLockEnd;
|
||||
vault.mpAccrued += deltaMp;
|
||||
vault.mpStaked += deltaMp;
|
||||
vault.maxMP += deltaMp;
|
||||
|
||||
// Update global state
|
||||
@@ -279,7 +276,7 @@ contract RewardsStreamerMP is
|
||||
vault.lastMPUpdateTime = 0;
|
||||
}
|
||||
|
||||
emit AccountLeft(msg.sender);
|
||||
emit VaultLeft(msg.sender);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -380,7 +377,6 @@ contract RewardsStreamerMP is
|
||||
// migrate vault data to new vault
|
||||
newVault.stakedBalance = oldVault.stakedBalance;
|
||||
newVault.rewardIndex = oldVault.rewardIndex;
|
||||
newVault.mpStaked = oldVault.mpStaked;
|
||||
newVault.mpAccrued = oldVault.mpAccrued;
|
||||
newVault.maxMP = oldVault.maxMP;
|
||||
newVault.lastMPUpdateTime = oldVault.lastMPUpdateTime;
|
||||
@@ -411,20 +407,21 @@ contract RewardsStreamerMP is
|
||||
|
||||
function _updateVault(address vaultAddress, bool forceMPUpdate) internal {
|
||||
VaultData storage vault = vaultData[vaultAddress];
|
||||
uint256 accruedMP = _vaultPendingMP(vault);
|
||||
if (accruedMP > 0 || forceMPUpdate) {
|
||||
vault.mpAccrued += accruedMP;
|
||||
vault.lastMPUpdateTime = block.timestamp;
|
||||
}
|
||||
|
||||
// first accrue pending rewards for the work done so far
|
||||
uint256 rewardsAccrued = _vaultPendingRewards(vault);
|
||||
vault.rewardsAccrued += rewardsAccrued;
|
||||
vault.rewardIndex = lastRewardIndex;
|
||||
|
||||
uint256 mpToStake = vault.mpAccrued - vault.mpStaked;
|
||||
vault.mpStaked += mpToStake;
|
||||
totalMPStaked += mpToStake;
|
||||
emit Compound(vaultAddress, mpToStake);
|
||||
// then accrue pending MPs
|
||||
uint256 accruedMP = _vaultPendingMP(vault);
|
||||
if (accruedMP > 0 || forceMPUpdate) {
|
||||
vault.mpAccrued += accruedMP;
|
||||
vault.lastMPUpdateTime = block.timestamp;
|
||||
totalMPStaked += accruedMP;
|
||||
}
|
||||
|
||||
emit VaultUpdated(vaultAddress, rewardsAccrued, accruedMP);
|
||||
}
|
||||
|
||||
function _updateRewardIndex() internal {
|
||||
@@ -452,13 +449,7 @@ contract RewardsStreamerMP is
|
||||
vault.rewardIndex = lastRewardIndex;
|
||||
vault.mpAccrued -= _deltaMpTotal;
|
||||
|
||||
// A vault's "staked" MP will be reduced if the accrued MP is less than the staked MP.
|
||||
// This is because the accrued MP represents the vault's total MP
|
||||
if (vault.mpAccrued < vault.mpStaked) {
|
||||
totalMPStaked -= vault.mpStaked - vault.mpAccrued;
|
||||
vault.mpStaked = vault.mpAccrued;
|
||||
}
|
||||
|
||||
totalMPStaked -= _deltaMpTotal;
|
||||
totalMPAccrued -= _deltaMpTotal;
|
||||
totalMaxMP -= _deltaMpMax;
|
||||
totalStaked -= amount;
|
||||
@@ -474,7 +465,7 @@ contract RewardsStreamerMP is
|
||||
|
||||
function _vaultShares(address vaultAddress) internal view returns (uint256) {
|
||||
VaultData storage vault = vaultData[vaultAddress];
|
||||
return vault.stakedBalance + vault.mpStaked;
|
||||
return vault.stakedBalance + vault.mpAccrued;
|
||||
}
|
||||
|
||||
function _totalMP() internal view returns (uint256) {
|
||||
@@ -572,7 +563,7 @@ contract RewardsStreamerMP is
|
||||
uint256 newRewardIndex;
|
||||
(, newRewardIndex) = _rewardIndex();
|
||||
|
||||
uint256 accountShares = vault.stakedBalance + vault.mpStaked;
|
||||
uint256 accountShares = vault.stakedBalance + vault.mpAccrued;
|
||||
uint256 deltaRewardIndex = newRewardIndex - vault.rewardIndex;
|
||||
|
||||
return (accountShares * deltaRewardIndex) / SCALE_FACTOR;
|
||||
@@ -666,12 +657,11 @@ contract RewardsStreamerMP is
|
||||
}
|
||||
|
||||
/**
|
||||
* @notice Returns staked multiplier points of a vault.
|
||||
* @return Staked multiplier points of the vault.
|
||||
* @notice Returns the accrued multiplier points of a vault.
|
||||
* @return Accrued multiplier points of the vault.
|
||||
*/
|
||||
function mpStakedOf(address vaultAddress) external view returns (uint256) {
|
||||
VaultData storage vault = vaultData[vaultAddress];
|
||||
return vault.mpStaked;
|
||||
function mpAccruedOf(address vaultAddress) external view returns (uint256) {
|
||||
return vaultData[vaultAddress].mpAccrued;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -47,9 +47,9 @@ interface IStakeManager is ITrustedCodehashAccess, IStakeConstants {
|
||||
/// @notice Emitted when emergency mode is enabled.
|
||||
event EmergencyModeEnabled();
|
||||
/// @notice Emitted when an account leaves the system
|
||||
event AccountLeft(address indexed vault);
|
||||
/// @notice Emited when accounts compound their MP
|
||||
event Compound(address indexed vault, uint256 amount);
|
||||
event VaultLeft(address indexed vault);
|
||||
/// @notice Emited when accounts update their vaults
|
||||
event VaultUpdated(address indexed vault, uint256 rewardsAccrued, uint256 mpAccrued);
|
||||
|
||||
function registerVault() external;
|
||||
function stake(uint256 _amount, uint256 _seconds) external;
|
||||
|
||||
@@ -102,7 +102,6 @@ contract RewardsStreamerMPTest is StakeMath, Test {
|
||||
uint256 stakedBalance;
|
||||
uint256 vaultBalance;
|
||||
uint256 rewardIndex;
|
||||
uint256 mpStaked;
|
||||
uint256 mpAccrued;
|
||||
uint256 maxMP;
|
||||
uint256 rewardsAccrued;
|
||||
@@ -113,7 +112,6 @@ contract RewardsStreamerMPTest is StakeMath, Test {
|
||||
|
||||
assertEq(vaultData.stakedBalance, p.stakedBalance, "wrong account staked balance");
|
||||
assertEq(stakingToken.balanceOf(p.account), p.vaultBalance, "wrong vault balance");
|
||||
assertEq(vaultData.mpStaked, p.mpStaked, "wrong account MP staked");
|
||||
assertEq(vaultData.mpAccrued, p.mpAccrued, "wrong account MP accrued");
|
||||
assertEq(vaultData.maxMP, p.maxMP, "wrong account max MP");
|
||||
assertEq(vaultData.rewardsAccrued, p.rewardsAccrued, "wrong account rewards accrued");
|
||||
@@ -131,7 +129,6 @@ contract RewardsStreamerMPTest is StakeMath, Test {
|
||||
stakingToken.balanceOf(p.account), p.vaultBalance, string(abi.encodePacked(text, "wrong vault balance"))
|
||||
);
|
||||
// assertEq(vaultData.accountRewardIndex, p.rewardIndex, "wrong account reward index");
|
||||
assertEq(vaultData.mpStaked, p.mpStaked, string(abi.encodePacked(text, "wrong account MP staked")));
|
||||
assertEq(vaultData.mpAccrued, p.mpAccrued, string(abi.encodePacked(text, "wrong account MP accrued")));
|
||||
assertEq(vaultData.maxMP, p.maxMP, string(abi.encodePacked(text, "wrong account max MP")));
|
||||
assertEq(
|
||||
@@ -332,7 +329,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 10e18,
|
||||
vaultBalance: 10e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 10e18,
|
||||
mpAccrued: 10e18,
|
||||
maxMP: 50e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -361,7 +357,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 10e18,
|
||||
vaultBalance: 10e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 10e18,
|
||||
mpAccrued: 10e18,
|
||||
maxMP: 50e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -375,7 +370,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 30e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -405,7 +399,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 10e18,
|
||||
vaultBalance: 10e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 10e18,
|
||||
mpAccrued: 10e18,
|
||||
maxMP: 50e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -419,7 +412,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 30e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -467,7 +459,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 0e18,
|
||||
vaultBalance: 0e18,
|
||||
rewardIndex: 10e18,
|
||||
mpStaked: 0e18,
|
||||
mpAccrued: 0e18,
|
||||
maxMP: 0e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -481,7 +472,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 30e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -510,7 +500,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 0e18,
|
||||
vaultBalance: 0e18,
|
||||
rewardIndex: 10e18,
|
||||
mpStaked: 0e18,
|
||||
mpAccrued: 0e18,
|
||||
maxMP: 0e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -524,7 +513,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 30e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -538,7 +526,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 30e18,
|
||||
rewardIndex: 10e18,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -568,7 +555,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 0e18,
|
||||
vaultBalance: 0e18,
|
||||
rewardIndex: 10e18,
|
||||
mpStaked: 0e18,
|
||||
mpAccrued: 0e18,
|
||||
maxMP: 0e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -582,7 +568,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 30e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -596,7 +581,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 30e18,
|
||||
rewardIndex: 10e18,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -626,7 +610,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 0e18,
|
||||
vaultBalance: 0e18,
|
||||
rewardIndex: 10e18,
|
||||
mpStaked: 0,
|
||||
mpAccrued: 0,
|
||||
maxMP: 0,
|
||||
rewardsAccrued: 0
|
||||
@@ -647,7 +630,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 0e18,
|
||||
vaultBalance: 0e18,
|
||||
rewardIndex: 17_407_407_407_407_407_407,
|
||||
mpStaked: 0,
|
||||
mpAccrued: 0,
|
||||
maxMP: 0,
|
||||
rewardsAccrued: 0
|
||||
@@ -661,7 +643,6 @@ contract IntegrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 30e18,
|
||||
rewardIndex: 10e18,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -697,7 +678,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 10e18,
|
||||
vaultBalance: 10e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 10e18,
|
||||
mpAccrued: 10e18,
|
||||
maxMP: 50e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -727,7 +707,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 10e18,
|
||||
vaultBalance: 10e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 10e18,
|
||||
mpAccrued: 10e18,
|
||||
maxMP: 50e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -859,7 +838,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: totalMPAccrued,
|
||||
mpAccrued: totalMPAccrued, // accountMP == totalMPAccrued because only one account is staking
|
||||
maxMP: totalMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -894,7 +872,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: totalMPAccrued,
|
||||
mpAccrued: totalMPAccrued, // accountMP == totalMPAccrued because only one account is staking
|
||||
maxMP: totalMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -928,7 +905,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: totalMPAccrued,
|
||||
mpAccrued: totalMPAccrued, // accountMP == totalMPAccrued because only one account is staking
|
||||
maxMP: totalMaxMP, // maxMP == totalMaxMP because only one account is staking
|
||||
rewardsAccrued: 0
|
||||
@@ -960,7 +936,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: totalMaxMP,
|
||||
mpAccrued: totalMaxMP,
|
||||
maxMP: totalMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1104,7 +1079,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 10e18,
|
||||
vaultBalance: 10e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 10e18,
|
||||
mpAccrued: 10e18,
|
||||
maxMP: 50e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -1118,7 +1092,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 30e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -1152,7 +1125,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 10e18,
|
||||
vaultBalance: 10e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 10e18,
|
||||
mpAccrued: 10e18,
|
||||
maxMP: 50e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -1166,7 +1138,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 30e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -1295,7 +1266,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: params.aliceStakeAmount,
|
||||
vaultBalance: params.aliceStakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: aliceMP,
|
||||
mpAccrued: aliceMP,
|
||||
maxMP: aliceMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1308,7 +1278,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: params.bobStakeAmount,
|
||||
vaultBalance: params.bobStakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: bobMP,
|
||||
mpAccrued: bobMP,
|
||||
maxMP: bobMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1348,7 +1317,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: params.aliceStakeAmount,
|
||||
vaultBalance: params.aliceStakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: aliceMP + aliceExpectedMPIncrease,
|
||||
mpAccrued: aliceMP + aliceExpectedMPIncrease,
|
||||
maxMP: aliceMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1361,7 +1329,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: params.bobStakeAmount,
|
||||
vaultBalance: params.bobStakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: bobMPAccrued,
|
||||
mpAccrued: bobMPAccrued,
|
||||
maxMP: bobMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1401,7 +1368,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: params.aliceStakeAmount,
|
||||
vaultBalance: params.aliceStakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: aliceMPAccrued,
|
||||
mpAccrued: aliceMPAccrued,
|
||||
maxMP: aliceMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1414,7 +1380,6 @@ contract StakeTest is RewardsStreamerMPTest {
|
||||
stakedBalance: params.bobStakeAmount,
|
||||
vaultBalance: params.bobStakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: bobMPAccrued,
|
||||
mpAccrued: bobMPAccrued,
|
||||
maxMP: bobMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1452,7 +1417,6 @@ contract UnstakeTest is StakeTest {
|
||||
stakedBalance: 2e18,
|
||||
vaultBalance: 2e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 2e18,
|
||||
mpAccrued: 2e18,
|
||||
maxMP: 10e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -1582,7 +1546,6 @@ contract UnstakeTest is StakeTest {
|
||||
stakedBalance: 2e18,
|
||||
vaultBalance: 2e18,
|
||||
rewardIndex: 50e18, // alice reward index has been updated
|
||||
mpStaked: 2e18,
|
||||
mpAccrued: 2e18,
|
||||
maxMP: 10e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -1712,7 +1675,6 @@ contract UnstakeTest is StakeTest {
|
||||
stakedBalance: 0,
|
||||
vaultBalance: 0,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 0,
|
||||
mpAccrued: 0,
|
||||
maxMP: 0,
|
||||
rewardsAccrued: 0
|
||||
@@ -1726,7 +1688,6 @@ contract UnstakeTest is StakeTest {
|
||||
stakedBalance: 20e18,
|
||||
vaultBalance: 20e18,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 20e18,
|
||||
mpAccrued: 20e18,
|
||||
maxMP: 100e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -1759,7 +1720,6 @@ contract UnstakeTest is StakeTest {
|
||||
stakedBalance: 0,
|
||||
vaultBalance: 0,
|
||||
rewardIndex: 125e17,
|
||||
mpStaked: 0,
|
||||
mpAccrued: 0,
|
||||
maxMP: 0,
|
||||
rewardsAccrued: 0
|
||||
@@ -1787,7 +1747,6 @@ contract UnstakeTest is StakeTest {
|
||||
stakedBalance: 20e18,
|
||||
vaultBalance: 20e18,
|
||||
rewardIndex: 125e17,
|
||||
mpStaked: 20e18,
|
||||
mpAccrued: 20e18,
|
||||
maxMP: 100e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -1815,7 +1774,6 @@ contract UnstakeTest is StakeTest {
|
||||
stakedBalance: 0,
|
||||
vaultBalance: 0,
|
||||
rewardIndex: 125e17,
|
||||
mpStaked: 0,
|
||||
mpAccrued: 0,
|
||||
maxMP: 0,
|
||||
rewardsAccrued: 0
|
||||
@@ -1845,7 +1803,6 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP,
|
||||
mpAccrued: initialAccountMP,
|
||||
maxMP: initialMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1866,7 +1823,6 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP + expectedBonusMP,
|
||||
mpAccrued: initialAccountMP + expectedBonusMP,
|
||||
maxMP: initialMaxMP + expectedBonusMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1885,7 +1841,6 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP + expectedBonusMP,
|
||||
mpAccrued: initialAccountMP + expectedBonusMP,
|
||||
maxMP: initialMaxMP + expectedBonusMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1909,7 +1864,6 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP,
|
||||
mpAccrued: initialAccountMP,
|
||||
maxMP: initialMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1930,7 +1884,6 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP + expectedBonusMP,
|
||||
mpAccrued: initialAccountMP + expectedBonusMP,
|
||||
maxMP: initialMaxMP + expectedBonusMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1955,7 +1908,6 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP,
|
||||
mpAccrued: initialAccountMP,
|
||||
maxMP: initialMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1976,7 +1928,6 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP + expectedBonusMP,
|
||||
mpAccrued: initialAccountMP + expectedBonusMP,
|
||||
maxMP: initialMaxMP + expectedBonusMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -1997,7 +1948,6 @@ contract LockTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP + expectedBonusMP + (initialAccountMP * 4),
|
||||
mpAccrued: initialAccountMP + expectedBonusMP + (initialAccountMP * 4),
|
||||
maxMP: initialMaxMP + expectedBonusMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -2093,7 +2043,6 @@ contract EmergencyExitTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 10e18,
|
||||
vaultBalance: 0,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 10e18,
|
||||
mpAccrued: 10e18,
|
||||
maxMP: 50e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -2196,7 +2145,6 @@ contract EmergencyExitTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 10e18,
|
||||
vaultBalance: 0,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 10e18,
|
||||
mpAccrued: 10e18,
|
||||
maxMP: 50e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -2210,7 +2158,6 @@ contract EmergencyExitTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 30e18,
|
||||
vaultBalance: 0,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 30e18,
|
||||
mpAccrued: 30e18,
|
||||
maxMP: 150e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -2245,7 +2192,6 @@ contract EmergencyExitTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 10e18,
|
||||
vaultBalance: 0,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 10e18,
|
||||
mpAccrued: 10e18,
|
||||
maxMP: 50e18,
|
||||
rewardsAccrued: 0
|
||||
@@ -2363,7 +2309,6 @@ contract LeaveTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 0,
|
||||
vaultBalance: 0,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 0,
|
||||
mpAccrued: 0,
|
||||
maxMP: 0,
|
||||
rewardsAccrued: 0
|
||||
@@ -2534,12 +2479,11 @@ contract RewardsStreamerMP_RewardsTest is RewardsStreamerMPTest {
|
||||
assertEq(streamer.totalRewardsSupply(), 0);
|
||||
assertEq(streamer.totalMP(), 100e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[alice]), 100e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[alice]), 100e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[alice]), 100e18);
|
||||
assertEq(streamer.vaultShares(vaults[alice]), 200e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[alice]), 0);
|
||||
assertEq(streamer.mpBalanceOf(vaults[bob]), 0);
|
||||
assertEq(streamer.mpStakedOf(vaults[bob]), 0);
|
||||
assertEq(streamer.mpStakedOf(vaults[bob]), 0);
|
||||
assertEq(streamer.mpAccruedOf(vaults[bob]), 0);
|
||||
assertEq(streamer.vaultShares(vaults[bob]), 0);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[bob]), 0);
|
||||
|
||||
@@ -2553,11 +2497,11 @@ contract RewardsStreamerMP_RewardsTest is RewardsStreamerMPTest {
|
||||
// totalMP: 200 + 50 accrued by Alice (not stake yet)
|
||||
assertEq(streamer.totalMP(), 250e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[alice]), 150e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[alice]), 100e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[alice]), 100e18);
|
||||
assertEq(streamer.vaultShares(vaults[alice]), 200e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[alice]), 500e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.vaultShares(vaults[bob]), 200e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[bob]), 0);
|
||||
|
||||
@@ -2569,11 +2513,11 @@ contract RewardsStreamerMP_RewardsTest is RewardsStreamerMPTest {
|
||||
assertEq(streamer.totalRewardsSupply(), 1000e18);
|
||||
assertEq(streamer.totalMP(), 350e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[alice]), 200e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[alice]), 100e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[alice]), 100e18);
|
||||
assertEq(streamer.vaultShares(vaults[alice]), 200e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[alice]), 750e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[bob]), 150e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.vaultShares(vaults[bob]), 200e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[bob]), 250e18);
|
||||
|
||||
@@ -2585,11 +2529,11 @@ contract RewardsStreamerMP_RewardsTest is RewardsStreamerMPTest {
|
||||
assertEq(streamer.totalRewardsSupply(), 1000e18);
|
||||
assertEq(streamer.totalMP(), 550e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[alice]), 300e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[alice]), 100e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[alice]), 100e18);
|
||||
assertEq(streamer.vaultShares(vaults[alice]), 200e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[alice]), 750e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[bob]), 250e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.vaultShares(vaults[bob]), 200e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[bob]), 250e18);
|
||||
|
||||
@@ -2601,11 +2545,11 @@ contract RewardsStreamerMP_RewardsTest is RewardsStreamerMPTest {
|
||||
assertEq(streamer.totalRewardsSupply(), 1000e18);
|
||||
assertEq(streamer.totalMP(), 550e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[alice]), 300e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[alice]), 300e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[alice]), 300e18);
|
||||
assertEq(streamer.vaultShares(vaults[alice]), 400e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[alice]), 750e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[bob]), 250e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.vaultShares(vaults[bob]), 200e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[bob]), 250e18);
|
||||
|
||||
@@ -2619,11 +2563,11 @@ contract RewardsStreamerMP_RewardsTest is RewardsStreamerMPTest {
|
||||
assertEq(streamer.totalRewardsSupply(), 1600e18);
|
||||
assertEq(streamer.totalMP(), 750e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[alice]), 400e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[alice]), 300e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[alice]), 300e18);
|
||||
assertEq(streamer.vaultShares(vaults[alice]), 400e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[alice]), 1150e18);
|
||||
assertEq(streamer.mpBalanceOf(vaults[bob]), 350e18);
|
||||
assertEq(streamer.mpStakedOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.mpAccruedOf(vaults[bob]), 100e18);
|
||||
assertEq(streamer.vaultShares(vaults[bob]), 200e18);
|
||||
assertEq(streamer.rewardsBalanceOf(vaults[bob]), 450e18);
|
||||
}
|
||||
@@ -2725,7 +2669,6 @@ contract StakeVaultMigrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP,
|
||||
mpAccrued: initialAccountMP,
|
||||
maxMP: initialMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -2758,7 +2701,6 @@ contract StakeVaultMigrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP * 2,
|
||||
mpAccrued: initialAccountMP * 2, // alice now has twice the amount after a year
|
||||
maxMP: initialMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -2806,7 +2748,6 @@ contract StakeVaultMigrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: stakeAmount,
|
||||
rewardIndex: 0,
|
||||
mpStaked: initialAccountMP * 2,
|
||||
mpAccrued: initialAccountMP * 2, // alice now has twice the amount after a year
|
||||
maxMP: initialMaxMP,
|
||||
rewardsAccrued: 0
|
||||
@@ -2821,7 +2762,6 @@ contract StakeVaultMigrationTest is RewardsStreamerMPTest {
|
||||
stakedBalance: 0,
|
||||
vaultBalance: 0,
|
||||
rewardIndex: 0,
|
||||
mpStaked: 0,
|
||||
mpAccrued: 0,
|
||||
maxMP: 0,
|
||||
rewardsAccrued: 0
|
||||
@@ -2868,10 +2808,10 @@ contract UpdateVaultTest is RewardsStreamerMPTest {
|
||||
vm.warp(vm.getBlockTimestamp() + rewardPeriod);
|
||||
|
||||
// ensure staked MP haven't changed for alice (yet!)
|
||||
assertEq(streamer.mpStakedOf(vaults[alice]), stakeAmount);
|
||||
assertEq(streamer.mpStakedOf(vault2), stakeAmount);
|
||||
assertEq(streamer.mpStakedOf(vault3), stakeAmount);
|
||||
assertEq(streamer.mpStakedOf(vault4), stakeAmount);
|
||||
assertEq(streamer.mpAccruedOf(vaults[alice]), stakeAmount);
|
||||
assertEq(streamer.mpAccruedOf(vault2), stakeAmount);
|
||||
assertEq(streamer.mpAccruedOf(vault3), stakeAmount);
|
||||
assertEq(streamer.mpAccruedOf(vault4), stakeAmount);
|
||||
|
||||
// compound alice's MP
|
||||
streamer.updateAccount(alice);
|
||||
@@ -2879,10 +2819,10 @@ contract UpdateVaultTest is RewardsStreamerMPTest {
|
||||
uint256 expectedMPIncreasePerVault = _accrueMP(stakeAmount, rewardPeriod);
|
||||
|
||||
// ensure alice's staked MP have been compounded
|
||||
assertEq(streamer.mpStakedOf(vaults[alice]), stakeAmount + expectedMPIncreasePerVault);
|
||||
assertEq(streamer.mpStakedOf(vault2), stakeAmount + expectedMPIncreasePerVault);
|
||||
assertEq(streamer.mpStakedOf(vault3), stakeAmount + expectedMPIncreasePerVault);
|
||||
assertEq(streamer.mpStakedOf(vault4), stakeAmount + expectedMPIncreasePerVault);
|
||||
assertEq(streamer.mpAccruedOf(vaults[alice]), stakeAmount + expectedMPIncreasePerVault);
|
||||
assertEq(streamer.mpAccruedOf(vault2), stakeAmount + expectedMPIncreasePerVault);
|
||||
assertEq(streamer.mpAccruedOf(vault3), stakeAmount + expectedMPIncreasePerVault);
|
||||
assertEq(streamer.mpAccruedOf(vault4), stakeAmount + expectedMPIncreasePerVault);
|
||||
|
||||
uint256 tolerance = 1000;
|
||||
assertApproxEqAbs(streamer.rewardsBalanceOfAccount(alice), rewards, tolerance, "Reward balance mismatch");
|
||||
@@ -2942,7 +2882,6 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
stakingToken.balanceOf(p.account), p.vaultBalance, string(abi.encodePacked(text, "wrong vault balance"))
|
||||
);
|
||||
// assertEq(vaultData.accountRewardIndex, p.rewardIndex, "wrong account reward index");
|
||||
assertEq(vaultData.mpStaked, p.mpStaked, string(abi.encodePacked(text, "wrong account MP staked")));
|
||||
assertEq(vaultData.mpAccrued, p.mpAccrued, string(abi.encodePacked(text, "wrong account MP accrued")));
|
||||
assertEq(vaultData.maxMP, p.maxMP, string(abi.encodePacked(text, "wrong account max MP")));
|
||||
assertEq(
|
||||
@@ -3005,18 +2944,6 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
expectedRevert = FuzzTests__UndefinedError.selector;
|
||||
}
|
||||
|
||||
function _expectUpdateVault(address account) internal {
|
||||
CheckVaultParams storage expectedAccountParams = expectedAccountState[account];
|
||||
uint256 mpCompounded = expectedAccountParams.mpAccrued - expectedAccountParams.mpStaked;
|
||||
if (mpCompounded == 0) {
|
||||
expectedRevert = IStakeManager.StakingManager__InsufficientBalance.selector;
|
||||
} else {
|
||||
expectedRevert = NO_REVERT;
|
||||
}
|
||||
expectedAccountParams.mpStaked += mpCompounded;
|
||||
expectedSystemState.totalMPStaked += mpCompounded;
|
||||
}
|
||||
|
||||
function _expectUnstake(address account, uint256 amount) internal {
|
||||
if (amount == 0) {
|
||||
expectedRevert = StakeMath.StakeMath__InvalidAmount.selector;
|
||||
@@ -3042,7 +2969,6 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
expectedAccountParams.vaultBalance -= amount;
|
||||
expectedSystemState.stakingBalance -= amount;
|
||||
expectedSystemState.totalStaked -= amount;
|
||||
expectedAccountParams.mpStaked -= expectedReducedMP;
|
||||
expectedSystemState.totalMPStaked -= expectedReducedMP;
|
||||
expectedAccountParams.mpAccrued -= expectedReducedMP;
|
||||
expectedSystemState.totalMPAccrued -= expectedReducedMP;
|
||||
@@ -3056,6 +2982,9 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
uint256 rawAccruedMP = _accrueMP(expectedAccountParams.vaultBalance, accruedTime);
|
||||
expectedAccountParams.mpAccrued =
|
||||
Math.min(expectedAccountParams.mpAccrued + rawAccruedMP, expectedAccountParams.maxMP);
|
||||
expectedSystemState.totalMPStaked =
|
||||
Math.min(expectedSystemState.totalMPStaked + rawAccruedMP, expectedSystemState.totalMaxMP);
|
||||
|
||||
expectedSystemState.totalMPAccrued =
|
||||
Math.min(expectedSystemState.totalMPAccrued + rawAccruedMP, expectedSystemState.totalMaxMP);
|
||||
}
|
||||
@@ -3093,7 +3022,6 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
expectedAccountParams.vaultBalance = stakeAmount;
|
||||
expectedSystemState.stakingBalance += stakeAmount;
|
||||
expectedSystemState.totalStaked += stakeAmount;
|
||||
expectedAccountParams.mpStaked = stakeAmount + expectedBonusMP;
|
||||
expectedSystemState.totalMPStaked += stakeAmount + expectedBonusMP;
|
||||
expectedAccountParams.mpAccrued = stakeAmount + expectedBonusMP;
|
||||
expectedSystemState.totalMPAccrued += stakeAmount + expectedBonusMP;
|
||||
@@ -3142,7 +3070,6 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
expectedSystemState.totalMPStaked += additionalBonusMP;
|
||||
expectedSystemState.totalMPAccrued += additionalBonusMP;
|
||||
expectedSystemState.totalMaxMP += additionalBonusMP;
|
||||
expectedAccountParams.mpStaked += additionalBonusMP;
|
||||
expectedAccountParams.mpAccrued += additionalBonusMP;
|
||||
expectedAccountParams.maxMP += additionalBonusMP;
|
||||
}
|
||||
@@ -3187,7 +3114,6 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
check("Stake: ", alice);
|
||||
|
||||
_expectAccrue(alice, accruedTime);
|
||||
_expectUpdateVault(alice);
|
||||
_accrue(alice, accruedTime);
|
||||
check("Accrue: ", alice);
|
||||
}
|
||||
@@ -3199,7 +3125,6 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
check("Stake: ", alice);
|
||||
|
||||
_expectAccrue(alice, accruedTime);
|
||||
_expectUpdateVault(alice);
|
||||
_accrue(alice, accruedTime);
|
||||
check("Accrue: ", alice);
|
||||
}
|
||||
@@ -3223,7 +3148,6 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
check("Stake: ", alice);
|
||||
|
||||
_expectAccrue(alice, accruedTime);
|
||||
_expectUpdateVault(alice);
|
||||
_accrue(alice, accruedTime);
|
||||
check("Accrue: ", alice);
|
||||
|
||||
@@ -3248,12 +3172,10 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
|
||||
if (accruedTime > 0) {
|
||||
_expectAccrue(alice, accruedTime);
|
||||
_expectUpdateVault(alice);
|
||||
_accrue(alice, accruedTime);
|
||||
check("Accrue: ", alice);
|
||||
}
|
||||
|
||||
_expectUpdateVault(alice);
|
||||
_expectUnstake(alice, unstakeAmount);
|
||||
_unstake(alice, unstakeAmount, expectedRevert);
|
||||
check("Unstake: ", alice);
|
||||
@@ -3330,7 +3252,6 @@ contract FuzzTests is RewardsStreamerMPTest {
|
||||
stakedBalance: stakeAmount,
|
||||
vaultBalance: 0,
|
||||
rewardIndex: 0,
|
||||
mpStaked: stakeAmount + expectedBonusMP,
|
||||
mpAccrued: stakeAmount + expectedBonusMP,
|
||||
maxMP: expectedMaxTotalMP,
|
||||
rewardsAccrued: 0
|
||||
|
||||
Reference in New Issue
Block a user