Skip to content
Merged
Show file tree
Hide file tree
Changes from 67 commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
8eb3196
feat: add v3 phase 2 script
dry914 Dec 30, 2025
a16e675
test: init test for V3 phase 2
dry914 Dec 30, 2025
a3e4d3c
test: add scenario tests for factories
dry914 Dec 30, 2025
b731cb9
test: update expected vote id
dry914 Dec 30, 2025
0746f00
test: add event checks
dry914 Jan 4, 2026
90e736b
test: fix permitions test
dry914 Jan 4, 2026
da46aaf
test: local abi for events
dry914 Jan 4, 2026
c5b822c
test: force local events for vaultHub
dry914 Jan 4, 2026
675f597
feat: update CSM shareLimit and exit priority threshold
failingtwice Jan 8, 2026
bd77a79
feat: grant CSHashConsensus MANAGE_FRAME_CONFIG_ROLE to TwoPhaseFrame…
failingtwice Jan 8, 2026
753b29a
feat: move role grant to dg items
failingtwice Jan 9, 2026
bdb7340
test: add tests for CSM and oracle changes
failingtwice Jan 9, 2026
9d3f792
feat: update vote date
failingtwice Jan 12, 2026
8d965e9
feat: using placeholder PDG address to fix tests
failingtwice Jan 12, 2026
e2f202b
test: use custom helper for validating module update events
failingtwice Jan 12, 2026
65878dd
test: check that only the expected parameters have changed
failingtwice Jan 12, 2026
972563f
chore: add real addresses of some factories
dry914 Jan 12, 2026
c749e56
feat: add TwoPhaseFramConfigUpdate abi
failingtwice Jan 12, 2026
8d2e6c7
test: add ET factories checks
dry914 Jan 12, 2026
28bd742
feat: resume PDG
failingtwice Jan 12, 2026
53daa83
Merge pull request #582 from lidofinance/feat/v3-phase2-et
failingtwice Jan 13, 2026
f8df8a4
Merge branch 'feat/next-vote' of https://github.com/lidofinance/scrip…
failingtwice Jan 13, 2026
104293c
test: add a scenario test for frame offset contract
failingtwice Jan 13, 2026
b451e52
fix: add more context to storage manipulation
failingtwice Jan 13, 2026
8126d3e
feat: raise external shares ratio to 30%
failingtwice Jan 13, 2026
bd41e99
fix: use helper to upgrade validation
failingtwice Jan 13, 2026
4af0a00
fix: minor improvements
failingtwice Jan 13, 2026
10ce8e3
test: update vote id
failingtwice Jan 13, 2026
047a05d
fix: remove convert
failingtwice Jan 13, 2026
fa8f75a
feat: update vote date
failingtwice Jan 13, 2026
9990003
feat: update deployed addresses
failingtwice Jan 13, 2026
4d37a79
enable all CI tests
iamnp Jan 14, 2026
2715912
update DG items descriptions
iamnp Jan 14, 2026
55a47c6
update voting items descriptions
iamnp Jan 14, 2026
eddb0bf
items desc finalized
iamnp Jan 14, 2026
7dffcde
update formatting
iamnp Jan 14, 2026
9a58a70
update formatting (fix)
iamnp Jan 14, 2026
74e7c83
test: use existing validator
failingtwice Jan 14, 2026
7bf67c5
Merge branch 'feat/v3-phase-2' of https://github.com/lidofinance/scri…
failingtwice Jan 14, 2026
4c1104e
fix: reorganize DG items
failingtwice Jan 14, 2026
817abb4
fix: update date
failingtwice Jan 14, 2026
e563875
fix: remove unused vars
failingtwice Jan 14, 2026
826476e
feat: test offset reverts
failingtwice Jan 14, 2026
95e8a96
fix: items descriptions
iamnp Jan 15, 2026
9a29d23
feat: update easytrack var names for better clarity
failingtwice Jan 15, 2026
f527951
fix: uncomment asserts
failingtwice Jan 15, 2026
934a271
refactor: DRY the heck out of it
failingtwice Jan 15, 2026
e75fe01
test: vaulthub cannot mint more than external share limit
failingtwice Jan 15, 2026
21fc3e9
test: mint up to limit first, then attempt to overmint
failingtwice Jan 15, 2026
0bc3ecd
test: fix csm limits
dry914 Jan 15, 2026
1844ef8
test: fix permition test
dry914 Jan 15, 2026
2ff8235
test: fix gate seal test
dry914 Jan 15, 2026
192e887
test: fix snap tests
dry914 Jan 15, 2026
1424565
Merge pull request #584 from lidofinance/feat/v3-phase-2-ci
failingtwice Jan 16, 2026
5aace07
test: duplicate constants instead of reusing
failingtwice Jan 16, 2026
ad6c33c
Merge branch 'feat/v3-phase-2' of https://github.com/lidofinance/scri…
failingtwice Jan 16, 2026
42c6de6
fix: public CI runners
iamnp Jan 17, 2026
606fb0b
feat: add IPFS desc + test
iamnp Jan 17, 2026
a06a1aa
test: fix snap test
dry914 Jan 17, 2026
a025b9e
test: change epsilon value
dry914 Jan 17, 2026
382bcc3
chore: use develop for core tests
tamtamchik Jan 17, 2026
ee21eb4
Merge pull request #585 from lidofinance/test/v3-phase-2-snap
tamtamchik Jan 18, 2026
01f58e3
feat: update vote id
failingtwice Jan 19, 2026
4b8fd47
Merge pull request #580 from lidofinance/feat/v3-phase-2
iamnp Jan 19, 2026
04a86f0
fix: reorder test items
failingtwice Jan 19, 2026
8c69d2d
feat: check roles
failingtwice Jan 19, 2026
a760cad
Merge pull request #587 from lidofinance/fix/reorder-test-items
iamnp Jan 19, 2026
ddc3f82
Vote 2026/01/26 Hoodi
iamnp Jan 23, 2026
18038d7
added no reward address test
iamnp Jan 23, 2026
d4f09ab
small fixes
iamnp Jan 26, 2026
1ef2cc3
fix IPFS desc
iamnp Jan 26, 2026
942faa6
feat: update vote execution time
failingtwice Jan 26, 2026
d425da7
feat: archive vote
failingtwice Jan 26, 2026
a6c414f
Merge branch 'master' of https://github.com/lidofinance/scripts into …
failingtwice Jan 26, 2026
d40219c
archive vote
iamnp Jan 26, 2026
f4cc2cd
chore: restore test
tamtamchik Jan 28, 2026
873ed73
Merge pull request #591 from lidofinance/archive-198
iamnp Jan 28, 2026
54d712b
chore: archive test
failingtwice Jan 29, 2026
fadc0d0
test: restore snapshot tests
dry914 Jan 29, 2026
3a25164
Merge pull request #592 from lidofinance/vote-198-post-dg-enact
iamnp Jan 29, 2026
115bb38
Merge pull request #590 from lidofinance/vote-2026-01-26-hoodi
iamnp Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/core_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@ on:
- "feat/rc2"
- "feat/rc1"
- "feat/next-vote"
- "feat/v3-phase-2"
schedule:
- cron: "0 0 * * TUE"

