Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/staking vault init #886

Merged
merged 5 commits into from
Nov 29, 2024
Merged

Feat/staking vault init #886

merged 5 commits into from
Nov 29, 2024

Conversation

loga4
Copy link
Contributor

@loga4 loga4 commented Nov 29, 2024

  • add a new VAULT_REGISTRY_ROLE role
  • move storage to erc7201 format
  • add accounting initializer
  • refactor StakingVault initialization

@loga4 loga4 requested a review from a team as a code owner November 29, 2024 05:05
Copy link

github-actions bot commented Nov 29, 2024

badge

Hardhat Unit Tests Coverage Summary

Filename                                                       Stmts    Miss  Cover    Missing
-----------------------------------------------------------  -------  ------  -------  ------------------------------------------------------
contracts/0.4.24/Lido.sol                                        173      39  77.46%   383-389, 492-500, 601-639, 696-746, 896, 921-926, 1005
contracts/0.4.24/StETH.sol                                        79       0  100.00%
contracts/0.4.24/StETHPermit.sol                                  15       0  100.00%
contracts/0.4.24/lib/Packed64x4.sol                                5       0  100.00%
contracts/0.4.24/lib/SigningKeys.sol                              36       0  100.00%
contracts/0.4.24/lib/StakeLimitUtils.sol                          37       0  100.00%
contracts/0.4.24/nos/NodeOperatorsRegistry.sol                   485       0  100.00%
contracts/0.4.24/oracle/LegacyOracle.sol                          72       0  100.00%
contracts/0.4.24/utils/Pausable.sol                                9       0  100.00%
contracts/0.4.24/utils/Versioned.sol                               5       0  100.00%
contracts/0.6.12/WstETH.sol                                       17       0  100.00%
contracts/0.8.25/Accounting.sol                                   85      81  4.71%    114-481
contracts/0.8.25/interfaces/ILido.sol                              0       0  100.00%
contracts/0.8.25/interfaces/IOracleReportSanityChecker.sol         0       0  100.00%
contracts/0.8.25/interfaces/IPostTokenRebaseReceiver.sol           0       0  100.00%
contracts/0.8.25/interfaces/IStakingRouter.sol                     0       0  100.00%
contracts/0.8.25/interfaces/IWithdrawalQueue.sol                   0       0  100.00%
contracts/0.8.25/utils/Versioned.sol                              11      11  0.00%    26-55
contracts/0.8.25/vaults/StakingVault.sol                          66      47  28.79%   66, 84-106, 114, 127-186, 196-207
contracts/0.8.25/vaults/VaultBeaconChainDepositor.sol             21      19  9.52%    47-93
contracts/0.8.25/vaults/VaultDashboard.sol                        33      20  39.39%   35, 60-138
contracts/0.8.25/vaults/VaultFactory.sol                          18       0  100.00%
contracts/0.8.25/vaults/VaultHub.sol                             147     108  26.53%   108-117, 141, 157, 163, 183-452
contracts/0.8.25/vaults/VaultStaffRoom.sol                        48      37  22.92%   50-57, 67, 89-177
contracts/0.8.25/vaults/interfaces/IBeaconProxy.sol                0       0  100.00%
contracts/0.8.25/vaults/interfaces/IHubVault.sol                   0       0  100.00%
contracts/0.8.25/vaults/interfaces/IReportReceiver.sol             0       0  100.00%
contracts/0.8.25/vaults/interfaces/IStakingVault.sol               0       0  100.00%
contracts/0.8.4/WithdrawalsManagerProxy.sol                       61       0  100.00%
contracts/0.8.9/BeaconChainDepositor.sol                          21       2  90.48%   48, 51
contracts/0.8.9/Burner.sol                                        72       0  100.00%
contracts/0.8.9/DepositSecurityModule.sol                        104       0  100.00%
contracts/0.8.9/EIP712StETH.sol                                   16       0  100.00%
contracts/0.8.9/LidoExecutionLayerRewardsVault.sol                16       0  100.00%
contracts/0.8.9/LidoLocator.sol                                   19       0  100.00%
contracts/0.8.9/OracleDaemonConfig.sol                            28       0  100.00%
contracts/0.8.9/StakingRouter.sol                                303       0  100.00%
contracts/0.8.9/WithdrawalQueue.sol                               88       0  100.00%
contracts/0.8.9/WithdrawalQueueBase.sol                          146       0  100.00%
contracts/0.8.9/WithdrawalQueueERC721.sol                         89       0  100.00%
contracts/0.8.9/WithdrawalVault.sol                               21       0  100.00%
contracts/0.8.9/lib/Math.sol                                       4       0  100.00%
contracts/0.8.9/lib/PositiveTokenRebaseLimiter.sol                22       0  100.00%
contracts/0.8.9/lib/UnstructuredRefStorage.sol                     2       0  100.00%
contracts/0.8.9/oracle/AccountingOracle.sol                      171       1  99.42%   674
contracts/0.8.9/oracle/BaseOracle.sol                             89       1  98.88%   397
contracts/0.8.9/oracle/HashConsensus.sol                         263       1  99.62%   1005
contracts/0.8.9/oracle/ValidatorsExitBusOracle.sol                91      91  0.00%    96-461
contracts/0.8.9/proxy/OssifiableProxy.sol                         17       0  100.00%
contracts/0.8.9/sanity_checks/OracleReportSanityChecker.sol      155       0  100.00%
contracts/0.8.9/utils/DummyEmptyContract.sol                       0       0  100.00%
contracts/0.8.9/utils/PausableUntil.sol                           31       0  100.00%
contracts/0.8.9/utils/Versioned.sol                               11       0  100.00%
contracts/0.8.9/utils/access/AccessControl.sol                    23       0  100.00%
contracts/0.8.9/utils/access/AccessControlEnumerable.sol           9       0  100.00%
contracts/testnets/sepolia/SepoliaDepositAdapter.sol              21      21  0.00%    49-100
TOTAL                                                           3255     479  85.28%

Diff against master

Filename                                                       Stmts    Miss  Cover
-----------------------------------------------------------  -------  ------  --------
contracts/0.4.24/Lido.sol                                        -39     +39  -22.54%
contracts/0.4.24/StETH.sol                                        +7       0  +100.00%
contracts/0.4.24/nos/NodeOperatorsRegistry.sol                   -27       0  +100.00%
contracts/0.8.25/Accounting.sol                                  +85     +81  +4.71%
contracts/0.8.25/interfaces/ILido.sol                              0       0  +100.00%
contracts/0.8.25/interfaces/IOracleReportSanityChecker.sol         0       0  +100.00%
contracts/0.8.25/interfaces/IPostTokenRebaseReceiver.sol           0       0  +100.00%
contracts/0.8.25/interfaces/IStakingRouter.sol                     0       0  +100.00%
contracts/0.8.25/interfaces/IWithdrawalQueue.sol                   0       0  +100.00%
contracts/0.8.25/utils/Versioned.sol                             +11     +11  +100.00%
contracts/0.8.25/vaults/StakingVault.sol                         +66     +47  +28.79%
contracts/0.8.25/vaults/VaultBeaconChainDepositor.sol            +21     +19  +9.52%
contracts/0.8.25/vaults/VaultDashboard.sol                       +33     +20  +39.39%
contracts/0.8.25/vaults/VaultFactory.sol                         +18       0  +100.00%
contracts/0.8.25/vaults/VaultHub.sol                            +147    +108  +26.53%
contracts/0.8.25/vaults/VaultStaffRoom.sol                       +48     +37  +22.92%
contracts/0.8.25/vaults/interfaces/IBeaconProxy.sol                0       0  +100.00%
contracts/0.8.25/vaults/interfaces/IHubVault.sol                   0       0  +100.00%
contracts/0.8.25/vaults/interfaces/IReportReceiver.sol             0       0  +100.00%
contracts/0.8.25/vaults/interfaces/IStakingVault.sol               0       0  +100.00%
contracts/0.8.9/Burner.sol                                        +1       0  +100.00%
contracts/0.8.9/DepositSecurityModule.sol                        -24       0  +100.00%
contracts/0.8.9/LidoLocator.sol                                   +1       0  +100.00%
contracts/0.8.9/StakingRouter.sol                                -13       0  +100.00%
contracts/0.8.9/oracle/AccountingOracle.sol                      -19      -1  +0.47%
contracts/0.8.9/sanity_checks/OracleReportSanityChecker.sol      -77       0  +100.00%
TOTAL                                                           +239    +361  -10.81%

Results for commit: 7166610

Minimum allowed coverage is 95%

♻️ This comment has been updated with latest results

Copy link
Member

@folkyatina folkyatina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Initialization order could be straightened a bit, imho

contracts/0.8.25/Accounting.sol Outdated Show resolved Hide resolved
contracts/0.8.25/vaults/StakingVault.sol Outdated Show resolved Hide resolved
contracts/0.8.25/vaults/StakingVault.sol Outdated Show resolved Hide resolved
/// @notice mapping from vault address to its socket
/// @dev if vault is not connected to the hub, its index is zero
mapping(IHubVault => uint256) private vaultIndex;
// keccak256(abi.encode(uint256(keccak256("VaultHub")) - 1)) & ~bytes32(uint256(0xff))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we have some linter/slither to check it?

@folkyatina folkyatina merged commit a0ed62c into feat/vaults Nov 29, 2024
8 of 9 checks passed
@folkyatina folkyatina deleted the feat/staking-vault-init branch November 29, 2024 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants