Skip to content

feat: draft for staking router v3 vote contract#1664

Open
skhomuti wants to merge 1 commit intofeat/staking-router-3.0from
srv3-vote-script
Open

feat: draft for staking router v3 vote contract#1664
skhomuti wants to merge 1 commit intofeat/staking-router-3.0from
srv3-vote-script

Conversation

@skhomuti
Copy link
Copy Markdown

A short summary of the changes.

Context

What the reviewer needs to know

Problem

What problem this PR solves, link relevant issue if it exists

Solution

Your proposed solution

@skhomuti skhomuti requested a review from a team as a code owner February 20, 2026 12:28
Comment on lines +701 to +708
function getAgentEVMScript() public view returns (bytes memory) {
VoteItem[] memory voteItems = getVoteItems();
CallsScriptBuilder.Context memory scriptBuilder = CallsScriptBuilder.create();
for (uint256 i = 0; i < voteItems.length; ++i) {
scriptBuilder.addCall(voteItems[i].call.to, voteItems[i].call.data);
}
return scriptBuilder.getResult();
}

Check warning

Code scanning / Slither

Unused return Medium

@github-actions
Copy link
Copy Markdown

badge

Hardhat Unit Tests Coverage Summary

Details
Filename                                                                Stmts    Miss  Cover    Missing
--------------------------------------------------------------------  -------  ------  -------  ------------------------------------------------------------------------------------------------------------------------------
contracts/0.4.24/Lido.sol                                                 275      11  96.00%   921-940, 1035-1047
contracts/0.4.24/StETH.sol                                                 80       0  100.00%
contracts/0.4.24/StETHPermit.sol                                           15       0  100.00%
contracts/0.4.24/lib/FastLaneStorage.sol                                   11       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                                   41       0  100.00%
contracts/0.4.24/nos/NodeOperatorsRegistry.sol                            435       0  100.00%
contracts/0.4.24/utils/Pausable.sol                                         9       0  100.00%
contracts/0.4.24/utils/UnstructuredStorageExt.sol                          14       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/CLTopUpVerifier.sol                                       34       1  97.06%   93
contracts/0.8.25/ConsolidationBus.sol                                      45       0  100.00%
contracts/0.8.25/ConsolidationGateway.sol                                  47       2  95.74%   201, 232
contracts/0.8.25/ConsolidationMigrator.sol                                 65       0  100.00%
contracts/0.8.25/TopUpGateway.sol                                          85       2  97.65%   206, 220
contracts/0.8.25/ValidatorExitDelayVerifier.sol                            75       0  100.00%
contracts/0.8.25/lib/BeaconChainDepositor.sol                              40       5  87.50%   44, 47, 82, 92, 97
contracts/0.8.25/sr/SRLib.sol                                             242      47  80.58%   93, 119-161, 176-182, 572-577, 729-762, 820-823
contracts/0.8.25/sr/SRStorage.sol                                          13       3  76.92%   24, 32, 85
contracts/0.8.25/sr/SRTypes.sol                                             0       0  100.00%
contracts/0.8.25/sr/SRUtils.sol                                            45       9  80.00%   91, 98, 115-120, 137, 160-169
contracts/0.8.25/sr/StakingRouter.sol                                     267      19  92.88%   113, 305, 329, 409-428, 664-665, 688, 706, 768, 820, 920-925, 985
contracts/0.8.25/utils/AccessControlConfirmable.sol                         2       0  100.00%
contracts/0.8.25/utils/Confirmable2Addresses.sol                            5       0  100.00%
contracts/0.8.25/utils/Confirmations.sol                                   37       0  100.00%
contracts/0.8.25/utils/PausableUntilWithRoles.sol                           3       0  100.00%
contracts/0.8.25/vaults/LazyOracle.sol                                    134      18  86.57%   203-209, 248, 276-279, 436, 449, 467, 515, 556-558, 650, 658
contracts/0.8.25/vaults/OperatorGrid.sol                                  196       1  99.49%   203
contracts/0.8.25/vaults/PinnedBeaconProxy.sol                               6       0  100.00%
contracts/0.8.25/vaults/StakingVault.sol                                  111      14  87.39%   307-341
contracts/0.8.25/vaults/ValidatorConsolidationRequests.sol                 48       3  93.75%   183, 187, 199
contracts/0.8.25/vaults/VaultFactory.sol                                   34       0  100.00%
contracts/0.8.25/vaults/VaultHub.sol                                      425      76  82.12%   257-266, 281-287, 342-366, 383, 552-553, 595-688, 997-999, 1087-1091, 1147, 1202-1209, 1495-1496, 1511-1521
contracts/0.8.25/vaults/dashboard/Dashboard.sol                           137       8  94.16%   183-201, 327, 636-649
contracts/0.8.25/vaults/dashboard/NodeOperatorFee.sol                      70       0  100.00%
contracts/0.8.25/vaults/dashboard/Permissions.sol                          47       2  95.74%   321-330
contracts/0.8.25/vaults/interfaces/IPinnedBeaconProxy.sol                   0       0  100.00%
contracts/0.8.25/vaults/interfaces/IPredepositGuarantee.sol                 0       0  100.00%
contracts/0.8.25/vaults/interfaces/IStakingVault.sol                        0       0  100.00%
contracts/0.8.25/vaults/interfaces/IVaultFactory.sol                        0       0  100.00%
contracts/0.8.25/vaults/lib/PinnedBeaconUtils.sol                           5       0  100.00%
contracts/0.8.25/vaults/lib/RecoverTokens.sol                               5       0  100.00%
contracts/0.8.25/vaults/lib/RefSlotCache.sol                               36       0  100.00%
contracts/0.8.25/vaults/predeposit_guarantee/CLProofVerifier.sol           16       1  93.75%   214
contracts/0.8.25/vaults/predeposit_guarantee/MeIfNobodyElse.sol             3       0  100.00%
contracts/0.8.25/vaults/predeposit_guarantee/PredepositGuarantee.sol      213      12  94.37%   483-503, 532, 671, 678, 700
contracts/0.8.9/Accounting.sol                                             94       2  97.87%   368-369
contracts/0.8.9/Burner.sol                                                 92       0  100.00%
contracts/0.8.9/DepositSecurityModule.sol                                 127       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                                            28       0  100.00%
contracts/0.8.9/OracleDaemonConfig.sol                                     28       0  100.00%
contracts/0.8.9/TokenRateNotifier.sol                                      36      36  0.00%    35-130
contracts/0.8.9/TriggerableWithdrawalsGateway.sol                          54       1  98.15%   271
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                                        40       2  95.00%   89-90
contracts/0.8.9/WithdrawalVaultEIP7685.sol                                 40       0  100.00%
contracts/0.8.9/lib/ExitLimitUtils.sol                                     35       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                               189       6  96.83%   601, 604, 608-612
contracts/0.8.9/oracle/BaseOracle.sol                                      89       1  98.88%   401
contracts/0.8.9/oracle/HashConsensus.sol                                  263       1  99.62%   1005
contracts/0.8.9/oracle/ValidatorsExitBus.sol                              138      10  92.75%   458-471, 541
contracts/0.8.9/oracle/ValidatorsExitBusOracle.sol                         52       1  98.08%   217
contracts/0.8.9/proxy/OssifiableProxy.sol                                  17       0  100.00%
contracts/0.8.9/proxy/WithdrawalsManagerProxy.sol                          60       0  100.00%
contracts/0.8.9/sanity_checks/OracleReportSanityChecker.sol               225     142  36.89%   241-246, 278-291, 320-343, 361-378, 410-545, 598-889, 904-905, 908-909, 924-925, 928-929, 932-933, 936-937, 940-941, 948, 1015
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/common/utils/PausableUntil.sol                                   29       0  100.00%
contracts/tooling/AlertingHarness.sol                                      54       1  98.15%   97
contracts/tooling/sepolia/SepoliaDepositAdapter.sol                        21      21  0.00%    55-106
TOTAL                                                                    5602     458  91.82%

