refactor(IStakeManager): introduce events

A bunch of state changing functions were not emitting any events.
This commit adds them.
This commit is contained in:
r4bbit
2025-02-20 12:04:41 +01:00
parent 4086dda6e2
commit 3455068e3c
4 changed files with 89 additions and 74 deletions

View File

@@ -4,13 +4,13 @@
+=======================================================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| 7491638 | 35719 | | | | |
| 7556342 | 36018 | | | | |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| | | | | | |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| run | 6564574 | 6564574 | 6564574 | 6564574 | 71 |
| run | 6624542 | 6624542 | 6624542 | 6624542 | 71 |
╰-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
╭---------------------------------------------------------+-----------------+-----+--------+-----+---------╮
@@ -32,13 +32,13 @@
+=========================================================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| 3397020 | 16641 | | | | |
| 3461701 | 16940 | | | | |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| | | | | | |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| run | 2897226 | 2897226 | 2897226 | 2897226 | 3 |
| run | 2957193 | 2957193 | 2957193 | 2957193 | 3 |
╰-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
╭------------------------------------------------------+-----------------+--------+--------+--------+---------╮
@@ -46,7 +46,7 @@
+=============================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| 3077078 | 14202 | | | | |
| 3141752 | 14501 | | | | |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| | | | | | |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -60,7 +60,7 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| emergencyModeEnabled | 2420 | 2420 | 2420 | 2420 | 7 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| enableEmergencyMode | 2529 | 19436 | 24721 | 24721 | 8 |
| enableEmergencyMode | 2529 | 20011 | 25488 | 25488 | 8 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getAccountTotalMaxMP | 3155 | 3155 | 3155 | 3155 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -76,9 +76,9 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| lastRewardTime | 362 | 1362 | 1362 | 2362 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 86840 | 86840 | 86840 | 86840 | 1 |
| leave | 87987 | 87987 | 87987 | 87987 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| lock | 14216 | 43996 | 43883 | 87862 | 260 |
| lock | 14216 | 44002 | 43883 | 89590 | 260 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| migrateToVault | 13541 | 62634 | 15747 | 158614 | 3 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -90,7 +90,7 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| proxiableUUID | 409 | 409 | 409 | 409 | 3 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| registerVault | 2562 | 72910 | 73461 | 73461 | 284 |
| registerVault | 2562 | 74426 | 74983 | 74983 | 284 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| rewardEndTime | 429 | 1429 | 1429 | 2429 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -102,7 +102,7 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| setTrustedCodehash | 24199 | 24199 | 24199 | 24199 | 71 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| stake | 2659 | 221708 | 224632 | 245117 | 326 |
| stake | 2659 | 223430 | 226360 | 246845 | 326 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalMP | 755 | 1201 | 1201 | 1647 | 4 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -120,7 +120,7 @@
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalStaked | 363 | 363 | 363 | 363 | 89 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| unstake | 67347 | 71126 | 70742 | 74939 | 13 |
| unstake | 68784 | 72563 | 72179 | 76376 | 13 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| updateGlobalState | 15809 | 27308 | 29200 | 29200 | 20 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
@@ -148,23 +148,23 @@
|----------------------------------------+-----------------+--------+--------+--------+---------|
| initialize | 98005 | 98005 | 98005 | 98005 | 284 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 12167 | 124302 | 65554 | 353935 | 4 |
| leave | 12167 | 124589 | 66128 | 353935 | 4 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| lock | 12097 | 59263 | 59332 | 103310 | 261 |
| lock | 12097 | 59269 | 59332 | 105038 | 261 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| migrateToVault | 29012 | 89332 | 31218 | 207768 | 3 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| owner | 377 | 397 | 377 | 2377 | 289 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| register | 12654 | 76522 | 77050 | 77050 | 284 |
| register | 12654 | 78038 | 78572 | 78572 | 284 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| stake | 12077 | 276752 | 280613 | 301098 | 327 |
| stake | 12077 | 278470 | 282341 | 302826 | 327 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| stakeManager | 367 | 367 | 367 | 367 | 283 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| trustStakeManager | 7577 | 7577 | 7577 | 7577 | 1 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| unstake | 12054 | 95794 | 101852 | 106049 | 14 |
| unstake | 12054 | 97129 | 103289 | 107486 | 14 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| withdraw | 20683 | 20683 | 20683 | 20683 | 1 |
╰----------------------------------------+-----------------+--------+--------+--------+---------╯
@@ -180,7 +180,7 @@
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| fallback | 733 | 7261 | 855 | 133415 | 520 |
| fallback | 733 | 7270 | 855 | 133415 | 520 |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| implementation | 343 | 2340 | 2343 | 2343 | 894 |
╰----------------------------------------------------+-----------------+------+--------+--------+---------╯
@@ -196,7 +196,7 @@
|--------------------------------------------+-----------------+--------+--------+--------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|--------------------------------------------+-----------------+--------+--------+--------+---------|
| createVault | 229785 | 246582 | 246885 | 246885 | 283 |
| createVault | 231307 | 248104 | 248407 | 248407 | 283 |
╰--------------------------------------------+-----------------+--------+--------+--------+---------╯
╭-------------------------------------------------+-----------------+-------+--------+-------+---------╮

