Skip to content
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
3119 commits
Select commit Hold shift + click to select a range
06ff85e
docs: more clarity for annual balance sanity check
folkyatina Oct 1, 2025
e2d48cd
Merge pull request #1484 from lidofinance/feat/fix-pause
tamtamchik Oct 1, 2025
ac68c5c
fix(StETH): check uint128 overflow on share mint
folkyatina Oct 1, 2025
bdb71a9
chore: more intuitive constants in UnstructuredStorageExt
folkyatina Oct 1, 2025
d9878f3
chore: optimize VaultHub bytecode
folkyatina Oct 1, 2025
92a32d7
docs(Dashboard): improve comments
folkyatina Oct 2, 2025
3a99ddc
chore: update rights for ET contracts
dry914 Oct 2, 2025
727bbb0
fix(Lido): make staking pause/resume revert if paused/resumed
folkyatina Oct 2, 2025
516f7e8
fix(Lido): simplify the pause check
folkyatina Oct 3, 2025
2ec78d2
Merge pull request #1489 from lidofinance/fix/vaulthub-polish
folkyatina Oct 4, 2025
863eeb8
Merge pull request #1493 from lidofinance/fix/revertable-staking-pause
folkyatina Oct 4, 2025
8d4265f
fix(PDG): fix reentrancy path in PDG
folkyatina Oct 6, 2025
66d902f
chore(PDG): fix indentation
folkyatina Oct 6, 2025
5af1280
fix: upgrade after TW went live on mainnet
arwer13 Oct 6, 2025
4f252fc
chore: merge deployed-mainnet.json from develop
arwer13 Oct 6, 2025
55c7e33
fix: more tidying up for V3VoteScript.sol
arwer13 Oct 6, 2025
4c5a074
fix(VaultHub): insufficient shortfall due to rounding
failingtwice Oct 6, 2025
6e7aac5
fix: #1476
tamtamchik Oct 6, 2025
294fd95
Merge remote-tracking branch 'origin/fix/upgrade-after-tw' into feat/…
tamtamchik Oct 6, 2025
c5736b8
chore: cleanup scripts a bit
tamtamchik Oct 6, 2025
b7cc102
feat: add deploy scripts stub
tamtamchik Oct 6, 2025
e66be55
Merge pull request #1496 from lidofinance/fix/upgrade-after-tw
arwer13 Oct 7, 2025
80753cc
feat: update shortfall formula
failingtwice Oct 7, 2025
482a944
Merge pull request #1492 from lidofinance/feat/update-et-rights
arwer13 Oct 7, 2025
dd3312d
Merge branch 'feat/audit-5' into feat/fix-1476
tamtamchik Oct 7, 2025
c978a2e
chore: fixes after review
tamtamchik Oct 7, 2025
ed1d5d8
Merge pull request #1495 from lidofinance/fix/pdg-reentrancy
folkyatina Oct 7, 2025
c7320bb
fix: overflow in node operator fee
folkyatina Oct 7, 2025
fddc419
Merge branch 'feat/audit-5' into feat/deploy-v3-hoodi
tamtamchik Oct 7, 2025
f9d8136
fix: ao_consensus_version
tamtamchik Oct 7, 2025
a9091e2
docs(PDG): more comments
folkyatina Oct 7, 2025
8f8b86a
Merge pull request #1500 from lidofinance/fix/no-fees-overflow
folkyatina Oct 7, 2025
1da30f1
chore: probably better branching
tamtamchik Oct 7, 2025
e60be77
feat: use precise shortfall calculation
failingtwice Oct 7, 2025
12acdb5
docs(VaultHub): clarify EIP-7002 withdrawal fee
folkyatina Oct 7, 2025
88ce964
Merge pull request #1498 from lidofinance/feat/fix-1476
TheDZhon Oct 7, 2025
41dcc20
fix: remove old comments
failingtwice Oct 7, 2025
be85f78
feat: update bad debt case
failingtwice Oct 7, 2025
a405524
feat: add vaultsAdapter mocks to mainnet and hoodi upgrades
arwer13 Oct 7, 2025
9fe1dd0
test: shortfall fuzzing wip
failingtwice Oct 7, 2025
0c09e9f
feat: update deploy parameters for hoodi
arwer13 Oct 7, 2025
7dc3330
Merge branch 'feat/audit-5' into feat/deploy-v3-hoodi
tamtamchik Oct 7, 2025
9d0b450
chore: fix validate config
tamtamchik Oct 7, 2025
2f5751f
feat(upgrade): add gate seal deployment for hoodi
arwer13 Oct 7, 2025
f435de4
Merge remote-tracking branch 'refs/remotes/origin/feat/deploy-v3-hood…
arwer13 Oct 7, 2025
f4aceb9
feat: add auxiliary hoodi deploy addresses
arwer13 Oct 8, 2025
5869aca
chore: update deploy params
dry914 Oct 8, 2025
d43361e
chore: remove locator address
dry914 Oct 8, 2025
5de69c2
Merge pull request #1491 from lidofinance/feat/audit-5
folkyatina Oct 8, 2025
bde88cd
feat: new Hoodi deploy
arwer13 Oct 8, 2025
05371a5
Merge pull request #1501 from lidofinance/feat/update-easy-params
arwer13 Oct 8, 2025
6d3069b
fix: upgrade-params-xxx.json schema
arwer13 Oct 8, 2025
c3bade0
Merge branch 'develop' into feat/deploy-v3-hoodi
arwer13 Oct 8, 2025
bbd87c3
feat: disable gate seal integration test on scratch
arwer13 Oct 8, 2025
0e5f465
fix: skipping gate seal integration tests on scratch
arwer13 Oct 8, 2025
81ffb73
fix: attempt to fix mainnet upgrade integration test
arwer13 Oct 8, 2025
317439b
test: fix vaults tests on Hoodi
folkyatina Oct 8, 2025
f60527e
fix: validate configs
tamtamchik Oct 8, 2025
9416a90
test: add shareRate provisioning for the default tier
folkyatina Oct 10, 2025
57dbe5e
chore: verify stVault contracts
tamtamchik Oct 10, 2025
bdcbeaf
feat(Dashboard): reset settled growth on disconnect
failingtwice Oct 13, 2025
66bec36
feat: reset settled growth on abandon
failingtwice Oct 14, 2025
bdeff50
feat: disburse fee circuit breaker
failingtwice Oct 14, 2025
0782a40
feat: revert disburse when paused
failingtwice Oct 14, 2025
d4ae689
feat: special function for high fee disburse
failingtwice Oct 14, 2025
3155612
feat: 1% threshold rationale
failingtwice Oct 14, 2025
8177d45
feat: rename event field
failingtwice Oct 14, 2025
038f7dd
Merge pull request #1509 from lidofinance/confirmation-event
failingtwice Oct 14, 2025
fa50152
Merge pull request #1499 from lidofinance/feat/deploy-v3-hoodi
tamtamchik Oct 14, 2025
0f5cfdf
feat: disburse abnormally high fee as admin
failingtwice Oct 15, 2025
ec3b2fa
feat: rename high fee threshold
failingtwice Oct 15, 2025
1a2f158
feat: pass settled growth to connect to avoid foot violence
failingtwice Oct 15, 2025
e35aa1f
feat: use a simpler equation with slight overcompensation with ceilDiv
failingtwice Oct 15, 2025
f55e2ba
Merge branch 'audit-6' of https://github.com/lidofinance/core into sh…
failingtwice Oct 15, 2025
21814a1
test: delete wip fuzz test
failingtwice Oct 15, 2025
72b72ec
feat: hammer down rounding with 10 wei overcompensation
failingtwice Oct 15, 2025
54af2bc
fix(PDG): prevent frontrun of the batch of activations
folkyatina Oct 15, 2025
b41b419
fix(PDG): check that array lengths match
folkyatina Oct 15, 2025
2e59e77
chore: fix a natspec
folkyatina Oct 15, 2025
0376681
fix(OperatorGrid): more parameter validation for admin methods
folkyatina Oct 15, 2025
093e651
chore: fixed some comments and on event
folkyatina Oct 15, 2025
515f34e
chore: fix comment
folkyatina Oct 15, 2025
4492527
test: fix tests
folkyatina Oct 15, 2025
39c4703
chore: fix a comment
folkyatina Oct 15, 2025
d636abf
test: fix pdg integration test for hoodi
folkyatina Oct 15, 2025
55b71dd
chore: fix params filename
folkyatina Oct 15, 2025
a56d4be
chore: fix path to upgrade params
folkyatina Oct 15, 2025
132de30
test: fix upgrade template test flow
folkyatina Oct 15, 2025
6b758ed
chore: fix warnings
folkyatina Oct 15, 2025
a2103d5
test: fix upgrade template testing
folkyatina Oct 15, 2025
b9d66cb
docs: better natspec for Dashboard
folkyatina Oct 16, 2025
ca97347
chore: fix a warning
folkyatina Oct 16, 2025
4204ee6
chore: fix some comments
folkyatina Oct 16, 2025
ffee488
fix(Dashboard): add return bool for transferVaultOwnership
folkyatina Oct 16, 2025
acba5fe
chore: more natspec improvements
folkyatina Oct 16, 2025
9e795b0
fix(OperatorGrid): add confirm expiry setter
folkyatina Oct 16, 2025
90b43f0
Merge pull request #1511 from lidofinance/fix/pdg-small-fixes
folkyatina Oct 16, 2025
f643fe8
Merge branch 'audit-6' of https://github.com/lidofinance/core into fi…
failingtwice Oct 16, 2025
96fb51a
test: fix hardcoded values
failingtwice Oct 16, 2025
7521df1
Merge pull request #1506 from lidofinance/fix-no-fee
folkyatina Oct 17, 2025
1f44239
Merge pull request #1497 from lidofinance/shortfall-rounding-fix
failingtwice Oct 17, 2025
4b2ca37
feat: add vault factory chaining for upgrade
folkyatina Oct 17, 2025
f6a4d14
fix: fix upgrade deploy for the new factory
folkyatina Oct 17, 2025
ad8e59d
test: fix a flaky test
folkyatina Oct 17, 2025
1afcebc
Merge remote-tracking branch 'origin/audit-6' into feat/upgreadable-v…
folkyatina Oct 17, 2025
c59fe93
fix: integrations upgrade run without GENESIS_TIME
arwer13 Oct 18, 2025
18577c7
feat: fail upgrade on integrations if execute tx gas > fusaka limit
arwer13 Oct 18, 2025
5fa608b
chore: remove TW obsolete stuff
arwer13 Oct 18, 2025
a758468
feat(V3Template): make upgrade expiry timestamp configurable in ctor
arwer13 Oct 18, 2025
4199bbd
feat(upgrade): add missing OracleDaemonConfig parameters to V3VoteScript
arwer13 Oct 18, 2025
47ebd49
refactor: remove interfaces in return values of external function
arwer13 Oct 18, 2025
8869a3a
fix: incorrect outdated interface in V3TemporaryAdmin
arwer13 Oct 18, 2025
55a4429
fix: improve check-interfaces.ts - now all interfaces checks pass
arwer13 Oct 18, 2025
0436884
test: add some tests for the factory
folkyatina Oct 19, 2025
5e71d92
fix: fixes after the review
folkyatina Oct 19, 2025
4c9ce94
chore(LazyOracle): add natspec and rearrange methods a bit
folkyatina Oct 19, 2025
176d889
Merge pull request #1513 from lidofinance/feat/upgreadable-vault-factory
folkyatina Oct 19, 2025
8f9cc04
fix(TW): hardened assembly
folkyatina Oct 19, 2025
25c2be3
Merge pull request #1515 from lidofinance/fix/prosecco-review-comments
folkyatina Oct 19, 2025
7cae7a1
Merge pull request #1512 from lidofinance/audit-6
folkyatina Oct 19, 2025
20b3076
chore: integration tests for jail/slashing res
dry914 Oct 20, 2025
6e65416
feat: hoodi common testnet patch 1
tamtamchik Oct 21, 2025
9be293e
chore: add another warning comment to unguaranteedDepositToBeaconChain
folkyatina Oct 22, 2025
f890313
fix: add a try catch for fee disburse during disconnect
folkyatina Oct 22, 2025
c4ad0b6
Merge pull request #1521 from lidofinance/feat/hoodi-update-1
tamtamchik Oct 22, 2025
e68b394
test: add unhealthy vault tests
dry914 Oct 22, 2025
fc9f8ae
feat: add CI workflow to check Hoodi V3 state via state-mate
arwer13 Oct 23, 2025
4a09563
fix: linter
arwer13 Oct 23, 2025
a95bff9
fix(ci): state mate hoodi flow run triggers
arwer13 Oct 23, 2025
9fa8893
fix(ci): hoodi state flow - add missing corepack enable
arwer13 Oct 23, 2025
f2ffc87
Revert "refactor: remove interfaces in return values of external func…
arwer13 Oct 23, 2025
e6b6c30
feat: set maxExternalRatioBP to 3% upon upgrade (value configurable)
arwer13 Oct 23, 2025
c535910
fix: disburse last fees in two steps
folkyatina Oct 23, 2025
411a576
test(Dashboard): fix tests for fees disbursement during disconnection
folkyatina Oct 23, 2025
5c86ed2
test: add redemptions tests
dry914 Oct 23, 2025
860ea27
chore: better event for fee disburse
folkyatina Oct 23, 2025
9293a1b
test: better test for feeLeftover
folkyatina Oct 23, 2025
8debc84
test: fix NodeOperatorFee tests
folkyatina Oct 23, 2025
008b043
fix(OperatorGrid): simplify changeTier a bit
folkyatina Oct 23, 2025
d845db5
fix(OperatorGrid): remove double validation for confirmation expiry
folkyatina Oct 23, 2025
4a1a128
chore(VaultHub): clarify comments in healthShortfall calculation
folkyatina Oct 23, 2025
63d10ae
docs(VaultFactory): update role assignment comments for clarity
folkyatina Oct 23, 2025
cb7ecb2
Merge pull request #1523 from lidofinance/fix/no-fee-disburse
folkyatina Oct 24, 2025
250f39a
feat(Lido): add initialMaxExternalRatioBP parameter to finalizeUpgrad…
folkyatina Oct 24, 2025
05376b9
fix(OperatorGrid): explicit revert for not connected vaults in change…
folkyatina Oct 24, 2025
b9839f5
Merge pull request #1526 from lidofinance/fix/various-fixes
folkyatina Oct 24, 2025
2e54cbd
test: add socialization tests
dry914 Oct 25, 2025
b0e62fb
Merge pull request #1528 from lidofinance/feat/audit-7
folkyatina Oct 27, 2025
0e41641
Merge branch 'feat/vaults' into feat/vote-follow-ups
arwer13 Oct 27, 2025
7b17c47
fix: scratch config validation
arwer13 Oct 27, 2025
034c05e
test: fix a test
folkyatina Oct 27, 2025
192add8
test: fix a test
folkyatina Oct 27, 2025
0e64f80
Merge pull request #1514 from lidofinance/feat/vote-follow-ups
folkyatina Oct 27, 2025
1e984a2
fix: burning external shares with paused staking
tamtamchik Oct 27, 2025
a1e9488
test: internalization integration tests
dry914 Oct 27, 2025
0645d37
fix: use delta in _maxLockableValue
tamtamchik Oct 27, 2025
414effc
fix(NodeOperatorFee): set settled growth on disburse if fee rate is zero
folkyatina Oct 28, 2025
a70b5ab
fix(Lido): better check for maxExternalRatioBP in finalizeUpgrade_v3
folkyatina Oct 28, 2025
9021219
chore: add natspec
tamtamchik Oct 28, 2025
26c10ad
Merge pull request #1532 from lidofinance/fix/lido-finalize-upgrade-c…
folkyatina Oct 28, 2025
f67622a
chore: remove unused error
folkyatina Oct 28, 2025
fc2696d
Merge pull request #1531 from lidofinance/fix/retroactive-fees
folkyatina Oct 28, 2025
d10bdfa
Merge pull request #1529 from lidofinance/fix/revert-on-burn-on-pause
folkyatina Oct 28, 2025
cd30b4a
Revert "fix: burning external shares with paused staking"
folkyatina Oct 28, 2025
9f622b3
Merge pull request #1534 from lidofinance/revert-1529-fix/revert-on-b…
folkyatina Oct 28, 2025
111a983
Merge pull request #1535 from lidofinance/fix/revert-on-burn-on-pause
folkyatina Oct 28, 2025
fe61a7c
Merge pull request #1530 from lidofinance/fix/total-minting-capacity
folkyatina Oct 28, 2025
089ebda
fix(LazyOracle): correct condition for maxLiabilityShares validation
folkyatina Oct 28, 2025
662d2bc
docs(LazyOracle): clarify validation conditions for maxLiabilityShares
folkyatina Oct 28, 2025
37d967b
test(LazyOracle): fix maxLiabilityShares test
folkyatina Oct 28, 2025
f9620d5
test(LazyOracle): enhance integration tests for report data validation
folkyatina Oct 28, 2025
79870b4
Merge pull request #1536 from lidofinance/fix/sanity-check-max-ls
folkyatina Oct 29, 2025
3366c94
Merge pull request #1533 from lidofinance/feat/audit-8
folkyatina Oct 29, 2025
7aaf6a9
Merge pull request #1535 from lidofinance/fix/revert-on-burn-on-pause
folkyatina Oct 28, 2025
138921e
fix(NodeOperatorFee): charge fee quarantined value
folkyatina Oct 29, 2025
68b4b28
fix(VaultHub): pause VaultHub implementation
folkyatina Oct 29, 2025
59f1185
feat: pause VaultHub implementation
tamtamchik Oct 29, 2025
513fb10
chore: after review
tamtamchik Oct 29, 2025
0802c17
fix(Dashboard): disable fee accrual by default on disconnect
folkyatina Oct 30, 2025
a6273f8
test: fix unit tests
folkyatina Oct 30, 2025
f06ed84
test: restore integration tests
folkyatina Oct 30, 2025
3503873
feat(LazyOracle): add totalValueReminder to quarantine logic and upda…
folkyatina Oct 31, 2025
c2d6f7c
fix(LazyOracle): fix typo
folkyatina Nov 1, 2025
77b58ba
fix(NodeOperatorFee): after review polish
folkyatina Nov 1, 2025
6547709
test: extract and improve quarantine tests
folkyatina Nov 1, 2025
cfdc077
chore: remove a bit of dead code
folkyatina Nov 1, 2025
3c7b1ae
fix(Dashboard): remove _currentSettledGrowth param from connect methods
folkyatina Nov 1, 2025
4717e16
fix(OperatorGrid): final solution of the wrong shortfall problem
folkyatina Nov 1, 2025
c4f1389
test: fix vault hub creation
tamtamchik Nov 1, 2025
713f3c8
Merge pull request #1537 from lidofinance/fix/pause-vault-hub-impl
tamtamchik Nov 1, 2025
1b8f838
fix(LazyOracle): small fixes after review
folkyatina Nov 1, 2025
95ade9c
fix(LazyOracle): case with slashing after quarantine start
folkyatina Nov 1, 2025
34665a9
test(VaultHub): add a test for shortfall on last numbers from Certora
folkyatina Nov 2, 2025
f453de4
Merge pull request #1538 from lidofinance/fix/no-fee-revamp-2
folkyatina Nov 2, 2025
33006a9
Merge pull request #1540 from lidofinance/fix/shortfall-again
folkyatina Nov 2, 2025
ebf1a00
test: fix a test
folkyatina Nov 2, 2025
3807a31
Merge pull request #1541 from lidofinance/feat/audit-9
folkyatina Nov 2, 2025
d4fc0d5
feat: hoodi patch 2
tamtamchik Nov 3, 2025
cec7282
feat(upgrade): add EasyTrack new factoring upon V3 voting
arwer13 Nov 3, 2025
5ffe3d7
feat(upgrade): add EasyTrack new factoring upon V3 voting
arwer13 Nov 3, 2025
1a79634
test: add bad debt cases
dry914 Nov 4, 2025
bc9f31e
Merge branch 'feat/vaults' into chore/new-integration-tests
dry914 Nov 4, 2025
82564ae
test: disconnect is NOT blocked by jail
dry914 Nov 4, 2025
b7dc37a
test: add rounding difference to force rebalance test
dry914 Nov 4, 2025
f448657
chore: remove transferToVault
tamtamchik Nov 4, 2025
080312e
test(nor): cleanup transferToVault test
tamtamchik Nov 4, 2025
bee0ebc
Merge pull request #1545 from lidofinance/feat/remove-transfer-to-vault
tamtamchik Nov 4, 2025
ec2e87b
Merge pull request #1542 from lidofinance/feat/hoodi-update-2
tamtamchik Nov 4, 2025
6f738c0
Merge pull request #1524 from lidofinance/feat/ci-hoodi-state
folkyatina Nov 5, 2025
f857d07
Merge pull request #1543 from lidofinance/feat/upgrade-plug-et
tamtamchik Nov 5, 2025
0073f59
feat: batchValidatorStatuses getter for LidoOracle
folkyatina Nov 5, 2025
fd00424
fix: integration tests after review
dry914 Nov 6, 2025
021b56a
test: add balance check
dry914 Nov 6, 2025
c286120
Merge pull request #1519 from lidofinance/chore/new-integration-tests
tamtamchik Nov 6, 2025
5e85de2
feat: allow update fees on unhealthy vault
tamtamchik Nov 6, 2025
c0c392b
fix(VaultHub): possible fix for shortfall problem
folkyatina Nov 6, 2025
aba3fc5
test: fix unit tests
folkyatina Nov 6, 2025
453512d
chore(VaultHub): fix the rounding problem
folkyatina Nov 7, 2025
63a4e7a
Merge pull request #1546 from lidofinance/feat/batchValidatorStatuses
folkyatina Nov 7, 2025
692bd37
chore: update natspec
tamtamchik Nov 7, 2025
63bc1cd
chore: update natspec
tamtamchik Nov 7, 2025
b3d01ed
Merge pull request #1547 from lidofinance/feat/fix-fees-update
tamtamchik Nov 7, 2025
3642a7a
fix(VaultHub): add early return for small values in shortfall
folkyatina Nov 7, 2025
ffa5ef9
fix(VaultHub): better place for early return
folkyatina Nov 7, 2025
2fc26c8
fix(OperatorGrid): force 10 bp difference between frt and rr
folkyatina Nov 7, 2025
b3aba11
test: fix shortfall integration tests
folkyatina Nov 7, 2025
6c7ee2c
Merge pull request #1548 from lidofinance/fix/shortfall-again-2
folkyatina Nov 7, 2025
f9ce0a0
Merge pull request #1549 from lidofinance/feat/audit-10
folkyatina Nov 10, 2025
b52b540
fix(Accounting): using the recent badSharesToInternalize in simulation
folkyatina Nov 10, 2025
cc34eba
feat: disallow max staking limit
tamtamchik Nov 10, 2025
44fd430
test: fix unit tests
folkyatina Nov 10, 2025
79fe122
Merge pull request #1553 from lidofinance/fix/internalize-bad-debt-si…
folkyatina Nov 10, 2025
fa220d9
Merge pull request #1554 from lidofinance/feat/disallow-max-staking-l…
folkyatina Nov 10, 2025
c38a37c
feat: add only for contract verification
tamtamchik Nov 10, 2025
e54d545
Merge pull request #1555 from lidofinance/feat/audit-11
tamtamchik Nov 10, 2025
6786a24
Merge branch 'feat/vaults' into feat/patch-oracle
tamtamchik Nov 10, 2025
958a8f9
chore: patch 3
tamtamchik Nov 10, 2025
8361697
feat: disable role renouncement
failingtwice Nov 11, 2025
10c9125
Merge pull request #1557 from lidofinance/dashboard/disable-role-reno…
failingtwice Nov 11, 2025
db60f92
feat: remove role grants from agent
failingtwice Nov 12, 2025
f0c4b72
feat: update mainnet upgrade params
failingtwice Nov 12, 2025
40e0692
feat: remove unused assert func
failingtwice Nov 13, 2025
5811c7a
Merge pull request #1558 from lidofinance/remove-role-grants-to-agent
folkyatina Nov 13, 2025
ca702c1
feat: update params, change frt, rename max maxRelativeShareLimitBP t…
failingtwice Nov 13, 2025
b7fd9be
Merge pull request #1559 from lidofinance/update-mainnet-params
failingtwice Nov 13, 2025
f9a9f80
Merge pull request #1556 from lidofinance/feat/patch-3
tamtamchik Nov 13, 2025
cbce2e9
fix(OperatorGrid): don't change tier if shareLimit is lower than liab…
folkyatina Nov 17, 2025
17e854a
fix(OperatorGrid): add the same restriction to update share limit
folkyatina Nov 18, 2025
86d5d86
Merge pull request #1561 from lidofinance/fix/change-tier-over-liability
folkyatina Nov 20, 2025
5b0dc6e
fix(V3Template): update an upgrade expiry timestamp
folkyatina Nov 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 15 additions & 6 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# RPC URL for a locally running node (Ganache, Anvil, Hardhat Network, etc.), used for scratch deployment and tests
LOCAL_RPC_URL=http://localhost:8555

