Contributors from the Lido ValSet workstream have prepared a voting script for the upcoming protocol upgrades, based on the previously approved LIP-23, LIP-25, and LIP-26 proposals.
The voting script consists of 33 independent steps, and the successful execution of the script will result in:
This process will ensure that all modules are fully operational and updated.
Note: All contract addresses can be verified at Lido's deployed contracts documentation.
The solution passed audits by Ackee Blockchain and MixBytes:
The voting script will be added to the omnibus on-chain Aragon vote, including the following actions:
Update Lido locator implementation to 0x3ABc4764f0237923d52056CFba7E9AEBf87113D3
.
New implementation contains updated addresses of the Deposit Security Module and Oracle Report Sanity Checker contracts.
Revoke STAKING_MODULE_PAUSE_ROLE
role on Staking Router from old Deposit Security Module.
STAKING_MODULE_PAUSE_ROLE
role: 0x00b1e70095ba5bacc3202c3db9faf1f7873186f0ed7b6c84e80c0018dcc6e38eRevoke STAKING_MODULE_RESUME_ROLE
role on Staking Router from old Deposit Security Module.
STAKING_MODULE_RESUME_ROLE
role: 0x9a2f67efb89489040f2c48c3b2c38f719fba1276678d2ced3bd9049fb5edc6b2Grant STAKING_MODULE_UNVETTING_ROLE
role on Staking Router to new Deposit Security Module.
This role is required for ability to unvet Node Operators' keys by Deposit Security Module Contract, it is a brand new role which was introduced as part of current Staking Router upgrade (see step #5).
STAKING_MODULE_UNVETTING_ROLE
role: 0x240525496a9dc32284b17ce03b43e539e4bd81414634ee54395030d793463b57Update Staking Router implementation to 0x89eDa99C0551d4320b56F82DDE8dF2f8D2eF81aA
.
Call finalize upgrade on Staking Router.
Save the maxDepositsPerBlock
, minDepositBlockDistance
, and the new priorityExitShareThreshold
for both the Curated and Simple DVT modules in the Staking Router's state. This also updates the contract version to 2
.
Note: Previously, the maxDepositsPerBlock
and minDepositBlockDistance
values, which were shared across all modules, were stored in the Deposit Security Module contract.
Add new NodeOperatorsRegistry implementation to APM Node Operators Registry app repo.
5.0.0
Update NodeOperatorsRegistry app. SetApp on Lido DAO (Kernel).
Finalize Node Operators Registry upgrade.
The method call will clear deprecated total keys count storage and bumps the contract version to 3
.
Add new SimpleDVT implementation to SimpleDVT app Repo.
2.0.0
Update SimpleDVT app. SetApp on Lido DAO (Kernel).
Finalize SimpleDVT upgrade.
The method call clears deprecated total keys count storage and bumps the contract version to 3
.
Simple DVT (Node Operators Registry): 0xaE7B191A31f627b4eB1d4DaC64eaB9976995b433 (proxy)
Update Accounting Oracle implementation to 0x0e65898527E77210fB0133D00dd4C0E86Dc29bC7
.
Finalize Accounting Oracle upgrade and set consensus version to 2
.
Grant MANAGE_CONSENSUS_VERSION_ROLE
role on Validator Exit Bus Oracle to Aragon Agent.
Update Validator Exit Bus Oracle consensus version to 2
.
Revoke MANAGE_CONSENSUS_VERSION_ROLE
role on Validator Exit Bus Oracle from Aragon Agent.
Remove old UpdateTargetValidatorLimits factory for SimpleDVT from EasyTrack.
Add new UpdateTargetValidatorLimits factory for SimpleDVT to EasyTrack.
The permissions
parameter value (0xae7b191a31f627b4eb1d4dac64eab9976995b43308a679ad
) is a combination of the Simple DVT contract address and the signature of the updateTargetValidatorsLimits
method with the parameter types ("uint", "uint", "uint")
.
Add Community Staking Module 0xdA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F
to Staking Router.
Grant REQUEST_BURN_SHARES_ROLE
role on Burner to CSAccounting.
This role is required for ability to burn stETH tokens in case of operator’s penalties.
Grant RESUME_ROLE
role on CSM to Aragon Agent.
Resume Community Staking Module.
The module deployed on pause, preventing the creation of new operators until the module is connected to the Staking Router. Calling the resume method activates the module.
Revoke RESUME_ROLE
role on CSM from Aragon Agent.
Update initial epoch on CSHashConsensus
326715
Add CSMSettleElStealingPenalty factory to EasyTrack.
Instadapp rotates the address used in the Lido Oracle set from 0x1ca0fec59b86f549e1f1184d97cb47794c8af58d
to 0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12
.
0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d
from HashConsensus for AccountingOracle.
0xd624b08c83baecf0807dd2c6880c3154a5f0b288
is HashConsensus for AccountingOracle0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
is Aragon Agent contract0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d
is the old oracle address5
is the quorum, that remains unchanged and can be verified on the current contract state0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d
from HashConsensus for ValidatorsExitBusOracle.
0x7fadb6358950c5faa66cb5eb8ee5147de3df355a
is HashConsensus for ValidatorsExitBusOracle0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
is Aragon Agent contract0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d
is the old oracle address5
is the quorum, that remains unchanged and can be verified on the current contract stateMANAGE_MEMBERS_AND_QUORUM_ROLE
role on CSHashConsensus to Aragon Agent.
This role is required for ability to manage members and quorum on CSHashConsensus contract.
0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
is Aragon Agent contract0x71093eff8d8599b5fa340d665ad60fa7c80688e4
is CSHashConsensus for CSFeeOracle announced on the research forum and audited by MixBytes and Ackee Blockchain0x66a484cf1a3c6ef8dfd59d24824943d2853a29d96f34a01271efc55774452a51
is MANAGE_MEMBERS_AND_QUORUM_ROLE
role. The hash can be verified by calling corresponding function on the contract0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d
from CSHashConsensus for CSFeeOracle.
0x71093eff8d8599b5fa340d665ad60fa7c80688e4
is CSHashConsensus for CSFeeOracle announced on the research forum and audited by MixBytes and Ackee Blockchain0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
is Aragon Agent contract0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d
is the old oracle address5
is the quorum, that remains unchanged and can be verified on the current contract state0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12
to HashConsensus for AccountingOracle.
0xd624b08c83baecf0807dd2c6880c3154a5f0b288
is HashConsensus for AccountingOracle.0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
is Aragon Agent contract0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12
is the new oracle address5
is the quorum, that remains unchanged and can be verified on the current contract state0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12
to HashConsensus for ValidatorsExitBusOracle.
0x7fadb6358950c5faa66cb5eb8ee5147de3df355a
is HashConsensus for ValidatorsExitBus.0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
is Aragon Agent contract0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12
is the new oracle address5
is the quorum, that remains unchanged and can be verified on the current contract state0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12
to CSHashConsensus for CSFeeOracle.
0x71093eff8d8599b5fa340d665ad60fa7c80688e4
is CSHashConsensus for CSFeeOracle announced on the research forum and audited by MixBytes and Ackee Blockchain0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c
is Aragon Agent contract0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12
is the new oracle address5
is the quorum, that remains unchanged and can be verified on the current contract state