jobs:
run-tests:
name: Core repo tests in docker
runs-on: [voting-private-runners]
runs-on: [ubuntu-latest]
timeout-minutes: 120

services:
Expand All @@ -35,7 +36,7 @@ jobs:
- name: Run init script
run: docker exec -e CORE_BRANCH tests-runner bash -c 'PYTHONPATH=$PWD make init'
env:
CORE_BRANCH: master
CORE_BRANCH: develop

- name: Run node
run: docker exec -e ETH_RPC_URL --detach tests-runner bash -c 'NODE_PORT=8545 make node'
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dual_governance_regression.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- "feat/rc2"
- "feat/rc1"
- "feat/next-vote"
- "feat/v3-phase-2"
workflow_dispatch:

jobs:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/normal_vote_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
jobs:
run-tests-normal-1:
name: Brownie fork NORMAL tests 1
runs-on: [voting-private-runners]
runs-on: [ubuntu-latest]
timeout-minutes: 150

services:
Expand All @@ -36,7 +36,7 @@ jobs:

run-tests-normal-2:
name: Brownie fork NORMAL tests 2
runs-on: [voting-private-runners]
runs-on: [ubuntu-latest]
timeout-minutes: 150

services:
Expand Down
7 changes: 4 additions & 3 deletions configs/config_mainnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,8 @@
CS_MODULE_NAME = "Community Staking"
CS_MODULE_MODULE_FEE_BP = 600
CS_MODULE_TREASURY_FEE_BP = 400
CS_MODULE_TARGET_SHARE_BP = 500
CS_MODULE_PRIORITY_EXIT_SHARE_THRESHOLD = 625
CS_MODULE_TARGET_SHARE_BP = 750
CS_MODULE_PRIORITY_EXIT_SHARE_THRESHOLD = 900
CS_MODULE_MAX_DEPOSITS_PER_BLOCK = 30
CS_MODULE_MIN_DEPOSIT_BLOCK_DISTANCE = 25

Expand Down Expand Up @@ -407,6 +407,7 @@
CS_PERMISSIONLESS_GATE_ADDRESS = "0xcF33a38111d0B1246A3F38a838fb41D626B454f0"
CS_VERIFIER_V2_ADDRESS = "0xdC5FE1782B6943f318E05230d688713a560063DC"
CS_GATE_SEAL_V2_ADDRESS = "0xE1686C2E90eb41a48356c1cC7FaA17629af3ADB3"
TWO_PHASE_FRAME_CONFIG_UPDATE = "0xb2B4DB1491cbe949ae85EfF01E0d3ee239f110C1"

