Skip to content

Commit 606fb0b

Browse files
committed
feat: add IPFS desc + test
1 parent 42c6de6 commit 606fb0b

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

scripts/upgrade_2026_01_20_v3_phase_2.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,15 @@
124124

125125

126126
# ============================= Description ==================================
127-
# TODO <a description for IPFS (will appear in the voting description on vote.lido.fi)>
128-
IPFS_DESCRIPTION = ""
127+
IPFS_DESCRIPTION = """
128+
1. **Activate Lido V3: Phase 2 (Full Launch)**, as [proposed on the Forum](https://research.lido.fi/t/lido-v3-design-implementation-proposal/10665/15). Updated audits: [Consensys Diligence](https://github.com/lidofinance/audits/blob/main/Consensys%20Diligence%20Lido%20V3%20Security%20Audit%20-%2011-2025.pdf), [Certora](https://github.com/lidofinance/audits/blob/main/Certora%20Lido%20V3%20Audit%20Report%20-%2012-2025.pdf), [MixBytes](https://github.com/lidofinance/audits/blob/main/MixBytes%20Lido%20V3%20Security%20Audit%20Report%20-%2012-2025.pdf). BLS Library audit: [Sigma Prime](https://github.com/lidofinance/audits/blob/main/Sigma%20Prime%20-%20Lido%20BLS%20Library%20Security%20Assessment%20Report%20v2.0%20-%2001-2026.pdf).
129+
1. Revoke OperatorsGrid & VaultHub configuration roles from Lido V3 Phase 1 VaultsAdapter contract and grant them to Phase 2 VaultsAdapter contract. Items 1.1-1.6.
130+
2. Enable Predeposit Guarantee guided deposit flows as a part of Full Launch. 1.7-1.10.
131+
3. Raise the maximum allowed stETH external shares ratio to 30%. Items 1.11-1.13.
132+
4. Remove Lido V3 Phase 1 Easy Track factories and add Phase 2 factories enabling [stVault Committee](https://docs.lido.fi/multisigs/committees/#216-stvaults-committee) to configure VaultHub and OperatorGrid contracts. Items 2-15.
133+
2. **Raise Community Staking Module stake share limit to 7.5% and priority exit threshold to 9%**, as [proposed on the Forum](https://research.lido.fi/t/community-staking-module/5917/182). Item 1.14.
134+
3. **Grant `MANAGE_FRAME_CONFIG_ROLE` on CS HashConsensus to [TwoPhaseFrameConfigUpdate contract](https://etherscan.io/address/0xb2b4db1491cbe949ae85eff01e0d3ee239f110c1)**, as [proposed on the Forum](https://research.lido.fi/t/offset-csm-performance-oracle-report-weekday/11077). Audit & deployment verification: [MixBytes](https://github.com/lidofinance/audits/blob/main/MixBytes%20CSM%20Performance%20Oracle%20Security%20Audit%20Report%2001-26.pdf). Item 1.15.
135+
"""
129136

130137

131138
# ================================ Main ======================================

tests/test_2026_01_20.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
from utils.test.easy_track_helpers import _encode_calldata, create_and_enact_motion
2727
from utils.test.rpc_helpers import set_storage_at
2828

29+
from utils.voting import find_metadata_by_vote_id
30+
from utils.ipfs import get_lido_vote_cid_from_str
31+
2932

3033
# ============================================================================
3134
# ============================== Import vote =================================
@@ -134,7 +137,7 @@
134137
EXPECTED_VOTE_EVENTS_COUNT = 15
135138
EXPECTED_DG_EVENTS_FROM_AGENT = 15 # 6 role revoke/grant + 1 CSM update + 1 CS HashConsensus role grant + 1 PDG impl upgrade + 3 PDG unpause (grant RESUME_ROLE, resume, revoke RESUME_ROLE) + 3 set max external ratio (grant STAKING_CONTROL_ROLE, set ratio, revoke STAKING_CONTROL_ROLE)
136139
EXPECTED_DG_EVENTS_COUNT = 15
137-
IPFS_DESCRIPTION_HASH = "" # TODO: Update after IPFS upload
140+
IPFS_DESCRIPTION_HASH = "bafkreifgql6otl5jmnyyusvapdhvycyino7rysp54f4cjucm6l34se67dm"
138141

139142
# Storage slot for lastProcessingRefSlot in CSFeeOracle
140143
LAST_PROCESSING_REF_SLOT_STORAGE_KEY = web3.keccak(text="lido.BaseOracle.lastProcessingRefSlot").hex()
@@ -231,8 +234,7 @@ def test_vote(helpers, accounts, ldo_holder, vote_ids_from_env, stranger, dual_g
231234
assert NEW_FORCE_VALIDATOR_EXITS_IN_VAULT_HUB_FACTORY not in initial_factories, "NEW_FORCE_VALIDATOR_EXITS_IN_VAULT_HUB_FACTORY should not be present before vote"
232235
assert NEW_UPDATE_VAULTS_FEES_IN_OPERATOR_GRID_FACTORY not in initial_factories, "NEW_UPDATE_VAULTS_FEES_IN_OPERATOR_GRID_FACTORY should not be present before vote"
233236

234-
# TODO Check IPFS description hash
235-
# assert get_lido_vote_cid_from_str(find_metadata_by_vote_id(vote_id)) == IPFS_DESCRIPTION_HASH
237+
assert get_lido_vote_cid_from_str(find_metadata_by_vote_id(vote_id)) == IPFS_DESCRIPTION_HASH
236238

237239
vote_tx: TransactionReceipt = helpers.execute_vote(vote_id=vote_id, accounts=accounts, dao_voting=voting)
238240
display_voting_events(vote_tx)

0 commit comments

Comments
 (0)