LOCAL_LOCATOR_ADDRESS=
LOCAL_AGENT_ADDRESS=
LOCAL_VOTING_ADDRESS=
Expand All @@ -23,13 +22,13 @@ LOCAL_VALIDATOR_EXIT_DELAY_VERIFIER_ADDRESS=
LOCAL_VALIDATORS_EXIT_BUS_ORACLE_ADDRESS=
LOCAL_WITHDRAWAL_QUEUE_ADDRESS=
LOCAL_WITHDRAWAL_VAULT_ADDRESS=
LOCAL_STAKING_VAULT_FACTORY_ADDRESS=
LOCAL_STAKING_VAULT_BEACON_ADDRESS=
LOCAL_VALIDATOR_CONSOLIDATION_REQUESTS_ADDRESS=

# RPC URL for a separate, non Hardhat Network node (Anvil, Infura, Alchemy, etc.)
MAINNET_RPC_URL=http://localhost:8545

# RPC URL for Hardhat Network forking, required for running tests on mainnet fork with tracing (Infura, Alchemy, etc.)
# RPC URL for Hardhat Network forking, required for running tests on fork with tracing (Infura, Alchemy, etc.)
# https://hardhat.org/hardhat-network/docs/guides/forking-other-networks#forking-other-networks
FORK_RPC_URL=https://eth.drpc.org
RPC_URL=https://eth.drpc.org