Diff against master

Filename                                                       Stmts    Miss  Cover
-----------------------------------------------------------  -------  ------  --------
contracts/0.4.24/Lido.sol                                         -6       0  -0.09%
contracts/0.4.24/lib/FastLaneStorage.sol                         +11       0  +100.00%
contracts/0.8.25/CLTopUpVerifier.sol                             +34      +1  +97.06%
contracts/0.8.25/ConsolidationBus.sol                            +45       0  +100.00%
contracts/0.8.25/ConsolidationGateway.sol                        +47      +2  +95.74%
contracts/0.8.25/ConsolidationMigrator.sol                       +65       0  +100.00%
contracts/0.8.25/TopUpGateway.sol                                +85      +2  +97.65%
contracts/0.8.25/lib/BeaconChainDepositor.sol                    +40      +5  +87.50%
contracts/0.8.25/sr/SRLib.sol                                   +242     +47  +80.58%
contracts/0.8.25/sr/SRStorage.sol                                +13      +3  +76.92%
contracts/0.8.25/sr/SRTypes.sol                                    0       0  +100.00%
contracts/0.8.25/sr/SRUtils.sol                                  +45      +9  +80.00%
contracts/0.8.25/sr/StakingRouter.sol                           +267     +19  +92.88%
contracts/0.8.9/Accounting.sol                                    -2       0  -0.05%
contracts/0.8.9/DepositSecurityModule.sol                         -1       0  +100.00%
contracts/0.8.9/LidoLocator.sol                                   +2       0  +100.00%
contracts/0.8.9/WithdrawalVault.sol                               +8      +2  -5.00%
contracts/0.8.9/WithdrawalVaultEIP7685.sol                       +40       0  +100.00%
contracts/0.8.9/oracle/AccountingOracle.sol                      +15      +6  -3.17%
contracts/0.8.9/sanity_checks/OracleReportSanityChecker.sol       -7    +130  -57.94%
TOTAL                                                           +943    +226  -3.51%

Results for commit: f7c0d7b

Minimum allowed coverage is 95%

♻️ This comment has been updated with latest results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants