8000 [EPIC] stVaults by tamtamchik · Pull Request #874 · lidofinance/core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

[EPIC] stVaults #874

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2,267 commits into
base: feat/triggerable-exits
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2267 commits
Select commit Hold shift + click to select a range
9eef473
Merge pull request #1142 from lidofinance/feat/burner-proxy
TheDZhon Jun 9, 2025
b886de4
fix: change VO+NO flow
loga4 Jun 9, 2025
6282e6a
fix: add payable
loga4 Jun 9, 2025
f0655c3
chore: remove inOutDelta from batch
dry914 Jun 9, 2025
3606329
fix: removed multi-confirm modifier
loga4 Jun 9, 2025
ad4805c
feat: uint16.max fees
dry914 Jun 9, 2025
c35dda8
fix: linter
dry914 Jun 9, 2025
7a6b06c
fix: linter +1
dry914 Jun 9, 2025
f2abbec
fix: review fixes
loga4 Jun 10, 2025
93b8abf
chore: polishing after review
tamtamchik Jun 10, 2025
31cb1f0
fix: get different owner
loga4 Jun 10, 2025
f9f7e70
Merge branch 'feat/vaults' into feat/og-mconfirm
loga4 Jun 10, 2025
548785d
fix(VaultHub): small fixes of bad debt handling
folkyatina Jun 10, 2025
c96c50a
chore: update operator grid
tamtamchik Jun 10, 2025
e3b17f5
chore: update max locked calculations
tamtamchik Jun 10, 2025
ead6ebc
fix(vaults): use cached badDebtToInitialize
folkyatina Jun 10, 2025
4a193ab
Merge branch 'feat/vaults' into feat/lazy-sanity-checks
dry914 Jun 10, 2025
9e724a5
fix: integration scratch tests
dry914 Jun 10, 2025
97cbc21
fix: deploy of lazyOracle
dry914 Jun 10, 2025
d9c26f6
fix: double check liabilityShares on disconnect
folkyatina Jun 10, 2025
7e91b87
chore: update code once more
tamtamchik Jun 10, 2025
458f871
Merge remote-tracking branch 'origin/feat/obligations-ledger' into fe…
folkyatina Jun 10, 2025
749d954
fix: fix compilation
folkyatina Jun 10, 2025
6888695
fix: enable viaIR to reduce codesize
folkyatina Jun 10, 2025
eba989d
chore: revert pause logic
tamtamchik Jun 10, 2025
c0bf721
chore: update deploy steps
dry914 Jun 10, 2025
bebfcb5
chore: add quar doc
dry914 Jun 10, 2025
6c032dc
chore: update quar view
dry914 Jun 10, 2025
16f219a
test(integration): update tests to work on mainnet
tamtamchik Jun 10, 2025
fb18871
Merge branch 'feat/vaults' into feat/obligations
tamtamchik Jun 10, 2025
3745f5f
Merge branch 'feat/vaults' into feat/consolidation-request
kovalgek Jun 10, 2025
81910ee
feat: call increaseRewardsAdjustment of dashboard when consolidation …
kovalgek Jun 10, 2025
097fd71
test: fix some integrtion tests
folkyatina Jun 11, 2025
da109a1
test(integration): fix after merge
tamtamchik Jun 11, 2025
b025363
Update contracts/0.8.25/vaults/LazyOracle.sol
dry914 Jun 11, 2025
b6edf2e
Update contracts/0.8.25/vaults/LazyOracle.sol
dry914 Jun 11, 2025
ee93367
Update contracts/0.8.25/vaults/LazyOracle.sol
dry914 Jun 11, 2025
46d3ea9
Update contracts/0.8.25/vaults/LazyOracle.sol
dry914 Jun 11, 2025
175dd08
Update contracts/0.8.25/vaults/LazyOracle.sol
dry914 Jun 11, 2025
3b9388a
chore: review fixes
dry914 Jun 11, 2025
dae4320
Merge remote-tracking branch 'origin/feat/obligations-ledger' into fe…
folkyatina Jun 11, 2025
1ca11c7
Merge pull request #1153 from lidofinance/feat/uint16-max-fees-limit
TheDZhon Jun 11, 2025
c9706c8
fix(NodeOperatorFee): revert NO fee change if vault is in quarantine
failingtwice Jun 11, 2025
bb86ab8
Merge remote-tracking branch 'origin/feat/obligations-ledger' into fe…
folkyatina Jun 11, 2025
271dd03
chore: use memory for cache
dry914 Jun 11, 2025
4f0bdd2
chore: updates after review
tamtamchik Jun 11, 2025
ac0166d
chore: use safeCast lib
dry914 Jun 11, 2025
dd88543
fix: dashboard as admin, added confirmTimestamp to event
loga4 Jun 11, 2025
258e68a
fix: remove noble/bls, use chainsafe/blst
kovalgek Jun 11, 2025
cc0a7a5
fix: linter
loga4 Jun 11, 2025
81041fc
fix: update yarn.lock
kovalgek Jun 11, 2025
1b342cf
fix: update yarn.lock
tamtamchik Jun 11, 2025
24eb573
fix: removed unused events
loga4 Jun 11, 2025
10f2911
chore: updates after review
tamtamchik Jun 11, 2025
294d980
Merge pull request #1159 from lidofinance/fix/quarantine-adjustment
TheDZhon Jun 11, 2025
aae0b1d
Merge branch 'feat/triggerable-exits' into feat/rebase-on-tw
arwer13 Jun 11, 2025
7ab0ae4
fix: typo
loga4 Jun 11, 2025
924592c
feat: check vault connection, pass sum of valances instead of array f…
kovalgek Jun 11, 2025
995382b
Merge pull request #1094 from lidofinance/feat/og-mconfirm
TheDZhon Jun 11, 2025
2294dab
fix: upgrade deploy
arwer13 Jun 11, 2025
e7dd0c6
fix: move deploy to another place, add to upgrade
kovalgek Jun 11, 2025
abd8a56
Merge branch 'feat/vaults' into feat/consolidation-request
kovalgek Jun 11, 2025
ed50517
fix: naming
tamtamchik Jun 11, 2025
63116ec
fix: upgrade deploy
arwer13 Jun 11, 2025
825b6ce
Merge branch 'feat/vaults' into feat/obligations
tamtamchik Jun 11, 2025
0944fe4
Merge branch 'feat/vaults' into feat/rebase-on-tw
arwer13 Jun 11, 2025
99841d3
fix: forge-std submodule commit
arwer13 Jun 11, 2025
ece0659
chore: remove unused code
dry914 Jun 11, 2025
8e74d1a
fix: some unittests
arwer13 Jun 11, 2025
453f573
Merge branch 'feat/vaults' of into feat/lazy-sanity-checks
dry914 Jun 11, 2025
749c9ed
test(integration): fixes
tamtamchik Jun 11, 2025
139e8ea
fix: some Burner unit tests
arwer13 Jun 12, 2025
baec727
Merge remote-tracking branch 'origin/feat/obligations-ledger' into fe…
folkyatina Jun 12, 2025
6c3a9b4
Merge pull request #1103 from lidofinance/feat/lazy-sanity-checks
TheDZhon Jun 12, 2025
e1b5bac
chore: small fixes
tamtamchik Jun 12, 2025
88990a8
Merge 'feat/vaults' into 'feat/rebase-on-tw'
arwer13 Jun 12, 2025
7314df9
fix(VaultHub): broken lock on minting
folkyatina Jun 12, 2025
e91175e
chore: check-effect-interaction
folkyatina Jun 12, 2025
6a7e06d
Merge branch 'feat/triggerable-exits' into feat/rebase-on-tw
arwer13 Jun 12, 2025
3258090
feat: getSharesByPooledEthRoundUp
tamtamchik Jun 12, 2025
8b0ed84
fix: shares to rebalance on redemptions settlement
tamtamchik Jun 12, 2025
7a2f376
feat: remove IStakingVault import from SSZ and BLS
arwer13 Jun 12, 2025
c747de6
fix(VaultHub): use ether in decreaseRedemptions
folkyatina Jun 12, 2025
30a76cb
Merge branch 'feat/vaults' into feat/obligations
tamtamchik Jun 12, 2025
82e4d2c
fix(VaultHub): constant gas consumption for refSlot cache
folkyatina Jun 12, 2025
6669692
feat: continue to isolate SSZ and BLS
arwer13 Jun 12, 2025
4c1a6ab
feat: refactor SSZ to fully match TW version
arwer13 Jun 12, 2025
adaa9b0
chore: fix some integration tests
tamtamchik Jun 12, 2025
37679af
refactor: bls/ssz code review
arwer13 Jun 12, 2025
d55376d
feat: use vault hub to check StVault connection
kovalgek Jun 12, 2025
033daff
Merge branch 'feat/vaults' into feat/consolidation-request
kovalgek Jun 12, 2025
514e53c
fix: storage + remove connection condition in OG
loga4 Jun 12, 2025
218c62e
Merge remote-tracking branch 'origin/feat/obligations-ledger' into fe…
folkyatina Jun 12, 2025
9a7aa69
Merge pull request #1161 from lidofinance/feat/rebase-on-tw
TheDZhon Jun 12, 2025
f6221ed
chore: revert settling plan to simplier version
tamtamchik Jun 12, 2025
a922373
Merge pull request #1162 from lidofinance/feat/obligations-ledger-og
TheDZhon Jun 12, 2025
9afd0e2
Merge branch 'feat/vaults' into feat/obligations
tamtamchik Jun 12, 2025
e24436d
Merge branch 'feat/vaults' into feat/consolidation-request
kovalgek Jun 12, 2025
745a206
Merge branch 'feat/obligations-ledger' of github.com:lidofinance/core…
tamtamchik Jun 12, 2025
74a0430
fix: linters
tamtamchik Jun 12, 2025
94ca20d
fix: AccessControlConfirmable tests
tamtamchik Jun 12, 2025
b8c05d6
wip: upgrade protocol on fork
eddort Jun 12, 2025
d86c153
Merge remote-tracking branch 'origin/feat/obligations-ledger' into fe…
folkyatina Jun 12, 2025
17c6167
wip: deploy aragon script
eddort Jun 12, 2025
3900dfe
wip: aragon mock
eddort Jun 12, 2025
a3a2b14
feat: aragon voting for tw
eddort Jun 12, 2025
023678e
feat: unify recovery approach with lido contract
avsetsin Jun 12, 2025
227e337
Merge branch 'feat/triggerable-exits-recovery' into feat/vaults
TheDZhon Jun 12, 2025
cd426b7
fix: fix comments, format contract
kovalgek Jun 12, 2025
334127f
Merge branch 'feat/vaults' into feat/consolidation-request
kovalgek Jun 12, 2025
a19eeb6
fix: lido max mintable require (issue 1)
arwer13 Jun 13, 2025
3b6eca7
fix: TWVoteScript build
eddort Jun 13, 2025
c5f7dae
Merge pull request #1163 from lidofinance/fix/lido-max-mintable-require
TheDZhon Jun 13, 2025
a0e046b
chore: update settlement
tamtamchik Jun 13, 2025
745ae6d
Merge branch 'feat/vaults' into feat/obligations
tamtamchik Jun 13, 2025
2968177
wip: deploy params and state file
eddort Jun 13, 2025
6111cce
fix: recover tests
failingtwice Jun 13, 2025
5f4f815
chore: disable TW tests
tamtamchik Jun 13, 2025
77b4643
Merge branch 'feat/slashing-reserve' of https://github.com/lidofinanc…
failingtwice Jun 13, 2025
6359c8c
allow fund when pending disconnect
dry914 Jun 13, 2025
e095fec
fix linter
dry914 Jun 13, 2025
957ff13
fix(Dashboard): update
failingtwice Jun 13, 2025
26d256c
fix: foundry SSZ BLS tests
arwer13 Jun 13, 2025
3953db3
wip: integration test fixes
eddort Jun 13, 2025
6b8b986
feat(WithdrawalsManagerProxy): move to 0.8.9 and remove unused immutable
arwer13 Jun 13, 2025
1bd8406
feat: add delegate call modifier + tests
kovalgek Jun 13, 2025
a1c076c
feat: pass vault instead of dashboard, increase adjustment when it is…
kovalgek Jun 13, 2025
3a87065
fix: update comment
kovalgek Jun 13, 2025
bef15d4
Merge branch 'feat/vaults' into feat/consolidation-request
kovalgek Jun 13, 2025
4a392e5
feat(VaultHub): separate method to internalize bad debt
folkyatina Jun 13, 2025
adb3615
test: green ✅
failingtwice Jun 13, 2025
9ac55fb
Merge pull request #1165 from lidofinance/fix-tests
failingtwice Jun 13, 2025
74fbd44
test: fix oracle tests
vp4242 Jun 13, 2025
b7610c3
fix: small refactoring
kovalgek Jun 13, 2025
07228e4
Merge pull request #1168 from lidofinance/fix/foundry-tests
tamtamchik Jun 13, 2025
c4e454f
Merge pull request #1167 from lidofinance/fix/fund-pending-disc
tamtamchik Jun 13, 2025
5e8b9e3
feat: update obligation settlement
tamtamchik Jun 13, 2025
b588d0a
Merge branch 'feat/obligations-ledger' of github.com:lidofinance/core…
tamtamchik Jun 13, 2025
3066147
Merge branch 'feat/vaults' into feat/obligations
tamtamchik Jun 13, 2025
c434df0
feat: update base oracle contract version to 2
vp4242 Jun 13, 2025
87009e2
Merge pull request #1093 from lidofinance/feat/consolidation-request
TheDZhon Jun 13, 2025
fcf07d8
Merge pull request #1170 from lidofinance/feat/fix-accounting-tests
TheDZhon Jun 13, 2025
6b11554
Merge pull request #1169 from lidofinance/feat/withdrawals-manager-proxy
TheDZhon Jun 13, 2025
d776c9b
Merge branch 'feat/vaults' into feat/obligations
tamtamchik Jun 13, 2025
edfd903
test(integration): green on scratch
tamtamchik Jun 13, 2025
5917d15
Merge branch 'feat/vaults' into feat/obligations
tamtamchik Jun 13, 2025
c5edbaf
refactoring: unify approaches for refSlot caching
folkyatina Jun 13, 2025
dff8e08
chore: fix some linter warnings
folkyatina Jun 13, 2025
1381170
fix: forge tests
tamtamchik Jun 13, 2025
8de4e85
fix: integration on scratch
tamtamchik Jun 13, 2025
f70d61c
feat: 2.24.3
tamtamchik Jun 13, 2025
b588bed
chore: cleanup
tamtamchik Jun 13, 2025
f85f751
Merge branch 'feat/obligations' into feat/2.24.3
tamtamchik Jun 13, 2025
bb017a3
Merge remote-tracking branch 'origin/feat/obligations-ledger' into fe…
folkyatina Jun 13, 2025
80f2de9
Merge pull request #1173 from lidofinance/feat/2.24.3
tamtamchik Jun 13, 2025
4a5c696
chore: fix some linter warnings
folkyatina Jun 13, 2025
c903b95
Merge remote-tracking branch 'origin/feat/obligations-ledger' into fe…
folkyatina Jun 13, 2025
8108294
test(integration): fix
tamtamchik Jun 13, 2025
4f74431
Merge remote-tracking branch 'origin/feat/obligations-ledger' into fe…
folkyatina Jun 13, 2025
e26fc1c
fix: add _disableInitializers()
folkyatina Jun 13, 2025
43d0074
fix(LazyOracle): move _disableInitializers() to right place
folkyatina Jun 13, 2025
838fd82
ci: fix coverage
tamtamchik Jun 13, 2025
e539095
chore: temporary decrease coverage threshold
tamtamchik Jun 13, 2025
d8eb01e
test(stakingVault): restore tests
tamtamchik Jun 13, 2025
0116a1d
test(integration): fix vault rebalanced test with obligations
tamtamchik Jun 13, 2025
526ed58
test(vaultHub): restore pausable until tests
tamtamchik Jun 13, 2025
2c2654c
chore: remove duplicate sanity checker tests
tamtamchik Jun 13, 2025
c8e1535
feat: wip of rebasing on tw e2e
arwer13 Jun 14, 2025
d815aff
chore: add logic for partial withdrawals
tamtamchik Jun 14, 2025
05c8344
chore: update triggerValidatorWithdrawals logic
tamtamchik Jun 14, 2025
3fc061a
Merge pull request #1075 from lidofinance/feat/obligations-ledger
tamtamchik Jun 14, 2025
b6aafe8
Merge branch 'feat/vaults' into feat/slashing-reserve
tamtamchik Jun 14, 2025
bab1a81
test(VaultHub): restore initialization tests
tamtamchik Jun 14, 2025
2eecd96
chore: reduce coverage scope
tamtamchik Jun 14, 2025
26b6e5e
chore: fix comments
folkyatina Jun 14, 2025
877a2ac
feat: different coverage runners
tamtamchik Jun 14, 2025
848aae7
feat(VaultHub): optimize report storage to be 1 slot
folkyatina Jun 14, 2025
ccd3ab8
feat: more wip rebasing on tw-e2e
arwer13 Jun 14, 2025
520909b
test(VaultHub): restore forceRebalance tests
tamtamchik Jun 14, 2025
a59be41
Merge 'feat/vaults' into 'feat/rebase-on-tw-e2e'
arwer13 Jun 14, 2025
ad1556b
test(consolidation): restore
tamtamchik Jun 14, 2025
a7253f1
chore: fix comments
folkyatina Jun 14, 2025
e1db977
fix(LazyOracle): fix wrong data type
folkyatina Jun 14, 2025
2ac5348
fix: more work on including tw upgrade to v3 upgrade
arwer13 Jun 15, 2025
22e1283
fix: return original types in NodeOperatorFee
folkyatina Jun 15, 2025
69613c0
feat: optimize shares to eth conversion
folkyatina Jun 15, 2025
e92a11b
chore: better comments
folkyatina Jun 15, 2025
c4710be
feat: optimize external shares store
folkyatina Jun 15, 2025
fcd2dc0
feat: more storage optimizations
folkyatina Jun 15, 2025
6e276ca
chore: naming, comments and small fixes
folkyatina Jun 15, 2025
3c383d5
chore: disable saving gas reports to file
folkyatina Jun 15, 2025
db04ec2
feat(V3Template): check start and finish in same tx (transient storage)
arwer13 Jun 16, 2025
551755c
feat: remove duplicates fix deploy flow
arwer13 Jun 16, 2025
df797fe
fix: upgrade template test gh flow
arwer13 Jun 16, 2025
2e55531
fix: proper debt internalization
folkyatina Jun 16, 2025
89fd0b5
fix: rebasing on tw e2e
arwer13 Jun 16, 2025
1c05e3d
fix: code review
arwer13 Jun 16, 2025
b9c7f88
feat: rebalance in shares draft
tamtamchik Jun 16, 2025
0831a26
feat: update dashboard
tamtamchik Jun 16, 2025
271705a
test: fix rebalancing calls
tamtamchik Jun 16, 2025
ab31a36
Merge pull request #1137 from lidofinance/feat/slashing-reserve
folkyatina Jun 16, 2025
d23181f
Merge pull request #1177 from lidofinance/feat/gas-optimizations
folkyatina Jun 16, 2025
d4dfceb
chore: cleanup reverts
tamtamchik Jun 16, 2025
fe0bea0
fix: after review
folkyatina Jun 16, 2025
51ff33f
fix: more fixes after review
folkyatina Jun 16, 2025
3ead61c
feat: move Accounting to 0.8.9 and refactor interfaces
arwer13 Jun 16, 2025
1254062
chore: updates after review
tamtamchik Jun 16, 2025
d1d993c
Merge branch 'feat/vaults' into feat/steth-optimizations
tamtamchik Jun 16, 2025
b046c38
chore: fixes after review
tamtamchik Jun 16, 2025
c4f5600
chore: add 2 ways to rebalance
tamtamchik Jun 16, 2025
97755c4
chore: improve forceRebalance logic
tamtamchik Jun 16, 2025
9b9db96
Merge 'feat/vaults' into 'feat/accounting-0.8.9'
arwer13 Jun 16, 2025
b4ef617
fix: code review
arwer13 Jun 16, 2025
0fcedb2
docs: update comments
tamtamchik Jun 16, 2025
fabf7e8
Merge pull request #1181 from lidofinance/feat/rebalance-shares
tamtamchik Jun 16, 2025
c034886
fix: code review
arwer13 Jun 16, 2025
1e01d0c
Update contracts/0.4.24/Lido.sol
TheDZhon Jun 16, 2025
b86a179
fix: code review
arwer13 Jun 16, 2025
4f91a03
Merge pull request #1178 from lidofinance/feat/steth-optimizations
TheDZhon Jun 16, 2025
d999c3c
fix: code review
arwer13 Jun 16, 2025
bfed739
fix: code review
arwer13 Jun 16, 2025
db215e2
fix: code review
arwer13 Jun 16, 2025
93608ee
feat: more V3Template tests
arwer13 Jun 17, 2025
12b7070
Merge branch 'feat/vaults' into feat/v3template-transient
TheDZhon Jun 17, 2025
b2c1047
Update contracts/0.8.25/vaults/VaultHub.sol
TheDZhon Jun 17, 2025
d7763f5
Merge pull request #1179 from lidofinance/feat/v3template-transient
TheDZhon Jun 17, 2025
044f89d
Merge pull request #1182 from lidofinance/feat/accounting-0.8.9
TheDZhon Jun 17, 2025
6d4e3c5
Merge 'feat/vaults' into 'feat/rebase-on-tw-e2e'
arwer13 Jun 17, 2025
22cab0f
Merge pull request #1175 from lidofinance/feat/rebase-on-tw-e2e
TheDZhon Jun 17, 2025
41cdd58
fix: failing integration tests
arwer13 Jun 17, 2025
a99df45
fix: core/happy-path.integrations
arwer13 Jun 17, 2025
bce72ef
feat: testnet-2
tamtamchik Jun 17, 2025
bf4f48b
fix: accounting oracle extra data full - remove stuck
arwer13 Jun 17, 2025
c6cb4ee
Merge pull request #1185 from lidofinance/fix/integration-tests
arwer13 Jun 17, 2025
8a9474e
Merge pull request #1186 from lidofinance/feat/testnet-2
TheDZhon Jun 17, 2025
c413055
fix: added og/factory/beacon
loga4 Jun 18, 2025
cda17b9
test: complete Burner.sol coverage
arwer13 Jun 19, 2025
1b6c7a4
Merge pull request #1195 from lidofinance/fix/burner-units-coverage
arwer13 Jun 19, 2025
1ac652c
test(Dashboard): update tests
failingtwice Jun 19, 2025
895a882
Merge branch 'feat/vaults' of https://github.com/lidofinance/core int…
failingtwice Jun 19, 2025
e37d224
Merge 'feat/triggerable-exits' into 'feat/vaults'
arwer13 Jun 19, 2025
2177a69
test(C2A): full coverage
failingtwice Jun 23, 2025
53e5335
Merge branch 'feat/vaults' into feat/tests
tamtamchik Jun 23, 2025
749f8f5
chore: skip stack too deep contract for foundry tests
tamtamchik Jun 23, 2025
fd0e845
Merge pull request #1176 from lidofinance/feat/tests
tamtamchik Jun 23, 2025
9fa0a36
Merge branch 'feat/vaults' into fix/tests-og-factory-beacon
tamtamchik Jun 23, 2025
00c8997
chore: fix pinnedBeaconProxy verification
tamtamchik Jun 24, 2025
0dc5735
feat: pinnedBeaconProxy.sol tests
tamtamchik Jun 24, 2025
6adf559
Merge pull request #1188 from lidofinance/fix/tests-og-factory-beacon
tamtamchik Jun 24, 2025
fb4f7e5
test(dashboard): add missing eth recover test
tamtamchik Jun 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
57AE
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
B41A
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
43 changes: 33 additions & 10 deletions .github/workflows/tests-integration-mainnet.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
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:
Expand All @@ -13,22 +11,47 @@ jobs:

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

steps:
- uses: actions/checkout@v4

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

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

- name: Deploy upgrade
run: yarn upgrade:deploy
env:
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 # needed only for TW upgrade

- name: Mock Aragon voting
run: yarn upgrade:mock-voting
env:
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:8555

- name: Run integration tests
run: yarn test:integration:fork:mainnet
run: yarn test:integration
env:
LOG_LEVEL: debug
RPC_URL: http://localhost:8555
NETWORK_STATE_FILE: deployed-mainnet-upgrade.json
4 changes: 2 additions & 2 deletions .github/workflows/tests-integration-scratch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:

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

Expand All @@ -33,7 +33,7 @@ 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
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/tests-integration-upgrade-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
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

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: upgrade-parameters-mainnet.json
GENESIS_TIME: 1606824023 # needed only for TW upgrade
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@ lib/abi/*.json
.env
accounts.json
deployed-local.json
deployed-local-devnet.json
deployed-hardhat.json
deployed-local-devnet.json
deployed-mainnet-upgrade.json

# MacOS
.DS_Store
2 changes: 2 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
yarn lint-staged
yarn compile
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
Loading
0