# https://docs.lido.fi/deployed-contracts
MAINNET_LOCATOR_ADDRESS=0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb
Expand All @@ -53,12 +52,22 @@ MAINNET_STAKING_ROUTER_ADDRESS=
MAINNET_VALIDATORS_EXIT_BUS_ORACLE_ADDRESS=
MAINNET_WITHDRAWAL_QUEUE_ADDRESS=
MAINNET_WITHDRAWAL_VAULT_ADDRESS=
MAINNET_STAKING_VAULT_FACTORY_ADDRESS=
MAINNET_STAKING_VAULT_BEACON_ADDRESS=
MAINNET_VALIDATOR_CONSOLIDATION_REQUESTS_ADDRESS=

SEPOLIA_RPC_URL=
HOODI_RPC_URL=

# Scratch deployment via hardhat variables
DEPLOYER=0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
GENESIS_TIME=1639659600
SLOTS_PER_EPOCH=32
GAS_PRIORITY_FEE=1
GAS_MAX_FEE=100

# Etherscan API key for verifying contracts
ETHERSCAN_API_KEY=

# Local devnet private key
LOCAL_DEVNET_PK=0x0000000000000000000000000000000000000000000000000000000000000000
7 changes: 2 additions & 5 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ jobs:
- name: Common setup
uses: ./.github/workflows/setup

