mirror of https://github.com/logos-co/staking.git
refactor(StakeManager): change finalizeEpoch to write epoch all at once
This commit is contained in:
parent
769f32f718
commit
ac4945cb5c
100
.gas-report
100
.gas-report
|
@ -1,42 +1,42 @@
|
|||
| contracts/StakeManager.sol:StakeManager contract | | | | | |
|
||||
|--------------------------------------------------|-----------------|--------|--------|--------|---------|
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
| 2465702 | 13041 | | | | |
|
||||
| Function Name | min | avg | median | max | # calls |
|
||||
| EPOCH_SIZE | 307 | 307 | 307 | 307 | 1498 |
|
||||
| MAX_BOOST | 285 | 285 | 285 | 285 | 637 |
|
||||
| MAX_LOCKUP_PERIOD | 361 | 361 | 361 | 361 | 4 |
|
||||
| MIN_LOCKUP_PERIOD | 264 | 264 | 264 | 264 | 12 |
|
||||
| YEAR | 263 | 263 | 263 | 263 | 637 |
|
||||
| accounts | 1597 | 1597 | 1597 | 1597 | 144273 |
|
||||
| calculateMPToMint | 740 | 740 | 740 | 740 | 1276 |
|
||||
| currentEpoch | 384 | 1050 | 384 | 2384 | 54 |
|
||||
| epochEnd | 627 | 627 | 627 | 2627 | 23675 |
|
||||
| epochReward | 1425 | 2925 | 1425 | 5925 | 3 |
|
||||
| executeAccount(address) | 151152 | 151152 | 151152 | 151152 | 2 |
|
||||
| executeAccount(address,uint256) | 26562 | 72616 | 74122 | 217879 | 141860 |
|
||||
| executeEpoch() | 23458 | 120800 | 121956 | 938985 | 23564 |
|
||||
| executeEpoch(uint256) | 23861 | 24497 | 23861 | 26090 | 7 |
|
||||
| isVault | 540 | 948 | 540 | 2540 | 680 |
|
||||
| lock | 23862 | 23862 | 23862 | 23862 | 1 |
|
||||
| migrateTo | 23891 | 23897 | 23897 | 23903 | 2 |
|
||||
| migration | 395 | 1395 | 1395 | 2395 | 4 |
|
||||
| migrationInitialize | 24602 | 24602 | 24602 | 24602 | 1 |
|
||||
| newEpoch | 441 | 441 | 441 | 441 | 5 |
|
||||
| owner | 2432 | 2432 | 2432 | 2432 | 13 |
|
||||
| pendingMPToBeMinted | 364 | 364 | 364 | 364 | 46432 |
|
||||
| pendingReward | 386 | 1420 | 2386 | 2386 | 29 |
|
||||
| previousManager | 275 | 275 | 275 | 275 | 13 |
|
||||
| setVault | 46239 | 46239 | 46239 | 46239 | 139 |
|
||||
| stake | 23983 | 23983 | 23983 | 23983 | 1 |
|
||||
| stakeRewardEstimate | 436 | 2345 | 2436 | 2436 | 22 |
|
||||
| stakedToken | 295 | 295 | 295 | 295 | 696 |
|
||||
| startMigration | 103580 | 103588 | 103592 | 103592 | 3 |
|
||||
| startTime | 306 | 306 | 306 | 306 | 21 |
|
||||
| totalSupply | 762 | 1943 | 2762 | 2762 | 22 |
|
||||
| totalSupplyBalance | 407 | 1807 | 2407 | 2407 | 20 |
|
||||
| totalSupplyMP | 362 | 362 | 362 | 2362 | 46453 |
|
||||
| unstake | 23819 | 23819 | 23819 | 23819 | 1 |
|
||||
| contracts/StakeManager.sol:StakeManager contract | | | | | |
|
||||
|--------------------------------------------------|-----------------|--------|--------|---------|---------|
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
| 2482296 | 13118 | | | | |
|
||||
| Function Name | min | avg | median | max | # calls |
|
||||
| EPOCH_SIZE | 307 | 307 | 307 | 307 | 1498 |
|
||||
| MAX_BOOST | 285 | 285 | 285 | 285 | 637 |
|
||||
| MAX_LOCKUP_PERIOD | 361 | 361 | 361 | 361 | 4 |
|
||||
| MIN_LOCKUP_PERIOD | 264 | 264 | 264 | 264 | 12 |
|
||||
| YEAR | 263 | 263 | 263 | 263 | 637 |
|
||||
| accounts | 1597 | 1597 | 1597 | 1597 | 144303 |
|
||||
| calculateMPToMint | 740 | 740 | 740 | 740 | 1276 |
|
||||
| currentEpoch | 384 | 1050 | 384 | 2384 | 54 |
|
||||
| epochEnd | 627 | 627 | 627 | 2627 | 23680 |
|
||||
| epochReward | 1425 | 2925 | 1425 | 5925 | 3 |
|
||||
| executeAccount(address) | 151315 | 151315 | 151315 | 151315 | 2 |
|
||||
| executeAccount(address,uint256) | 26562 | 72614 | 74122 | 217879 | 141890 |
|
||||
| executeEpoch() | 23458 | 123123 | 124260 | 1382856 | 23569 |
|
||||
| executeEpoch(uint256) | 23861 | 24497 | 23861 | 26090 | 7 |
|
||||
| isVault | 540 | 948 | 540 | 2540 | 680 |
|
||||
| lock | 23862 | 23862 | 23862 | 23862 | 1 |
|
||||
| migrateTo | 23891 | 23897 | 23897 | 23903 | 2 |
|
||||
| migration | 395 | 1395 | 1395 | 2395 | 4 |
|
||||
| migrationInitialize | 24602 | 24602 | 24602 | 24602 | 1 |
|
||||
| newEpoch | 441 | 441 | 441 | 441 | 5 |
|
||||
| owner | 2432 | 2432 | 2432 | 2432 | 13 |
|
||||
| pendingMPToBeMinted | 364 | 364 | 364 | 364 | 46442 |
|
||||
| pendingReward | 386 | 1420 | 2386 | 2386 | 29 |
|
||||
| previousManager | 275 | 275 | 275 | 275 | 13 |
|
||||
| setVault | 46239 | 46239 | 46239 | 46239 | 139 |
|
||||
| stake | 23983 | 23983 | 23983 | 23983 | 1 |
|
||||
| stakeRewardEstimate | 436 | 2345 | 2436 | 2436 | 22 |
|
||||
| stakedToken | 295 | 295 | 295 | 295 | 696 |
|
||||
| startMigration | 103580 | 103588 | 103592 | 103592 | 3 |
|
||||
| startTime | 306 | 306 | 306 | 306 | 21 |
|
||||
| totalSupply | 762 | 1943 | 2762 | 2762 | 22 |
|
||||
| totalSupplyBalance | 407 | 1807 | 2407 | 2407 | 20 |
|
||||
| totalSupplyMP | 362 | 362 | 362 | 2362 | 46463 |
|
||||
| unstake | 23819 | 23819 | 23819 | 23819 | 1 |
|
||||
|
||||
|
||||
| contracts/StakeManager.sol:StakeRewardEstimate contract | | | | | |
|
||||
|
@ -44,7 +44,7 @@
|
|||
| Deployment Cost | Deployment Size | | | | |
|
||||
| 0 | 0 | | | | |
|
||||
| Function Name | min | avg | median | max | # calls |
|
||||
| getExpiredMP | 2427 | 2427 | 2427 | 2427 | 23725 |
|
||||
| getExpiredMP | 2427 | 2427 | 2427 | 2427 | 23730 |
|
||||
| transferOwnership | 28533 | 28533 | 28533 | 28533 | 1 |
|
||||
|
||||
|
||||
|
@ -55,11 +55,11 @@
|
|||
| Function Name | min | avg | median | max | # calls |
|
||||
| acceptMigration | 35280 | 35280 | 35280 | 35280 | 2 |
|
||||
| leave | 35266 | 35266 | 35266 | 35266 | 1 |
|
||||
| lock | 43329 | 96146 | 64421 | 204745 | 7 |
|
||||
| lock | 43329 | 96862 | 64421 | 209550 | 7 |
|
||||
| owner | 362 | 362 | 362 | 362 | 679 |
|
||||
| stake | 27265 | 282079 | 265719 | 351866 | 684 |
|
||||
| stake | 27265 | 282179 | 265719 | 351866 | 684 |
|
||||
| stakedToken | 212 | 212 | 212 | 212 | 2 |
|
||||
| unstake | 40167 | 95818 | 78688 | 233549 | 11 |
|
||||
| unstake | 40167 | 95906 | 78688 | 234033 | 11 |
|
||||
|
||||
|
||||
| contracts/VaultFactory.sol:VaultFactory contract | | | | | |
|
||||
|
@ -78,23 +78,23 @@
|
|||
| 0 | 0 | | | | |
|
||||
| Function Name | min | avg | median | max | # calls |
|
||||
| approve | 46175 | 46239 | 46199 | 46367 | 679 |
|
||||
| balanceOf | 561 | 2107 | 2561 | 2561 | 30744 |
|
||||
| balanceOf | 561 | 2107 | 2561 | 2561 | 30749 |
|
||||
|
||||
|
||||
| script/Deploy.s.sol:Deploy contract | | | | | |
|
||||
|-------------------------------------|-----------------|---------|---------|---------|---------|
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
| 6118940 | 29538 | | | | |
|
||||
| 6135531 | 29615 | | | | |
|
||||
| Function Name | min | avg | median | max | # calls |
|
||||
| run | 5316305 | 5316305 | 5316305 | 5316305 | 66 |
|
||||
| run | 5331743 | 5331743 | 5331743 | 5331743 | 66 |
|
||||
|
||||
|
||||
| script/DeployMigrationStakeManager.s.sol:DeployMigrationStakeManager contract | | | | | |
|
||||
|-------------------------------------------------------------------------------|-----------------|---------|---------|---------|---------|
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
| 3282471 | 16306 | | | | |
|
||||
| 3299066 | 16383 | | | | |
|
||||
| Function Name | min | avg | median | max | # calls |
|
||||
| run | 2302633 | 2302633 | 2302633 | 2302633 | 19 |
|
||||
| run | 2318071 | 2318071 | 2318071 | 2318071 | 19 |
|
||||
|
||||
|
||||
| script/DeploymentConfig.s.sol:DeploymentConfig contract | | | | | |
|
||||
|
@ -117,9 +117,9 @@
|
|||
| test/script/DeployBroken.s.sol:DeployBroken contract | | | | | |
|
||||
|------------------------------------------------------|-----------------|---------|---------|---------|---------|
|
||||
| Deployment Cost | Deployment Size | | | | |
|
||||
| 4803693 | 23336 | | | | |
|
||||
| 4820291 | 23413 | | | | |
|
||||
| Function Name | min | avg | median | max | # calls |
|
||||
| run | 4156127 | 4156127 | 4156127 | 4156127 | 1 |
|
||||
| run | 4171564 | 4171564 | 4171564 | 4171564 | 1 |
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
CreateVaultTest:testDeployment() (gas: 9774)
|
||||
CreateVaultTest:test_createVault() (gas: 714022)
|
||||
ExecuteAccountTest:testDeployment() (gas: 28785)
|
||||
ExecuteAccountTest:test_ExecuteAccountLimit() (gas: 1580255)
|
||||
ExecuteAccountTest:test_ExecuteAccountMintMP() (gas: 5297777)
|
||||
ExecuteAccountTest:test_RevertWhen_InvalidLimitEpoch() (gas: 1788412)
|
||||
ExecuteAccountTest:test_ShouldNotMintMoreThanCap() (gas: 321397553)
|
||||
ExecuteAccountTest:test_ExecuteAccountLimit() (gas: 1582681)
|
||||
ExecuteAccountTest:test_ExecuteAccountMintMP() (gas: 5304689)
|
||||
ExecuteAccountTest:test_RevertWhen_InvalidLimitEpoch() (gas: 1788656)
|
||||
ExecuteAccountTest:test_ShouldNotMintMoreThanCap() (gas: 322109489)
|
||||
ExecuteEpochTest:testDeployment() (gas: 28786)
|
||||
ExecuteEpochTest:testNewDeployment() (gas: 30858)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteAccountAfterEpochEnd() (gas: 1366211)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteAccountAfterManyEpochsJumoMany() (gas: 1385045)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteAccountAfterManyEpochsJumoMany() (gas: 1385167)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteAccountAfterManyEpochsWithBrokenTime() (gas: 1629507)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteAccountAfterManyEpochsWithBrokenTimeJumpMany() (gas: 1395200)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteEpochAfterEnd() (gas: 1936210)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteEpochExecuteAccountAfterManyEpochs() (gas: 2523553)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteEpochExecuteAccountAfterManyEpochsJumoMany() (gas: 1479491)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteEpochExecuteAccountAfterManyEpochsWithBrokenTime() (gas: 2533729)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteEpochExecuteAccountAfterManyEpochsWithBrokenTimeJumpMany() (gas: 1489623)
|
||||
ExecuteEpochTest:test_ExecuteEpochNewEpoch() (gas: 1122339)
|
||||
ExecuteEpochTest:test_ExecuteEpochShouldIncreaseEpoch() (gas: 92413)
|
||||
ExecuteEpochTest:test_ExecuteEpochShouldIncreasePendingReward() (gas: 256446)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteAccountAfterManyEpochsWithBrokenTimeJumpMany() (gas: 1395322)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteEpochAfterEnd() (gas: 1952124)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteEpochExecuteAccountAfterManyEpochs() (gas: 2546593)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteEpochExecuteAccountAfterManyEpochsJumoMany() (gas: 1481795)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteEpochExecuteAccountAfterManyEpochsWithBrokenTime() (gas: 2556769)
|
||||
ExecuteEpochTest:test_ExecuteEpochExecuteEpochExecuteAccountAfterManyEpochsWithBrokenTimeJumpMany() (gas: 1491927)
|
||||
ExecuteEpochTest:test_ExecuteEpochNewEpoch() (gas: 1568514)
|
||||
ExecuteEpochTest:test_ExecuteEpochShouldIncreaseEpoch() (gas: 94717)
|
||||
ExecuteEpochTest:test_ExecuteEpochShouldIncreasePendingReward() (gas: 258289)
|
||||
ExecuteEpochTest:test_ExecuteEpochShouldNotIncreaseEpochBeforeEnd() (gas: 38984)
|
||||
ExecuteEpochTest:test_ExecuteEpochShouldNotIncreaseEpochInMigration() (gas: 149638)
|
||||
LeaveTest:testDeployment() (gas: 28763)
|
||||
|
@ -27,15 +27,15 @@ LeaveTest:test_RevertWhen_SenderIsNotVault() (gas: 31964)
|
|||
LockTest:testDeployment() (gas: 28763)
|
||||
LockTest:test_NewLockupPeriod() (gas: 1329045)
|
||||
LockTest:test_RevertWhen_InvalidNewLockupPeriod() (gas: 1301374)
|
||||
LockTest:test_RevertWhen_InvalidUpdateLockupPeriod() (gas: 1545884)
|
||||
LockTest:test_RevertWhen_InvalidUpdateLockupPeriod() (gas: 1546210)
|
||||
LockTest:test_RevertWhen_SenderIsNotVault() (gas: 31856)
|
||||
LockTest:test_ShouldIncreaseBonusMP() (gas: 1311575)
|
||||
LockTest:test_UpdateLockupPeriod() (gas: 1634540)
|
||||
LockTest:test_UpdateLockupPeriod() (gas: 1639467)
|
||||
MigrateTest:testDeployment() (gas: 28763)
|
||||
MigrateTest:test_RevertWhen_NoPendingMigration() (gas: 1292046)
|
||||
MigrateTest:test_RevertWhen_SenderIsNotVault() (gas: 31976)
|
||||
MigrationInitializeTest:testDeployment() (gas: 28763)
|
||||
MigrationInitializeTest:test_RevertWhen_MigrationPending() (gas: 5181388)
|
||||
MigrationInitializeTest:test_RevertWhen_MigrationPending() (gas: 5214597)
|
||||
MigrationStakeManagerTest:testDeployment() (gas: 28763)
|
||||
MigrationStakeManagerTest:testNewDeployment() (gas: 30902)
|
||||
MigrationStakeManagerTest:test_ExecuteEpochShouldNotIncreaseEpochInMigration() (gas: 149603)
|
||||
|
@ -57,11 +57,11 @@ UnstakeTest:testDeployment() (gas: 28785)
|
|||
UnstakeTest:test_RevertWhen_AmountMoreThanBalance() (gas: 1297407)
|
||||
UnstakeTest:test_RevertWhen_FundsLocked() (gas: 1342144)
|
||||
UnstakeTest:test_RevertWhen_SenderIsNotVault() (gas: 31857)
|
||||
UnstakeTest:test_UnstakeShouldBurnMultiplierPoints() (gas: 6526945)
|
||||
UnstakeTest:test_UnstakeShouldBurnMultiplierPoints() (gas: 6533856)
|
||||
UnstakeTest:test_UnstakeShouldReturnFund_NoLockUp() (gas: 1319573)
|
||||
UnstakeTest:test_UnstakeShouldReturnFund_WithLockUp() (gas: 1440205)
|
||||
UnstakeTest:test_UnstakeShouldReturnFund_WithLockUp() (gas: 1440568)
|
||||
UserFlowsTest:testDeployment() (gas: 28763)
|
||||
UserFlowsTest:test_PendingMPToBeMintedCannotBeGreaterThanTotalSupplyMP(uint8,uint128) (runs: 106, μ: 131402731, ~: 130856521)
|
||||
UserFlowsTest:test_StakeWithLockUpTimeLocksStake() (gas: 1481301)
|
||||
UserFlowsTest:test_PendingMPToBeMintedCannotBeGreaterThanTotalSupplyMP(uint8,uint128) (runs: 106, μ: 131932764, ~: 131359021)
|
||||
UserFlowsTest:test_StakeWithLockUpTimeLocksStake() (gas: 1481664)
|
||||
UserFlowsTest:test_StakedSupplyShouldIncreaseAndDecreaseAgain() (gas: 2494771)
|
||||
VaultFactoryTest:testDeployment() (gas: 9774)
|
|
@ -143,7 +143,7 @@ contract StakeManager is Ownable {
|
|||
function finalizeEpoch(uint256 _limitEpoch) private {
|
||||
uint256 tempCurrentEpoch = currentEpoch;
|
||||
while (tempCurrentEpoch < _limitEpoch) {
|
||||
Epoch storage thisEpoch = epochs[tempCurrentEpoch];
|
||||
Epoch memory thisEpoch;
|
||||
uint256 expiredMP = stakeRewardEstimate.getExpiredMP(tempCurrentEpoch);
|
||||
if (expiredMP > 0) {
|
||||
totalMPPerEpoch -= expiredMP;
|
||||
|
@ -159,7 +159,7 @@ contract StakeManager is Ownable {
|
|||
pendingReward += thisEpoch.epochReward;
|
||||
}
|
||||
thisEpoch.totalSupply = totalSupply();
|
||||
|
||||
epochs[tempCurrentEpoch] = thisEpoch;
|
||||
//create new epoch
|
||||
tempCurrentEpoch++;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue