Skip to content

Commit 0dc0fd2

Browse files
committed
refactor(StakeManager): optimize epoch finalization and execution of accounts and epochs
- Refactored the StakeManager contract to optimize the finalization of epochs and execution of accounts and epochs. - Replaced the Epoch.startTime with a new global variable startTime to keep track of the start time of the contract. - Modified the finalizeEpoch function to use a temporary variable for the current epoch and calculate the epoch reward only for the current epoch. - Updated the migrationInitialize function to set the start time using the new startTime variable. - Modified the epochEnd function to calculate the end time of the current epoch using the startTime variable. - Modified the newEpoch function to calculate the number of the next epoch based on the startTime variable.
1 parent a5f81bc commit 0dc0fd2

File tree

3 files changed

+134
-131
lines changed

3 files changed

+134
-131
lines changed

.gas-report

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,41 @@
1-
| contracts/StakeManager.sol:StakeManager contract | | | | | |
2-
|--------------------------------------------------|-----------------|--------|--------|---------|---------|
3-
| Deployment Cost | Deployment Size | | | | |
4-
| 2447267 | 12701 | | | | |
5-
| Function Name | min | avg | median | max | # calls |
6-
| EPOCH_SIZE | 263 | 263 | 263 | 263 | 862 |
7-
| MAX_BOOST | 307 | 307 | 307 | 307 | 1 |
8-
| MAX_LOCKUP_PERIOD | 361 | 361 | 361 | 361 | 4 |
9-
| MIN_LOCKUP_PERIOD | 264 | 264 | 264 | 264 | 12 |
10-
| YEAR | 263 | 263 | 263 | 263 | 1 |
11-
| accounts | 1619 | 1619 | 1619 | 1619 | 11516 |
12-
| calculateMPToMint | 740 | 740 | 740 | 740 | 4 |
13-
| currentEpoch | 406 | 1072 | 406 | 2406 | 54 |
14-
| epochEnd | 649 | 670 | 649 | 4649 | 560 |
15-
| epochReward | 1425 | 2925 | 1425 | 5925 | 3 |
16-
| executeAccount(address) | 171751 | 171751 | 171751 | 171751 | 2 |
17-
| executeAccount(address,uint256) | 30909 | 96288 | 95408 | 240839 | 9103 |
18-
| executeEpoch() | 23458 | 175553 | 164159 | 3562421 | 449 |
19-
| executeEpoch(uint256) | 28208 | 28242 | 28208 | 28330 | 7 |
20-
| isVault | 562 | 602 | 562 | 2562 | 6583 |
21-
| lock | 23862 | 23862 | 23862 | 23862 | 1 |
22-
| migrateTo | 23891 | 23897 | 23897 | 23903 | 2 |
23-
| migration | 395 | 1395 | 1395 | 2395 | 4 |
24-
| migrationInitialize | 24602 | 24602 | 24602 | 24602 | 1 |
25-
| newEpoch | 788 | 788 | 788 | 788 | 5 |
26-
| owner | 2432 | 2432 | 2432 | 2432 | 13 |
27-
| pendingMPToBeMinted | 386 | 386 | 386 | 386 | 202 |
28-
| pendingReward | 386 | 1420 | 2386 | 2386 | 29 |
29-
| previousManager | 275 | 275 | 275 | 275 | 13 |
30-
| setVault | 46216 | 46216 | 46216 | 46216 | 134 |
31-
| stake | 23983 | 23983 | 23983 | 23983 | 1 |
32-
| stakeRewardEstimate | 436 | 2345 | 2436 | 2436 | 22 |
33-
| stakedToken | 295 | 295 | 295 | 295 | 6599 |
34-
| startMigration | 108281 | 108289 | 108293 | 108293 | 3 |
35-
| totalSupply | 762 | 1943 | 2762 | 2762 | 22 |
36-
| totalSupplyBalance | 407 | 1807 | 2407 | 2407 | 20 |
37-
| totalSupplyMP | 362 | 487 | 362 | 2362 | 223 |
38-
| unstake | 23841 | 23841 | 23841 | 23841 | 1 |
1+
| contracts/StakeManager.sol:StakeManager contract | | | | | |
2+
|--------------------------------------------------|-----------------|--------|--------|--------|---------|
3+
| Deployment Cost | Deployment Size | | | | |
4+
| 2437361 | 12618 | | | | |
5+
| Function Name | min | avg | median | max | # calls |
6+
| EPOCH_SIZE | 307 | 307 | 307 | 307 | 862 |
7+
| MAX_BOOST | 285 | 285 | 285 | 285 | 1 |
8+
| MAX_LOCKUP_PERIOD | 361 | 361 | 361 | 361 | 4 |
9+
| MIN_LOCKUP_PERIOD | 264 | 264 | 264 | 264 | 12 |
10+
| YEAR | 263 | 263 | 263 | 263 | 1 |
11+
| accounts | 1597 | 1597 | 1597 | 1597 | 11692 |
12+
| calculateMPToMint | 740 | 740 | 740 | 740 | 4 |
13+
| currentEpoch | 384 | 1050 | 384 | 2384 | 54 |
14+
| epochEnd | 730 | 751 | 730 | 4730 | 560 |
15+
| epochReward | 1425 | 2925 | 1425 | 5925 | 3 |
16+
| executeAccount(address) | 152919 | 152919 | 152919 | 152919 | 2 |
17+
| executeAccount(address,uint256) | 28668 | 94228 | 93431 | 220388 | 9279 |
18+
| executeEpoch() | 23458 | 146957 | 141162 | 941091 | 449 |
19+
| executeEpoch(uint256) | 25967 | 26603 | 25967 | 28196 | 7 |
20+
| isVault | 540 | 579 | 540 | 2540 | 6759 |
21+
| lock | 23862 | 23862 | 23862 | 23862 | 1 |
22+
| migrateTo | 23891 | 23897 | 23897 | 23903 | 2 |
23+
| migration | 395 | 1395 | 1395 | 2395 | 4 |
24+
| migrationInitialize | 24602 | 24602 | 24602 | 24602 | 1 |
25+
| newEpoch | 547 | 547 | 547 | 547 | 5 |
26+
| owner | 2432 | 2432 | 2432 | 2432 | 13 |
27+
| pendingMPToBeMinted | 364 | 364 | 364 | 364 | 202 |
28+
| pendingReward | 386 | 1420 | 2386 | 2386 | 29 |
29+
| previousManager | 275 | 275 | 275 | 275 | 13 |
30+
| setVault | 46239 | 46239 | 46239 | 46239 | 134 |
31+
| stake | 23983 | 23983 | 23983 | 23983 | 1 |
32+
| stakeRewardEstimate | 436 | 2345 | 2436 | 2436 | 22 |
33+
| stakedToken | 295 | 295 | 295 | 295 | 6775 |
34+
| startMigration | 107964 | 107972 | 107976 | 107976 | 3 |
35+
| totalSupply | 762 | 1943 | 2762 | 2762 | 22 |
36+
| totalSupplyBalance | 407 | 1807 | 2407 | 2407 | 20 |
37+
| totalSupplyMP | 362 | 487 | 362 | 2362 | 223 |
38+
| unstake | 23819 | 23819 | 23819 | 23819 | 1 |
3939