# Remove the integration tests from the test suite, as they require a mainnet fork to run properly
- name: Remove integration tests
run: rm -rf test/integration

- name: Collect coverage
run: yarn test:coverage

Expand All @@ -35,7 +31,8 @@ jobs:
with:
path: ./coverage/cobertura-coverage.xml
publish: true
threshold: 95
# TODO: restore to 95% before release
threshold: 80
diff: true
diff-branch: master
diff-storage: _core_coverage_reports
Expand Down
26 changes: 26 additions & 0 deletions .github/workflows/linters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,29 @@ jobs:

- name: Run typescript types check
run: yarn typecheck

format:
name: Format
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Common setup
uses: ./.github/workflows/setup

- name: Run format check
run: yarn format

validate-configs:
name: Validate Configs
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Common setup
uses: ./.github/workflows/setup

- name: Validate configurations
run: yarn validate:configs
33 changes: 18 additions & 15 deletions .github/workflows/tests-integration-mainnet.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
name: Integration Tests
name: Integration Tests On Upgrade
# For local testing of this scenario use ./scripts/dao-upgrade-and-test-on-fork.sh

on:
push:
schedule:
- cron: "0 10 */2 * *"
on: [push]

jobs:
test_hardhat_integration_fork:
name: Hardhat / Mainnet
runs-on: ubuntu-latest
timeout-minutes: 120
env:
NODE_OPTIONS: --max_old_space_size=7200
SKIP_GAS_REPORT: true
SKIP_CONTRACT_SIZE: true
SKIP_INTERFACES_CHECK: true

services:
hardhat-node:
image: ghcr.io/lidofinance/hardhat-node:2.24.3
image: ghcr.io/lidofinance/hardhat-node:2.26.0
ports:
- 8545:8545
- 8555:8545
env:
ETH_RPC_URL: "${{ secrets.ETH_RPC_URL }}"
DONT_SET_CHAIN_ID: true
HARDFORK: "prague"

steps:
Expand All @@ -32,28 +36,27 @@ jobs:
- name: Deploy upgrade
run: yarn upgrade:deploy
env:
RPC_URL: http://localhost:8545
# first acc of default mnemonic "test test ..."
DEPLOYER: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
RPC_URL: http://localhost:8555
DEPLOYER: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" # first acc of default mnemonic "test test ..."
GAS_PRIORITY_FEE: 1
GAS_MAX_FEE: 100
NETWORK_STATE_FILE: deployed-mainnet-upgrade.json
GENESIS_TIME: 1606824023
UPGRADE_PARAMETERS_FILE: scripts/upgrade/upgrade-params-mainnet.toml

- name: Mock Aragon voting
run: yarn upgrade:mock-voting
env:
RPC_URL: http://localhost:8545
RPC_URL: http://localhost:8555
NETWORK_STATE_FILE: deployed-mainnet-upgrade.json