# DualGovernance
DUAL_GOVERNANCE = "0xC1db28B3301331277e307FDCfF8DE28242A4486E"
Expand Down Expand Up @@ -530,7 +531,7 @@
OPERATOR_GRID = "0xC69685E89Cefc327b43B7234AC646451B27c544d"
LAZY_ORACLE = "0x5DB427080200c235F2Ae8Cd17A7be87921f7AD6c"
PREDEPOSIT_GUARANTEE = "0xF4bF42c6D6A0E38825785048124DBAD6c9eaaac3"
VAULTS_ADAPTER = "0xe2DE6d2DefF15588a71849c0429101F8ca9FB14D"
VAULTS_ADAPTER = "0x28F9Ac198C4E0FA6A9Ad2c2f97CB38F1A3120f27"
GATE_SEAL_V3 = "0x881dAd714679A6FeaA636446A0499101375A365c"
STAKING_VAULT_BEACON = "0x5FbE8cEf9CCc56ad245736D3C5bAf82ad54Ca789"

Expand Down
1 change: 1 addition & 0 deletions interfaces/TwoPhaseFrameConfigUpdate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"inputs":[{"internalType":"address","name":"oracle","type":"address"},{"components":[{"internalType":"uint256","name":"reportsToProcessBeforeOffsetPhase","type":"uint256"},{"internalType":"uint256","name":"reportsToProcessBeforeRestorePhase","type":"uint256"},{"internalType":"uint256","name":"offsetPhaseEpochsPerFrame","type":"uint256"},{"internalType":"uint256","name":"restorePhaseFastLaneLengthSlots","type":"uint256"}],"internalType":"struct TwoPhaseFrameConfigUpdate.PhasesConfig","name":"phasesConfig","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CurrentReportMainPhaseIsNotCompleted","type":"error"},{"inputs":[],"name":"FastLanePeriodCannotBeLongerThanFrame","type":"error"},{"inputs":[],"name":"FastLaneTooShort","type":"error"},{"inputs":[],"name":"NoneOfPhasesExpired","type":"error"},{"inputs":[],"name":"OffsetPhaseNotExecuted","type":"error"},{"inputs":[],"name":"PhaseAlreadyExecuted","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentSlot","type":"uint256"},{"internalType":"uint256","name":"deadlineSlot","type":"uint256"}],"name":"PhaseExpired","type":"error"},{"inputs":[{"internalType":"uint256","name":"actual","type":"uint256"},{"internalType":"uint256","name":"expected","type":"uint256"}],"name":"UnexpectedLastProcessingRefSlot","type":"error"},{"inputs":[],"name":"ZeroEpochsPerFrame","type":"error"},{"inputs":[],"name":"ZeroOracleAddress","type":"error"},{"inputs":[],"name":"ZeroReportsToEnableUpdate","type":"error"},{"anonymous":false,"inputs":[],"name":"OffsetPhaseExecuted","type":"event"},{"anonymous":false,"inputs":[],"name":"RestorePhaseExecuted","type":"event"},{"inputs":[],"name":"GENESIS_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HASH_CONSENSUS","outputs":[{"internalType":"contract IConsensusContract","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OFFSET_PHASE_FAST_LANE_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE","outputs":[{"internalType":"contract IReportAsyncProcessor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECONDS_PER_SLOT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SLOTS_PER_EPOCH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"executeOffsetPhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeRestorePhase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getExpirationStatus","outputs":[{"internalType":"bool","name":"offsetExpired","type":"bool"},{"internalType":"bool","name":"restoreExpired","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReadyForOffsetPhase","outputs":[{"internalType":"bool","name":"ready","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReadyForRestorePhase","outputs":[{"internalType":"bool","name":"ready","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"offsetPhase","outputs":[{"internalType":"uint256","name":"expectedProcessingRefSlot","type":"uint256"},{"internalType":"uint256","name":"expirationSlot","type":"uint256"},{"internalType":"uint256","name":"epochsPerFrame","type":"uint256"},{"internalType":"uint256","name":"fastLaneLengthSlots","type":"uint256"},{"internalType":"bool","name":"executed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceRoleWhenExpired","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restorePhase","outputs":[{"internalType":"uint256","name":"expectedProcessingRefSlot","type":"uint256"},{"internalType":"uint256","name":"expirationSlot","type":"uint256"},{"internalType":"uint256","name":"epochsPerFrame","type":"uint256"},{"internalType":"uint256","name":"fastLaneLengthSlots","type":"uint256"},{"internalType":"bool","name":"executed","type":"bool"}],"stateMutability":"view","type":"function"}]
Loading
Loading