View File

@@ -1,80 +1,80 @@
EmergencyExitTest:test_CannotEnableEmergencyModeTwice() (gas: 92801)
EmergencyExitTest:test_CannotLeaveBeforeEmergencyMode() (gas: 349940)
EmergencyExitTest:test_EmergencyExitBasic() (gas: 436900)
EmergencyExitTest:test_EmergencyExitMultipleUsers() (gas: 749214)
EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 444763)
EmergencyExitTest:test_EmergencyExitWithLock() (gas: 444135)
EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 429593)
EmergencyExitTest:test_CannotEnableEmergencyModeTwice() (gas: 93568)
EmergencyExitTest:test_CannotLeaveBeforeEmergencyMode() (gas: 351668)
EmergencyExitTest:test_EmergencyExitBasic() (gas: 439395)
EmergencyExitTest:test_EmergencyExitMultipleUsers() (gas: 753437)
EmergencyExitTest:test_EmergencyExitToAlternateAddress() (gas: 447258)
EmergencyExitTest:test_EmergencyExitWithLock() (gas: 446630)
EmergencyExitTest:test_EmergencyExitWithRewards() (gas: 432088)
EmergencyExitTest:test_OnlyOwnerCanEnableEmergencyMode() (gas: 39493)
IntegrationTest:testStakeFoo() (gas: 1334385)
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 6762395)
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 347066)
LeaveTest:test_TrustNewStakeManager() (gas: 6826007)
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1000, μ: 395435, ~: 395460)
IntegrationTest:testStakeFoo() (gas: 1341293)
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 6889549)
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 348794)
LeaveTest:test_TrustNewStakeManager() (gas: 6952473)
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1000, μ: 397163, ~: 397188)
LockTest:test_LockFailsWithNoStake() (gas: 106803)
LockTest:test_LockFailsWithZero() (gas: 364368)
LockTest:test_LockWithoutPriorLock() (gas: 452687)
LockTest:test_LockFailsWithZero() (gas: 366096)
LockTest:test_LockWithoutPriorLock() (gas: 456143)
LockTest:test_RevertWhenVaultToLockIsEmpty() (gas: 106782)
MaliciousUpgradeTest:test_UpgradeStackOverflowStakeManager() (gas: 1809347)
MaliciousUpgradeTest:test_UpgradeStackOverflowStakeManager() (gas: 1811075)
MathTest:test_CalcAbsoluteMaxTotalMP() (gas: 4996)
MathTest:test_CalcAccrueMP() (gas: 8013)
MathTest:test_CalcBonusMP() (gas: 18644)
MathTest:test_CalcInitialMP() (gas: 5375)
MathTest:test_CalcMaxAccruedMP() (gas: 4642)
MathTest:test_CalcMaxTotalMP() (gas: 19411)
MultipleVaultsStakeTest:test_StakeMultipleVaults() (gas: 836673)
MultipleVaultsStakeTest:test_StakeMultipleVaults() (gas: 841857)
NFTMetadataGeneratorSVGTest:testGenerateMetadata() (gas: 85934)
NFTMetadataGeneratorSVGTest:testSetImageStrings() (gas: 58332)
NFTMetadataGeneratorSVGTest:testSetImageStringsRevert() (gas: 35804)
NFTMetadataGeneratorURLTest:testGenerateMetadata() (gas: 102512)
NFTMetadataGeneratorURLTest:testSetBaseURL() (gas: 49555)
NFTMetadataGeneratorURLTest:testSetBaseURLRevert() (gas: 35979)
RewardsStreamerMP_RewardsTest:testRewardsBalanceOf() (gas: 939117)
RewardsStreamerMP_RewardsTest:testRewardsBalanceOf() (gas: 942573)
RewardsStreamerMP_RewardsTest:testSetRewards() (gas: 162374)
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadAmount() (gas: 39429)
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsBadDuration() (gas: 39407)
RewardsStreamerMP_RewardsTest:testSetRewards_RevertsNotAuthorized() (gas: 39442)
RewardsStreamerMP_RewardsTest:testTotalRewardsSupply() (gas: 667327)
StakeTest:test_StakeMultipleAccounts() (gas: 578902)
StakeTest:test_StakeMultipleAccountsAndRewards() (gas: 584872)
StakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 925514)
StakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 593639)
StakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 615594)
StakeTest:test_StakeOneAccount() (gas: 326635)
StakeTest:test_StakeOneAccountAndRewards() (gas: 332626)
StakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 558313)
StakeTest:test_StakeOneAccountReachingMPLimit() (gas: 546407)
StakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 346753)
StakeTest:test_StakeOneAccountWithMinLockUp() (gas: 347293)
StakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 347360)
StakeVaultMigrationTest:testMigrateToVault() (gas: 883519)
StakeVaultMigrationTest:test_RevertWhenMigrationVaultNotEmpty() (gas: 642066)
RewardsStreamerMP_RewardsTest:testTotalRewardsSupply() (gas: 669055)
StakeTest:test_StakeMultipleAccounts() (gas: 582358)
StakeTest:test_StakeMultipleAccountsAndRewards() (gas: 588328)
StakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 928970)
StakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 597095)
StakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 619050)
StakeTest:test_StakeOneAccount() (gas: 328363)
StakeTest:test_StakeOneAccountAndRewards() (gas: 334354)
StakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 560041)
StakeTest:test_StakeOneAccountReachingMPLimit() (gas: 548135)
StakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 348481)
StakeTest:test_StakeOneAccountWithMinLockUp() (gas: 349021)
StakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 349088)
StakeVaultMigrationTest:testMigrateToVault() (gas: 886769)
StakeVaultMigrationTest:test_RevertWhenMigrationVaultNotEmpty() (gas: 645316)
StakeVaultMigrationTest:test_RevertWhenNotOwnerOfMigrationVault() (gas: 68080)
StakingTokenTest:testStakeToken() (gas: 13140)
TrustedCodehashAccessTest:test_RevertWhenProxyCloneCodehashNotTrusted() (gas: 2027115)
UnstakeTest:test_StakeMultipleAccounts() (gas: 578879)
UnstakeTest:test_StakeMultipleAccountsAndRewards() (gas: 584894)
UnstakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 925491)
UnstakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 593616)
UnstakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 615616)
UnstakeTest:test_StakeOneAccount() (gas: 326635)
UnstakeTest:test_StakeOneAccountAndRewards() (gas: 332648)
UnstakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 558335)
UnstakeTest:test_StakeOneAccountReachingMPLimit() (gas: 546451)
UnstakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 346753)
UnstakeTest:test_StakeOneAccountWithMinLockUp() (gas: 347315)
UnstakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 347404)
UnstakeTest:test_UnstakeBonusMPAndAccuredMP() (gas: 603679)
UnstakeTest:test_UnstakeMultipleAccounts() (gas: 797247)
UnstakeTest:test_UnstakeMultipleAccountsAndRewards() (gas: 899024)
UnstakeTest:test_UnstakeOneAccount() (gas: 543693)
UnstakeTest:test_UnstakeOneAccountAndAccruedMP() (gas: 558342)
UnstakeTest:test_UnstakeOneAccountAndRewards() (gas: 467147)
UnstakeTest:test_UnstakeOneAccountWithLockUpAndAccruedMP() (gas: 586616)
UpgradeTest:test_RevertWhenNotOwner() (gas: 3154133)
UpgradeTest:test_UpgradeStakeManager() (gas: 6656969)
UnstakeTest:test_StakeMultipleAccounts() (gas: 582335)
UnstakeTest:test_StakeMultipleAccountsAndRewards() (gas: 588350)
UnstakeTest:test_StakeMultipleAccountsMPIncreasesMaxMPDoesNotChange() (gas: 928947)
UnstakeTest:test_StakeMultipleAccountsWithMinLockUp() (gas: 597072)
UnstakeTest:test_StakeMultipleAccountsWithRandomLockUp() (gas: 619072)
UnstakeTest:test_StakeOneAccount() (gas: 328363)
UnstakeTest:test_StakeOneAccountAndRewards() (gas: 334376)
UnstakeTest:test_StakeOneAccountMPIncreasesMaxMPDoesNotChange() (gas: 560063)
UnstakeTest:test_StakeOneAccountReachingMPLimit() (gas: 548179)
UnstakeTest:test_StakeOneAccountWithMaxLockUp() (gas: 348481)
UnstakeTest:test_StakeOneAccountWithMinLockUp() (gas: 349043)
UnstakeTest:test_StakeOneAccountWithRandomLockUp() (gas: 349132)
UnstakeTest:test_UnstakeBonusMPAndAccuredMP() (gas: 606844)
UnstakeTest:test_UnstakeMultipleAccounts() (gas: 803003)
UnstakeTest:test_UnstakeMultipleAccountsAndRewards() (gas: 905643)
UnstakeTest:test_UnstakeOneAccount() (gas: 547721)
UnstakeTest:test_UnstakeOneAccountAndAccruedMP() (gas: 561507)
UnstakeTest:test_UnstakeOneAccountAndRewards() (gas: 470312)
UnstakeTest:test_UnstakeOneAccountWithLockUpAndAccruedMP() (gas: 589781)
UpgradeTest:test_RevertWhenNotOwner() (gas: 3218904)
UpgradeTest:test_UpgradeStakeManager() (gas: 6783436)
VaultRegistrationTest:test_VaultRegistration() (gas: 62242)
WithdrawTest:test_CannotWithdrawStakedFunds() (gas: 362632)
WithdrawTest:test_CannotWithdrawStakedFunds() (gas: 364360)
XPNFTTokenTest:testApproveNotAllowed() (gas: 10500)
XPNFTTokenTest:testGetApproved() (gas: 10523)
XPNFTTokenTest:testIsApprovedForAll() (gas: 10698)