- name: Workaround for not updated state error when forking a fork
run: yarn hardhat --network local run --no-compile scripts/utils/mine.ts
env:
RPC_URL: http://localhost:8545
RPC_URL: http://localhost:8555

- name: Run integration tests
run: yarn test:integration:fork:mainnet
run: yarn test:integration
env:
RPC_URL: http://localhost:8555
LOG_LEVEL: debug
RPC_URL: http://localhost:8545
NETWORK_STATE_FILE: deployed-mainnet-upgrade.json
9 changes: 6 additions & 3 deletions .github/workflows/tests-integration-scratch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,14 @@ jobs:
name: Hardhat / Scratch
runs-on: ubuntu-latest
timeout-minutes: 120
env:
SKIP_GAS_REPORT: true
SKIP_CONTRACT_SIZE: true
SKIP_INTERFACES_CHECK: true

services:
hardhat-node:
image: ghcr.io/lidofinance/hardhat-node:2.24.3-scratch
image: ghcr.io/lidofinance/hardhat-node:2.26.0-scratch
ports:
- 8555:8545

Expand All @@ -33,13 +37,12 @@ jobs:
GAS_PRIORITY_FEE: 1
GAS_MAX_FEE: 100
NETWORK_STATE_FILE: "deployed-local.json"
NETWORK_STATE_DEFAULTS_FILE: "scripts/scratch/deployed-testnet-defaults.json"
NETWORK_STATE_DEFAULTS_FILE: "scripts/defaults/testnet-defaults.json"

