refactor: introduce TransparentProxy in favor of StakeManagerProxy

We use `IStakeManagerProxy` to ensure instances of `TransparentProxy`
are stake managers where necessary.
This commit is contained in:
r4bbit
2025-02-03 12:50:01 +01:00
parent 80b85083db
commit 177aba24d6
8 changed files with 240 additions and 72 deletions

View File

@@ -1,191 +1,352 @@
| script/DeployRewardsStreamerMP.s.sol:DeployRewardsStreamerMPScript contract | | | | | |
|-----------------------------------------------------------------------------|-----------------|---------|---------|---------|---------|
-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------
| script/DeployRewardsStreamerMP.s.sol:DeployRewardsStreamerMPScript Contract | | | | | |
+=======================================================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| 6539451 | 31274 | | | | |
| Function Name | min | avg | median | max | # calls |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| | | | | | |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| run | 5618268 | 5618268 | 5618268 | 5618268 | 64 |
╰-----------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
| script/DeploymentConfig.s.sol:DeploymentConfig contract | | | | | |
|---------------------------------------------------------|-----------------|-----|--------|-----|---------|
╭---------------------------------------------------------+-----------------+-----+--------+-----+---------╮
| script/DeploymentConfig.s.sol:DeploymentConfig Contract | | | | | |
+==========================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
| 0 | 7333 | | | | |
| Function Name | min | avg | median | max | # calls |
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
| | | | | | |
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|---------------------------------------------------------+-----------------+-----+--------+-----+---------|
| activeNetworkConfig | 454 | 454 | 454 | 454 | 128 |
╰---------------------------------------------------------+-----------------+-----+--------+-----+---------╯
| script/UpgradeRewardsStreamerMP.s.sol:UpgradeRewardsStreamerMPScript contract | | | | | |
|-------------------------------------------------------------------------------|-----------------|---------|---------|---------|---------|
╭-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╮
| script/UpgradeRewardsStreamerMP.s.sol:UpgradeRewardsStreamerMPScript Contract | | | | | |
+=========================================================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| 3140997 | 15448 | | | | |
| Function Name | min | avg | median | max | # calls |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| | | | | | |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------|
| run | 2657933 | 2657933 | 2657933 | 2657933 | 3 |
╰-------------------------------------------------------------------------------+-----------------+---------+---------+---------+---------╯
| src/RewardsStreamerMP.sol:RewardsStreamerMP contract | | | | | |
|------------------------------------------------------|-----------------|--------|--------|--------|---------|
╭------------------------------------------------------+-----------------+--------+--------+--------+---------╮
| src/RewardsStreamerMP.sol:RewardsStreamerMP Contract | | | | | |
+=============================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| 2821054 | 13009 | | | | |
| Function Name | min | avg | median | max | # calls |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| | | | | | |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| MAX_LOCKUP_PERIOD | 382 | 382 | 382 | 382 | 4 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| MAX_MULTIPLIER | 262 | 262 | 262 | 262 | 9 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| MIN_LOCKUP_PERIOD | 308 | 308 | 308 | 308 | 15 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| STAKING_TOKEN | 395 | 2003 | 2395 | 2395 | 327 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| emergencyModeEnabled | 2398 | 2398 | 2398 | 2398 | 7 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| enableEmergencyMode | 2507 | 19414 | 24699 | 24699 | 8 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getAccountTotalMaxMP | 3133 | 3133 | 3133 | 3133 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getAccountTotalStakedBalance | 15173 | 15173 | 15173 | 15173 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getAccountVaults | 5225 | 5225 | 5225 | 5225 | 4 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getStakedBalance | 2618 | 2618 | 2618 | 2618 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| getVault | 1621 | 1621 | 1621 | 1621 | 72 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| initialize | 115654 | 115654 | 115654 | 115654 | 66 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| lastRewardTime | 428 | 1428 | 1428 | 2428 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 79955 | 79955 | 79955 | 79955 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| lock | 14282 | 42729 | 42692 | 78446 | 259 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| mpBalanceOfAccount | 10308 | 10308 | 10308 | 10308 | 1 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| proxiableUUID | 387 | 387 | 387 | 387 | 3 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| registerVault | 55866 | 72769 | 72966 | 72966 | 261 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| rewardEndTime | 362 | 1362 | 1362 | 2362 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| rewardStartTime | 407 | 1407 | 1407 | 2407 | 2 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| rewardsBalanceOf | 2942 | 6975 | 7525 | 7746 | 8 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| setReward | 2606 | 58415 | 86507 | 105754 | 7 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| setTrustedCodehash | 24199 | 24259 | 24199 | 26199 | 66 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| stake | 136333 | 179336 | 180726 | 201200 | 322 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalMPAccrued | 384 | 384 | 384 | 384 | 81 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalMaxMP | 406 | 406 | 406 | 406 | 81 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalRewardsAccrued | 407 | 407 | 407 | 407 | 3 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalRewardsSupply | 1036 | 1995 | 1817 | 6776 | 30 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| totalStaked | 427 | 427 | 427 | 427 | 82 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| unstake | 63857 | 64502 | 63857 | 68054 | 13 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| updateGlobalState | 14339 | 26780 | 28759 | 28759 | 19 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| updateVaultMP | 11707 | 17581 | 18273 | 18273 | 19 |
|------------------------------------------------------+-----------------+--------+--------+--------+---------|
| upgradeToAndCall | 3181 | 7875 | 8438 | 10881 | 5 |
╰------------------------------------------------------+-----------------+--------+--------+--------+---------╯
| src/StakeManagerProxy.sol:StakeManagerProxy contract | | | | | |
|------------------------------------------------------|-----------------|------|--------|--------|---------|
| Deployment Cost | Deployment Size | | | | |
| 256510 | 1231 | | | | |
| Function Name | min | avg | median | max | # calls |
| fallback | 689 | 7187 | 2075 | 132112 | 790 |
| implementation | 343 | 1636 | 2343 | 2343 | 929 |
| src/StakeVault.sol:StakeVault contract | | | | | |
|----------------------------------------|-----------------|--------|--------|--------|---------|
╭----------------------------------------+-----------------+--------+--------+--------+---------╮
| src/StakeVault.sol:StakeVault Contract | | | | | |
+===============================================================================================+
| Deployment Cost | Deployment Size | | | | |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| 1420392 | 6695 | | | | |
| Function Name | min | avg | median | max | # calls |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| | | | | | |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| STAKING_TOKEN | 216 | 216 | 216 | 216 | 1 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| emergencyExit | 36353 | 48857 | 48091 | 65191 | 7 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 33507 | 136181 | 70120 | 370978 | 4 |
| lock | 33245 | 79219 | 79302 | 112243 | 260 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| lock | 33245 | 79218 | 79302 | 112243 | 260 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| owner | 2339 | 2339 | 2339 | 2339 | 261 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| register | 87015 | 103918 | 104115 | 104115 | 261 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| stake | 33411 | 253159 | 255230 | 275752 | 323 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| stakeManager | 368 | 368 | 368 | 368 | 261 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| trustStakeManager | 28953 | 28953 | 28953 | 28953 | 1 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| unstake | 33282 | 99858 | 105888 | 113384 | 14 |
|----------------------------------------+-----------------+--------+--------+--------+---------|
| withdraw | 42278 | 42278 | 42278 | 42278 | 1 |
╰----------------------------------------+-----------------+--------+--------+--------+---------╯
╭----------------------------------------------------+-----------------+------+--------+--------+---------╮
| src/TransparentProxy.sol:TransparentProxy Contract | | | | | |
+=========================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| 256510 | 1231 | | | | |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| | | | | | |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| fallback | 689 | 7187 | 2075 | 132112 | 790 |
|----------------------------------------------------+-----------------+------+--------+--------+---------|
| implementation | 343 | 1636 | 2343 | 2343 | 929 |
╰----------------------------------------------------+-----------------+------+--------+--------+---------╯
| src/XPNFTToken.sol:XPNFTToken contract | | | | | |
|-------------------------------------------------|-----------------|-------|--------|-------|---------|
╭-------------------------------------------------+-----------------+-------+--------+-------+---------╮
| src/XPNFTToken.sol:XPNFTToken Contract | | | | | |
+======================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| 721357 | 3311 | | | | |
| Function Name | min | avg | median | max | # calls |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| | | | | | |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| approve | 391 | 391 | 391 | 391 | 1 |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| getApproved | 293 | 293 | 293 | 293 | 1 |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| isApprovedForAll | 507 | 507 | 507 | 507 | 1 |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| metadataGenerator | 324 | 324 | 324 | 324 | 1 |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| safeTransferFrom(address,address,uint256) | 482 | 482 | 482 | 482 | 1 |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| safeTransferFrom(address,address,uint256,bytes) | 673 | 673 | 673 | 673 | 1 |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| setApprovalForAll | 473 | 473 | 473 | 473 | 1 |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| setMetadataGenerator | 23993 | 26486 | 26486 | 28980 | 2 |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| tokenURI | 71322 | 71322 | 71322 | 71322 | 1 |
|-------------------------------------------------+-----------------+-------+--------+-------+---------|
| transferFrom | 527 | 527 | 527 | 527 | 1 |
╰-------------------------------------------------+-----------------+-------+--------+-------+---------╯
| src/XPToken.sol:XPToken contract | | | | | |
|----------------------------------|-----------------|-------|--------|-------|---------|
╭----------------------------------+-----------------+-------+--------+-------+---------╮
| src/XPToken.sol:XPToken Contract | | | | | |
+=======================================================================================+
| Deployment Cost | Deployment Size | | | | |
|----------------------------------+-----------------+-------+--------+-------+---------|
| 1040918 | 4850 | | | | |
| Function Name | min | avg | median | max | # calls |
|----------------------------------+-----------------+-------+--------+-------+---------|
| | | | | | |
|----------------------------------+-----------------+-------+--------+-------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|----------------------------------+-----------------+-------+--------+-------+---------|
| acceptOwnership | 28260 | 28260 | 28260 | 28260 | 1 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| addRewardProvider | 23967 | 57628 | 51089 | 68189 | 44 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| allowance | 530 | 530 | 530 | 530 | 2 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| approve | 410 | 410 | 410 | 410 | 2 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| balanceOf | 3601 | 11267 | 9601 | 20601 | 6 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| getRewardProviders | 1051 | 3304 | 3304 | 5557 | 4 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| mint | 24199 | 75906 | 91068 | 91080 | 14 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| mintAllowance | 5714 | 5751 | 5751 | 5788 | 2 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| owner | 340 | 1006 | 340 | 2340 | 3 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| removeRewardProvider | 23685 | 28092 | 25800 | 34792 | 6 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| totalSupply | 3018 | 5018 | 3018 | 11018 | 8 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| transfer | 408 | 408 | 408 | 408 | 2 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| transferFrom | 517 | 517 | 517 | 517 | 2 |
|----------------------------------+-----------------+-------+--------+-------+---------|
| transferOwnership | 47730 | 47730 | 47730 | 47730 | 1 |
╰----------------------------------+-----------------+-------+--------+-------+---------╯
| src/nft-metadata-generators/NFTMetadataGeneratorSVG.sol:NFTMetadataGeneratorSVG contract | | | | | |
|------------------------------------------------------------------------------------------|-----------------|-------|--------|-------|---------|
╭------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------╮
| src/nft-metadata-generators/NFTMetadataGeneratorSVG.sol:NFTMetadataGeneratorSVG Contract | | | | | |
+===============================================================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| 1146955 | 5713 | | | | |
| Function Name | min | avg | median | max | # calls |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| | | | | | |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| generate | 51746 | 51746 | 51746 | 51746 | 1 |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| imagePrefix | 1074 | 2074 | 2074 | 3074 | 2 |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| imageSuffix | 1118 | 2118 | 2118 | 3118 | 2 |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| setImageStrings | 25248 | 30606 | 30606 | 35965 | 2 |
╰------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------╯
| src/nft-metadata-generators/NFTMetadataGeneratorURL.sol:NFTMetadataGeneratorURL contract | | | | | |
|------------------------------------------------------------------------------------------|-----------------|-------|--------|-------|---------|
╭------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------╮
| src/nft-metadata-generators/NFTMetadataGeneratorURL.sol:NFTMetadataGeneratorURL Contract | | | | | |
+===============================================================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| 1120404 | 5550 | | | | |
| Function Name | min | avg | median | max | # calls |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| | | | | | |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| generate | 61198 | 61198 | 61198 | 61198 | 1 |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| setURLStrings | 25416 | 30774 | 30774 | 36133 | 2 |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| urlPrefix | 1075 | 1075 | 1075 | 1075 | 1 |
|------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| urlSuffix | 1141 | 1141 | 1141 | 1141 | 1 |
╰------------------------------------------------------------------------------------------+-----------------+-------+--------+-------+---------╯
| test/mocks/MockMetadataGenerator.sol:MockMetadataGenerator contract | | | | | |
|---------------------------------------------------------------------|-----------------|-------|--------|-------|---------|
╭---------------------------------------------------------------------+-----------------+-------+--------+-------+---------╮
| test/mocks/MockMetadataGenerator.sol:MockMetadataGenerator Contract | | | | | |
+==========================================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|---------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| 896351 | 4458 | | | | |
| Function Name | min | avg | median | max | # calls |
|---------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| | | | | | |
|---------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|---------------------------------------------------------------------+-----------------+-------+--------+-------+---------|
| generate | 57807 | 57807 | 57807 | 57807 | 1 |
╰---------------------------------------------------------------------+-----------------+-------+--------+-------+---------╯
| test/mocks/MockToken.sol:MockToken contract | | | | | |
|---------------------------------------------|-----------------|-------|--------|-------|---------|
╭---------------------------------------------+-----------------+-------+--------+-------+---------╮
| test/mocks/MockToken.sol:MockToken Contract | | | | | |
+==================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| 625454 | 3260 | | | | |
| Function Name | min | avg | median | max | # calls |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| | | | | | |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| approve | 46330 | 46339 | 46342 | 46342 | 261 |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| balanceOf | 558 | 926 | 558 | 2558 | 103 |
|---------------------------------------------+-----------------+-------+--------+-------+---------|
| mint | 51279 | 56395 | 51279 | 68379 | 274 |
╰---------------------------------------------+-----------------+-------+--------+-------+---------╯
| test/mocks/StackOverflowStakeManager.sol:StackOverflowStakeManager contract | | | | | |
|-----------------------------------------------------------------------------|-----------------|--------|--------|--------|---------|
╭-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╮
| test/mocks/StackOverflowStakeManager.sol:StackOverflowStakeManager Contract | | | | | |
+====================================================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
| 1031089 | 4604 | | | | |
| Function Name | min | avg | median | max | # calls |
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
| | | | | | |
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
| leave | 391 | 161316 | 161316 | 322322 | 334 |
|-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------|
| proxiableUUID | 330 | 330 | 330 | 330 | 1 |
╰-----------------------------------------------------------------------------+-----------------+--------+--------+--------+---------╯
| test/mocks/XPProviderMock.sol:XPProviderMock contract | | | | | |
|-------------------------------------------------------|-----------------|-------|--------|-------|---------|
╭-------------------------------------------------------+-----------------+-------+--------+-------+---------╮
| test/mocks/XPProviderMock.sol:XPProviderMock Contract | | | | | |
+============================================================================================================+
| Deployment Cost | Deployment Size | | | | |
|-------------------------------------------------------+-----------------+-------+--------+-------+---------|
| 177729 | 606 | | | | |
| Function Name | min | avg | median | max | # calls |
|-------------------------------------------------------+-----------------+-------+--------+-------+---------|
| | | | | | |
|-------------------------------------------------------+-----------------+-------+--------+-------+---------|
| Function Name | Min | Avg | Median | Max | # Calls |
|-------------------------------------------------------+-----------------+-------+--------+-------+---------|
| rewardsBalanceOfAccount | 501 | 1834 | 2501 | 2501 | 12 |
|-------------------------------------------------------+-----------------+-------+--------+-------+---------|
| setTotalXPShares | 43652 | 43652 | 43652 | 43652 | 20 |
|-------------------------------------------------------+-----------------+-------+--------+-------+---------|
| setUserXPShare | 44125 | 44125 | 44125 | 44125 | 4 |
|-------------------------------------------------------+-----------------+-------+--------+-------+---------|
| totalRewardsSupply | 323 | 989 | 323 | 2323 | 72 |
╰-------------------------------------------------------+-----------------+-------+--------+-------+---------╯