View File

@@ -22,8 +22,6 @@ contract RewardsStreamerMP is
IRewardProvider,
StakeMath
{
event VaultMigrated(address indexed from, address indexed to);
IERC20 public STAKING_TOKEN;
uint256 public constant SCALE_FACTOR = 1e18;
@@ -108,6 +106,7 @@ contract RewardsStreamerMP is
vaultOwners[vault] = owner;
vaults[owner].push(vault);
emit VaultRegistered(vault, owner);
}
/**
@@ -210,6 +209,8 @@ contract RewardsStreamerMP is
totalMaxMP += _deltaMPMax;
vault.rewardIndex = rewardIndex;
emit Staked(msg.sender, amount, lockPeriod);
}
function lock(uint256 lockPeriod)
@@ -246,6 +247,8 @@ contract RewardsStreamerMP is
totalMaxMP += deltaMp;
vault.rewardIndex = rewardIndex;
emit Locked(msg.sender, lockPeriod, newLockEnd);
}
function unstake(uint256 amount)
@@ -257,6 +260,7 @@ contract RewardsStreamerMP is
{
VaultData storage vault = vaultData[msg.sender];
_unstake(amount, vault, msg.sender);
emit Unstaked(msg.sender, amount);
}
function _unstake(uint256 amount, VaultData storage vault, address vaultAddress) internal {
@@ -299,6 +303,8 @@ contract RewardsStreamerMP is
vault.rewardIndex = 0;
vault.lockUntil = 0;
}
emit AccountLeft(msg.sender);
}
function _updateGlobalState() internal {
@@ -479,6 +485,7 @@ contract RewardsStreamerMP is
function enableEmergencyMode() external onlyOwner onlyNotEmergencyMode {
emergencyModeEnabled = true;
emit EmergencyModeEnabled();
}
function getStakedBalance(address vaultAddress) public view returns (uint256) {

View File

@@ -17,6 +17,14 @@ interface IStakeManager is ITrustedCodehashAccess, IStakeConstants {
error StakingManager__Unauthorized();
error StakingManager__DurationCannotBeZero();
event VaultRegistered(address indexed vault, address indexed owner);
event VaultMigrated(address indexed from, address indexed to);
event Staked(address indexed vault, uint256 amount, uint256 lockPeriod);
event Locked(address indexed vault, uint256 lockPeriod, uint256 lockUntil);
event Unstaked(address indexed vault, uint256 amount);
event EmergencyModeEnabled();
event AccountLeft(address indexed vault);
function registerVault() external;
function stake(uint256 _amount, uint256 _seconds) external;
function lock(uint256 _seconds) external;