- name: Finalize scratch deployment
run: yarn hardhat --network local run --no-compile scripts/utils/mine.ts

- name: Run integration tests
run: yarn test:integration:fork:local
env:
LOG_LEVEL: "debug"
INTEGRATION_WITH_CSM: "off"
28 changes: 28 additions & 0 deletions .github/workflows/tests-integration-upgrade-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Integration Test For Upgrade Template

on: [push]

jobs:
test_hardhat_integration_fork_template:
name: Hardhat / Upgrade Template
runs-on: ubuntu-latest
timeout-minutes: 120
env:
SKIP_GAS_REPORT: true
SKIP_CONTRACT_SIZE: true
SKIP_INTERFACES_CHECK: true

steps:
- uses: actions/checkout@v4

- name: Common setup
uses: ./.github/workflows/setup

- name: Prepare network state file
run: cp deployed-mainnet.json deployed-mainnet-upgrade.json

- name: Run Upgrade Template Integration Tests
run: yarn test:integration:upgrade-template
env:
RPC_URL: "${{ secrets.ETH_RPC_URL }}"
UPGRADE_PARAMETERS_FILE: scripts/upgrade/upgrade-params-mainnet.toml
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@
.yarn/
.vscode/
.cursor/
.claude/

node_modules/
coverage/
state-mate/