View File

@@ -10,7 +10,7 @@ IntegrationTest:testStakeFoo() (gas: 1218594)
LeaveTest:test_LeaveShouldProperlyUpdateAccounting() (gas: 6214173)
LeaveTest:test_RevertWhenStakeManagerIsTrusted() (gas: 297675)
LeaveTest:test_TrustNewStakeManager() (gas: 6269901)
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1002, μ: 344783, ~: 344801)
LockTest:test_LockFailsWithInvalidPeriod(uint256) (runs: 1000, μ: 344783, ~: 344801)
LockTest:test_LockFailsWithNoStake() (gas: 102637)
LockTest:test_LockFailsWithZero() (gas: 315022)
LockTest:test_LockWithoutPriorLock() (gas: 393335)

View File

@@ -3,8 +3,8 @@ pragma solidity ^0.8.26;
import { BaseScript } from "./Base.s.sol";
import { DeploymentConfig } from "./DeploymentConfig.s.sol";
import { TransparentProxy } from "../src/TransparentProxy.sol";
import { IStakeManagerProxy } from "../src/interfaces/IStakeManagerProxy.sol";
import { StakeManagerProxy } from "../src/StakeManagerProxy.sol";
import { RewardsStreamerMP } from "../src/RewardsStreamerMP.sol";
import { StakeVault } from "../src/StakeVault.sol";
@@ -16,8 +16,11 @@ contract DeployRewardsStreamerMPScript is BaseScript {
bytes memory initializeData = abi.encodeCall(RewardsStreamerMP.initialize, (deployer, stakingToken));
vm.startBroadcast(deployer);
// Deploy RewardsStreamerMP logic contract
address impl = address(new RewardsStreamerMP());
address proxy = address(new StakeManagerProxy(impl, initializeData));
// Create upgradeable proxy
address proxy = address(new TransparentProxy(impl, initializeData));
vm.stopBroadcast();
RewardsStreamerMP stakeManager = RewardsStreamerMP(proxy);

View File

@@ -3,7 +3,7 @@ pragma solidity ^0.8.26;
import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
contract StakeManagerProxy is ERC1967Proxy {
contract TransparentProxy is ERC1967Proxy {
constructor(address _implementation, bytes memory _data) ERC1967Proxy(_implementation, _data) { }
function implementation() external view returns (address) {

View File

@@ -2,7 +2,6 @@
pragma solidity ^0.8.26;
import { IStakeManager } from "./IStakeManager.sol";
import { ITransparentProxy } from "./ITransparentProxy.sol";
interface IStakeManagerProxy is IStakeManager {
function implementation() external view returns (address);
}
interface IStakeManagerProxy is IStakeManager, ITransparentProxy { }

View File

@@ -0,0 +1,6 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
interface ITransparentProxy {
function implementation() external view returns (address);
}

View File

@@ -12,7 +12,6 @@ import { RewardsStreamerMP } from "../src/RewardsStreamerMP.sol";
import { StakeMath } from "../src/math/StakeMath.sol";
import { StakeVault } from "../src/StakeVault.sol";
import { IStakeManagerProxy } from "../src/interfaces/IStakeManagerProxy.sol";
import { StakeManagerProxy } from "../src/StakeManagerProxy.sol";
import { MockToken } from "./mocks/MockToken.sol";
import { StackOverflowStakeManager } from "./mocks/StackOverflowStakeManager.sol";

View File

@@ -4,7 +4,7 @@ pragma solidity ^0.8.26;
import { Test } from "forge-std/Test.sol";
import { IStakeManagerProxy } from "../src/interfaces/IStakeManagerProxy.sol";
import { StakeManagerProxy } from "../src/StakeManagerProxy.sol";
import { TransparentProxy } from "../src/TransparentProxy.sol";
import { RewardsStreamerMP } from "../src/RewardsStreamerMP.sol";
import { StakeVault } from "../src/StakeVault.sol";
import { MockToken } from "./mocks/MockToken.sol";
@@ -33,7 +33,7 @@ contract StakeVaultTest is Test {
bytes memory initializeData = abi.encodeWithSelector(
RewardsStreamerMP.initialize.selector, address(this), address(stakingToken), address(rewardToken)
);
address proxy = address(new StakeManagerProxy(impl, initializeData));
address proxy = address(new TransparentProxy(impl, initializeData));
streamer = RewardsStreamerMP(proxy);
stakingToken.mint(alice, 10_000e18);