4040

4141
| contracts/StakeManager.sol:StakeRewardEstimate contract | | | | | |
@@ -54,19 +54,19 @@
5454
| Function Name | min | avg | median | max | # calls |
5555
| acceptMigration | 35280 | 35280 | 35280 | 35280 | 2 |
5656
| leave | 35266 | 35266 | 35266 | 35266 | 1 |
57-
| lock | 45569 | 108497 | 66661 | 254253 | 7 |
58-
| owner | 362 | 362 | 362 | 362 | 6582 |
59-
| stake | 27265 | 269388 | 267875 | 354106 | 6587 |
57+
| lock | 45435 | 98296 | 66527 | 207057 | 7 |
58+
| owner | 362 | 362 | 362 | 362 | 6758 |
59+
| stake | 27265 | 269317 | 267844 | 354075 | 6763 |
6060
| stakedToken | 212 | 212 | 212 | 212 | 2 |
61-
| unstake | 42429 | 104547 | 80498 | 272053 | 11 |
61+
| unstake | 42273 | 97763 | 80373 | 235399 | 11 |
6262

6363

6464
| contracts/VaultFactory.sol:VaultFactory contract | | | | | |
6565
|--------------------------------------------------|-----------------|--------|--------|--------|---------|
6666
| Deployment Cost | Deployment Size | | | | |
6767
| 0 | 0 | | | | |
6868
| Function Name | min | avg | median | max | # calls |
69-
| createVault | 696553 | 696553 | 696553 | 696553 | 6586 |
69+
| createVault | 696553 | 696553 | 696553 | 696553 | 6762 |
7070
| setStakeManager | 23710 | 26669 | 26076 | 30222 | 3 |
7171
| stakeManager | 368 | 1868 | 2368 | 2368 | 4 |
7272

@@ -76,24 +76,24 @@
7676
| Deployment Cost | Deployment Size | | | | |
7777
| 0 | 0 | | | | |
7878
| Function Name | min | avg | median | max | # calls |
79-
| approve | 46175 | 46198 | 46199 | 46211 | 6582 |
80-
| balanceOf | 561 | 628 | 561 | 2561 | 19533 |
79+
| approve | 46175 | 46198 | 46199 | 46211 | 6758 |
80+
| balanceOf | 561 | 627 | 561 | 2561 | 19782 |
8181

8282

8383
| script/Deploy.s.sol:Deploy contract | | | | | |
8484
|-------------------------------------|-----------------|---------|---------|---------|---------|
8585
| Deployment Cost | Deployment Size | | | | |
86-
| 6048121 | 29198 | | | | |
86+
| 6030213 | 29115 | | | | |
8787
| Function Name | min | avg | median | max | # calls |
88-
| run | 5301161 | 5301161 | 5301161 | 5301161 | 66 |
88+
| run | 5292520 | 5292520 | 5292520 | 5292520 | 66 |
8989

9090

9191
| script/DeployMigrationStakeManager.s.sol:DeployMigrationStakeManager contract | | | | | |
9292
|-------------------------------------------------------------------------------|-----------------|---------|---------|---------|---------|
9393
| Deployment Cost | Deployment Size | | | | |
94-
| 3211677 | 15966 | | | | |
94+
| 3193774 | 15883 | | | | |
9595
| Function Name | min | avg | median | max | # calls |
96-
| run | 2286831 | 2286831 | 2286831 | 2286831 | 19 |
96+
| run | 2278190 | 2278190 | 2278190 | 2278190 | 19 |
9797

9898

9999
| script/DeploymentConfig.s.sol:DeploymentConfig contract | | | | | |
@@ -116,9 +116,9 @@
116116
| test/script/DeployBroken.s.sol:DeployBroken contract | | | | | |
117117
|------------------------------------------------------|-----------------|---------|---------|---------|---------|
118118
| Deployment Cost | Deployment Size | | | | |
119-
| 4732891 | 22996 | | | | |
119+
| 4714985 | 22913 | | | | |
120120
| Function Name | min | avg | median | max | # calls |
121-
| run | 4140983 | 4140983 | 4140983 | 4140983 | 1 |
121+
| run | 4132341 | 4132341 | 4132341 | 4132341 | 1 |
122122

123123

124124

0 commit comments

Comments
 (0)