coverage.json

Expand All @@ -25,6 +27,7 @@ lib/abi/*.json
.env
accounts.json
deployed-local.json
deployed-local-devnet.json
deployed-hardhat.json
deployed-local-devnet.json
deployed-mainnet-upgrade.json
Expand Down
2 changes: 2 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
yarn compile
yarn lint-staged
yarn typecheck
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20.12
22.15
3 changes: 3 additions & 0 deletions .solcover.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,8 @@ module.exports = {
// Skip contracts that are tested by Foundry tests
"common/lib", // 100% covered by test/common/*.t.sol
"0.8.9/lib/UnstructuredStorage.sol", // 100% covered by test/0.8.9/unstructuredStorage.t.sol
"openzeppelin",
"testnet",
"upgrade",
],
};
11 changes: 9 additions & 2 deletions .solhintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
contracts/Migrations.sol
contracts/0.6.11/deposit_contract.sol
contracts/openzeppelin/
contracts/0.8.9/utils/access/AccessControl.sol
contracts/0.8.9/utils/access/AccessControlEnumerable.sol

contracts/0.4.24/template/
contracts/0.6.11/deposit_contract.sol
contracts/0.6.12/
contracts/0.8.9/WithdrawalsManagerProxy.sol
contracts/0.8.9/LidoExecutionLayerRewardsVault.sol
3 changes: 0 additions & 3 deletions .vscode/extensions.json

This file was deleted.

8 changes: 0 additions & 8 deletions .vscode/settings.json

This file was deleted.

27 changes: 0 additions & 27 deletions .vscode/snippets.code-snippets

This file was deleted.

32 changes: 23 additions & 9 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ the [Lido Research Forum](https://research.lido.fi/).

### Requirements

- [Node.js](https://nodejs.org/en) version 20 (LTS) with `corepack` enabled
- [Node.js](https://nodejs.org/en) version 22 (LTS) with `corepack` enabled
- [Yarn](https://yarnpkg.com/) installed via corepack (see below)
- [Foundry](https://book.getfoundry.sh/) latest available version

Expand Down Expand Up @@ -117,16 +117,30 @@ the [Mocking and Harnessing Contracts](#mocking-and-harnessing-contracts) sectio

#### Unit Tests

Unit tests are crucial for ensuring the functionality of individual contracts and their components. These tests should
be written using Hardhat and placed in the `/tests` directory. Each subdirectory should correspond to the version of the
contract being tested, mirroring the structure of the `/contracts` directory.
Every contract must be accompanied by high-quality unit tests.
The [Moloch Testing Guide](https://github.com/MolochVentures/moloch/tree/master/test#readme) provides excellent recommendations,
though some guidelines may not apply directly to this project.

Follow the naming convention `*.test.ts` for unit test files, such as `myContract.test.ts`. This convention aids in the
easy identification and organization of tests.
> [!NOTE]
> Tests should not only verify correct functionality but also be clear and well-structured for thorough peer
> review—particularly for mission-critical Solidity code where tests are often as important as the implementation itself.

- All new features or code changes must include comprehensive, relevant tests.
- Refactoring should be performed separately from test modifications to maintain test integrity.
- Tests must be reliable and deterministic; flaky tests will not be accepted.
- The test suite runs automatically with every repository change, and all tests must pass before pull requests can be merged.
- Maintain test coverage as close to 100% as possible, which will be verified during pull request reviews.

Unit tests should be written using Hardhat and placed in the `/tests` directory.
The subdirectory structure should mirror the `/contracts` directory, with each subdirectory corresponding to the
Solidity version of the contracts being tested.

Use the naming convention `*.test.ts` for unit test files (e.g., `myContract.test.ts`) to ensure consistent
organization and easy identification of test files.

> [!NOTE]
> The project utilizes the `hardhat-coverage` plugin to generate coverage reports. Foundry-based tests are not included
> in the coverage.
> The project uses the `hardhat-coverage` plugin to generate coverage reports. Note that Foundry-based tests are not
> included in these coverage calculations.

#### Integration Tests

Expand Down Expand Up @@ -416,7 +430,7 @@ jobs:

services:
mainnet-fork:
image: hardhat/hardhat:2.22.8 # note: this is an example image, choose the appropriate one for your needs
image: hardhat/hardhat:2.23.0 # note: this is an example image, choose the appropriate one for your needs
ports:
- 8545:8545
env:
Expand Down
Loading