test(RewardsStreamerMP): ensure lock() reverts when vault is empty

Closes #126
This commit is contained in:
r4bbit
2025-02-19 16:10:34 +01:00
parent 6b31d3944f
commit 59226ef107
4 changed files with 24 additions and 18 deletions

View File

@@ -10,7 +10,7 @@
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| run | 6280687 | 6280687 | 6280687 | 6280687 | 67 |
| run | 6280687 | 6280687 | 6280687 | 6280687 | 68 |
╰-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
╭---------------------------------------------------------+-----------------+-----+--------+-----+---------╮
@@ -24,7 +24,7 @@
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
| activeNetworkConfig | 454 | 454 | 454 | 454 | 134 |
| activeNetworkConfig | 454 | 454 | 454 | 454 | 136 |
╰---------------------------------------------------------+-----------------+-----+--------+-----+---------╯
╭-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╮
@@ -72,13 +72,13 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getVault | 1790 | 1790 | 1790 | 1790 | 72 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| initialize | 115589 | 115589 | 115589 | 115589 | 67 |
| initialize | 115589 | 115589 | 115589 | 115589 | 68 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| lastRewardTime | 384 | 1384 | 1384 | 2384 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 86840 | 86840 | 86840 | 86840 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| lock | 14216 | 43945 | 43883 | 87862 | 259 |
| lock | 14216 | 43994 | 43883 | 87862 | 260 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| mpBalanceOf | 956 | 2600 | 2358 | 7102 | 8 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -88,7 +88,7 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| proxiableUUID | 342 | 342 | 342 | 342 | 3 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| registerVault | 2562 | 73001 | 73461 | 73461 | 266 |
| registerVault | 2562 | 73008 | 73461 | 73461 | 270 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| rewardEndTime | 429 | 1429 | 1429 | 2429 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -98,7 +98,7 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| setReward | 2561 | 59017 | 87006 | 106966 | 7 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| setTrustedCodehash | 24199 | 24199 | 24199 | 24199 | 67 |
| setTrustedCodehash | 24199 | 24199 | 24199 | 24199 | 68 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| stake | 2681 | 221712 | 224654 | 245139 | 324 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -144,19 +144,19 @@
|----------------------------------------+-----------------+--------+--------+--------+---------|
| emergencyExit | 14996 | 31614 | 31534 | 48634 | 7 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| initialize | 98005 | 98005 | 98005 | 98005 | 266 |
| initialize | 98005 | 98005 | 98005 | 98005 | 270 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 12145 | 124280 | 65532 | 353913 | 4 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| lock | 12075 | 59190 | 59310 | 103288 | 260 |
| lock | 12075 | 59240 | 59310 | 103288 | 261 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| owner | 377 | 377 | 377 | 377 | 265 |
| owner | 377 | 377 | 377 | 377 | 269 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| register | 12654 | 76615 | 77050 | 77050 | 266 |
| register | 12654 | 76621 | 77050 | 77050 | 270 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| stake | 12077 | 276751 | 280635 | 301120 | 325 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| stakeManager | 367 | 367 | 367 | 367 | 265 |
| stakeManager | 367 | 367 | 367 | 367 | 269 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| trustStakeManager | 7577 | 7577 | 7577 | 7577 | 1 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
@@ -178,7 +178,7 @@
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| fallback | 735 | 7244 | 812 | 133348 | 504 |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| implementation | 343 | 2340 | 2343 | 2343 | 870 |
| implementation | 343 | 2340 | 2343 | 2343 | 875 |
╰----------------------------------------------------+-----------------+------+--------+--------+---------╯
╭--------------------------------------------+-----------------+--------+--------+--------+---------╮
@@ -192,7 +192,7 @@
|--------------------------------------------+-----------------+--------+--------+--------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|--------------------------------------------+-----------------+--------+--------+--------+---------|
| createVault | 229785 | 246691 | 246885 | 246885 | 265 |
| createVault | 229785 | 246694 | 246885 | 246885 | 269 |
╰--------------------------------------------+-----------------+--------+--------+--------+---------╯
╭-------------------------------------------------+-----------------+-------+--------+-------+---------╮
@@ -332,11 +332,11 @@
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| approve | 46342 | 46342 | 46342 | 46342 | 265 |
| approve | 46342 | 46342 | 46342 | 46342 | 269 |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| balanceOf | 558 | 926 | 558 | 2558 | 103 |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| mint | 51279 | 56383 | 51279 | 68379 | 278 |
| mint | 51279 | 56371 | 51279 | 68379 | 282 |
╰---------------------------------------------+-----------------+-------+--------+-------+---------╯
╭-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╮

View File

@@ -10,10 +10,11 @@ IntegrationTest:testStakeFoo() (gas: 1334253)
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 6428998)
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 347066)
LeaveTest:test_TrustNewStakeManager() (gas: 6492626)
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1000, μ: 395384, ~: 395404)
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1000, μ: 395430, ~: 395448)
LockTest:test_LockFailsWithNoStake() (gas: 106781)
LockTest:test_LockFailsWithZero() (gas: 364368)
LockTest:test_LockWithoutPriorLock() (gas: 452644)
LockTest:test_LockWithoutPriorLock() (gas: 452709)
LockTest:test_RevertWhenVaultToLockIsEmpty() (gas: 106760)
MaliciousUpgradeTest:test_UpgradeStackOverflowStakeManager() (gas: 1801341)
MathTest:test_CalcAbsoluteMaxTotalMP() (gas: 4996)
MathTest:test_CalcAccrueMP() (gas: 8013)

View File

@@ -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) envfree;
function vaultData(address) external returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) envfree;
function lastMPUpdatedTime() external returns (uint256) envfree;
function updateGlobalState() external;
function updateVaultMP(address vaultAddress) external;

View File

@@ -1630,6 +1630,11 @@ contract LockTest is RewardsStreamerMPTest {
vm.expectRevert(StakeMath.StakeMath__InvalidLockingPeriod.selector);
_lock(alice, _lockPeriod);
}
function test_RevertWhenVaultToLockIsEmpty() public {
vm.expectRevert(StakeMath.StakeMath__InsufficientBalance.selector);
_lock(alice, YEAR);
}
}
contract EmergencyExitTest is RewardsStreamerMPTest {