Skip to content

Lido V2 release

Compare
Choose a tag to compare
@arwer13 arwer13 released this 26 May 17:40
· 1730 commits to master since this release
cadffa4

What's Changed

  • chore(security): Add slither by @dgusakov in #447
  • chore(security): Add storage layout linter by @dgusakov in #449
  • feat: assert-bytecode by @madlabman in #454
  • Fix storage layout linter by @madlabman in #456
  • fix: remove missing assert-git-changes file usage by @madlabman in #457
  • Linters fixes by @madlabman in #458
  • One more fix for linters 🐇🕳 by @madlabman in #459
  • Add regression test on malicious stETH recovery by recoverERC721 (selfOwnedStETHBurner) by @TheDZhon in #444
  • Feature/validator exit bus by @arwer13 in #453
  • Staking router recycle by @krogla in #464
  • feat: add lido rewards distribution by @rkolpakov in #466
  • Update DepositSecurityModule to be compatible with StakingRouter by @Psirex in #465
  • Node operators rewards distribution by @bulbozaur in #467
  • Staking router/rewards distribution by @rkolpakov in #469
  • remove recycle / add deposits / add transfer balance by @loga4 in #468
  • Staking router deposits allocation by @Psirex in #470
  • staking router events, errors, fees setter by @bulbozaur in #471
  • update roles and remove outdates by @bulbozaur in #473
  • fix: rework variable names & add max fee for lido contract by @rkolpakov in #474
  • Staking route and Lido refactor by @krogla in #476
  • Staking router module status by @krogla in #477
  • feat: remove some funcs shrinking Lido bytecode sz by @TheDZhon in #479
  • NodeOperatorsRegistry update for StakingRouter by @Psirex in #480
  • StakingRouter internal review fixes by @Psirex in #481
  • Parallel testing by @folkyatina in #462
  • update deployment from scratch by @arwer13 in #441
  • feat: add bunker mode flag for later use by @folkyatina in #483
  • LidoOracleNew, ValidatorExitBus: initial rough version of hash consensus by @arwer13 in #485
  • Restoring Withdrawal tests by @folkyatina in #484
  • feat: add AccessControl to managing ACL in WQ by @folkyatina in #487
  • feat: sanity check for bufferedEtherReserve by @folkyatina in #490
  • ci: upd actions by @madlabman in #491
  • Feat: implement the ERC2612 (Permit) extension for StETH by @TheDZhon in #486
  • staking router tests and fixes by @bulbozaur in #496
  • unit test + coverage + fixes for Lido.sol by @loga4 in #493
  • Staking router/allocation lib tests by @mymphe in #489
  • NodeOperatorsRegistry full unit tests coverage & fixes by @Psirex in #488
  • fix: reward distribution array by @krogla in #494
  • Reduce NodeOperatorsRegistry contract size by @Psirex in #498
  • test: allocating between modules with different params by @mymphe in #501
  • Fix: const gas calculateCurrentStakeLimit ver by @TheDZhon in #500
  • fix: keys allocation fix by @bulbozaur in #502
  • Tests: trivial fixes about permit and StakingRouter by @TheDZhon in #504
  • Staking router external params to uint256 by @loga4 in #505
  • Staking Router post-audit fixes by @Psirex in #497
  • Staking router by @loga4 in #463
  • Fix scratch deploy for shapella devnet-3 by @arwer13 in #503
  • Hardhat task to generate userdoc artifacts by @manneredboor in #507
  • Staking Router: fix typos, add base precision to Lido views by @arwer13 in #508
  • Optimize MinFirstAllocationStrategy by @Psirex in #511
  • feat: add possibility to change recipient by @rkolpakov in #515
  • WithdrawalQueue improvements after the internal review by @folkyatina in #506
  • Oracle upgrade by @skozin in #495
  • feat: use unstructured AccessControl everywhere by @folkyatina in #519
  • Staking router audit fixes by @krogla in #517
  • Staking router audit fixes (Shapella-upgrade) by @folkyatina in #518
  • Add methods for batch withdrawals requests and claiming by @Psirex in #513
  • Feat/use only id externally by @mymphe in #510
  • Refactor: allocation tests by @mymphe in #520
  • Fix failed coverage tests by @Psirex in #524
  • Abolish interface contracts by @arwer13 in #521
  • Feat: positive rebase limiter by @TheDZhon in #514
  • Fix missing gas reports for contracts with the new Solidity version by @Psirex in #525
  • Versioned.sol inheritance by @bulbozaur in #530
  • Feat: Staking router audit fix2 (shapella-upgrade) by @TheDZhon in #533
  • Use overrides for eth-gas-reporter instead of a forked repo by @Psirex in #534
  • Feature/sanity checks soft limit (Sanity Checks Registry subPR) by @TheDZhon in #535
  • Oracle upgrade: legacy oracle compatibility by @skozin in #522
  • Feat: use timestamp instead of blockNumber for WithdrawalRequest by @TheDZhon in #537
  • Fix: move eip712 for stETH to unstructured storage by @TheDZhon in #536
  • Remove POC version of new oracles (LidoOracleNew, ValidatorExitBus) by @arwer13 in #541
  • Fix: make WithdrawalVault versioned by @TheDZhon in #545
  • lidoLocator update tests by @bulbozaur in #538
  • Unify solidify version pragma for contracts in common by @arwer13 in #543
  • Feat: LidoLocator behind Proxy by @mymphe in #539
  • Feature/plain coverage test fix by @bulbozaur in #548
  • Oracle report sanity checks by @Psirex in #529
  • Feat: new accounting oracle report for Lido (feature/shapella-upgrade) by @TheDZhon in #549
  • BytesLib totally removed! by @krogla in #544
  • Add search views to find finalizable request in WithdrawalQueue by @folkyatina in #546
  • Oracle improvements & still-missing features by @skozin in #542
  • Refactor/withdrawal discount by @folkyatina in #552
  • Refactor/recipient to owner by @folkyatina in #554
  • fix oracle test setup by @bulbozaur in #556
  • Use OpenZeppelin's SafeCast lib across the project by @Psirex in #559
  • Make ValidatorExitBusOracle pausable by @arwer13 in #553
  • Lido: restore getFee and getFeeDistributions by @arwer13 in #561
  • Feat: refactor oracle report for Lido by @TheDZhon in #555
  • feat: add oracle daemon config contract by @rkolpakov in #558
  • LidoLocator: safetyNetsRegistry -> oracleReportSanityChecks by @arwer13 in #564
  • Oracle: support "fast lane" member subset by @skozin in #563
  • Feat: WithdrawalRequestNFT by @Psirex in #560
  • Feat: burn shares fixes by @TheDZhon in #567
  • Oracle: post-review improvements by @skozin in #566
  • Accounting oracle gas optimization by @skozin in #570
  • ValidatorExitBusOracle limit related updates by @arwer13 in #565
  • Feat: simplified burner by @TheDZhon in #571
  • test: hash consensus: add access control tests by @DiRaiks in #568
  • Feature/nor limits tests by @loga4 in #575
  • Renaming and LidoOracle initialize fix by @arwer13 in #579
  • Improve compatibility of the memory allocation helper by @skozin in #572
  • Better interface for oracle daemon by @skozin in #578
  • WIP: HashConesnus report processor tests by @manneredboor in #577
  • test: hash consensus: add more frames tests by @DiRaiks in #576
  • test: hashConsensus setQuorum tests by @Jeday in #580
  • WIP: HashConesnus report processor tests by @manneredboor in #581
  • test: hash consensus: fix deploy test by @DiRaiks in #585
  • Better interface for the oracle daemon (follow-up) by @skozin in #587
  • Fix: distribute fee by @TheDZhon in #586
  • LidoOracle, AccountingOracle: deploy related initialize() fixes by @arwer13 in #583
  • Fix/wq review fixes 2 by @folkyatina in #584
  • Feature/nft metadata by @folkyatina in #588
  • NodeOperatorRegistry limits features v2 by @loga4 in #557
  • shapella upgrade: fix processor changing corner case by @manneredboor in #592
  • More efficient accounting oracle by @skozin in #589
  • Oracle: avoid using zeros for data type values by @skozin in #593
  • Feature/tests fix by @bulbozaur in #596
  • A bit of 💅 by @folkyatina in #595
  • Another set of minor improvements by @folkyatina in #598
  • update tests by @bulbozaur in #597
  • test: fix setReportProcessor roles test by @manneredboor in #594
  • Solid IStakingModule interface by @Psirex in #574
  • Sanity refactoring by @arwer13 in #599
  • AccountingOracle: move data boundaries to OracleReportSanityChecker by @arwer13 in #591
  • fix: remove extra pause check from _mintShares by @TheDZhon in #600
  • fix: handle report resubmit case by @Jeday in #601
  • Existing tests fix by @folkyatina in #605
  • Base oracle: tests and fixes (shapella upgrade) by @DiRaiks in #590
  • Update batching view methods for StakingRouter by @Psirex in #606
  • Refactor: move sanity check out of while loop for optimizing gas usage by @ujenjt in #604
  • handle oracle report edge tests by @bulbozaur in #610
  • Feature/post zhejiang fixes nor comments by @loga4 in #609
  • Fix: share rate sanity check by @TheDZhon in #612
  • Tests Accounting Oracle by @DiRaiks in #603
  • replace selfdestruct with setBalance by @bulbozaur in #611
  • Feat: post zhejiang fixes by @TheDZhon in #602
  • Feature/tests fix by @bulbozaur in #613
  • Fix: getDepositableEther by @TheDZhon in #614
  • Feature/shapella upgrade tests accounting oracle by @manneredboor in #615
  • test: AccountingOracle submit extra data handlers refactor by @manneredboor in #617
  • ValidatorExitBusOracle: add pauser and resumer to initialize() by @arwer13 in #620
  • refactor: rename a few shortened names by @arwer13 in #625
  • Mint some shares to initial holder on protocol deploy and optimize submit. by @folkyatina in #608
  • Add support of Foundry tests by @Psirex in #619
  • refactor: nft renaming by @folkyatina in #628
  • Fix and multiple improvements to OracleReportSanityChecker by @arwer13 in #629
  • Fix: add OracleDaemonConfig to LidoLocator by @TheDZhon in #630
  • Fix issues from preliminary audit by @folkyatina in #632
  • Forbid transfer to themselves for Withdrawal nft by @folkyatina in #633
  • Accounting oracle: tests & fixes by @DiRaiks in #618
  • Validator exit bus oracle: tests & fixes by @DiRaiks in #637
  • Fixes related to handleOracleReport and shares burning by @TheDZhon in #636
  • update handle report test by @bulbozaur in #639
  • Feat: embedded EIP712 for StETH by @TheDZhon in #640
  • StakingRouter: prevent address duplication by @loga4 in #641
  • Deposits accounting by @Psirex in #626
  • WIP ValidatorsExitBus Oracle tests by @DiRaiks in #638
  • feat: view to get claimable ether for request by @folkyatina in #627
  • fix tests by @bulbozaur in #616
  • fix rewards distribution tests by @bulbozaur in #643
  • NOR: signing keys lib refactor by @krogla in #645
  • NOR: static totals storage by @krogla in #623
  • Fix module rewards distribution by @skozin in #644
  • NFTDescriptor for WithdrawalQueueERC721 by @ujenjt in #646
  • fix: comments and docs 📚 by @TheDZhon in #647
  • Feat: shapella upgrade followups by @TheDZhon in #624
  • 💅 tests by @folkyatina in #648
  • Feat: fix/share rate simulation by @TheDZhon in #650
  • Tests WithdrawalQueueERC721 by @DiRaiks in #657
  • Test: add ACL tests for Burner by @TheDZhon in #653
  • refactor: remove needless grantRole calls in exit bus initialize() by @arwer13 in #658
  • Fix reward distribution on modules without active keys by @krogla in #655
  • chore(deps): bump golang.org/x/sys from 0.0.0-20211205182925-97ca703d548d to 0.1.0 in /cli by @dependabot in #652
  • sr fixes by @krogla in #660
  • feat: adopted OZ tests for AccessControl by @Jeday in #663
  • Fix/upgrade test scenario EL rewards after the merge by @DiRaiks in #661
  • Hash consensus: allow updating a future initial epoch by @skozin in #662
  • Fix/base oracle tests deadline by @Jeday in #666
  • Tests for WithdrawalQueue, share rate simulation fix by @Jeday in #649
  • fix: penalty delay restart by @krogla in #667
  • StakingRouter findings fixes by @Psirex in #664
  • fix: grammar by @EridianAlpha in #669
  • Fix: Spelling and grammar by @EridianAlpha in #676
  • fix: refactor nft tests and revive main tests by @Jeday in #671
  • fix: follow-up fixes for PausableUntil by @TheDZhon in #677
  • feature: add pauseUntil(resumeSince) in addition to pause(duration) by @arwer13 in #670
  • Legacy oracle bug&tests by @Jeday in #668
  • StakingRouter finding fixes & tests by @loga4 in #656
  • Fix withdrawal finalization correctness (base PR) by @TheDZhon in #672
  • feat (WithdrawalQueue): restore wsteth withdrawals by @arwer13 in #678
  • No extrema checking during withdrawal finalization by @folkyatina in #673
  • fix: WQ tests actualization and fixes by @Jeday in #679
  • Feat: forbid stETH transfers to the contract itself by @TheDZhon in #681
  • ERC-1271 contract signature verification for stETH by @skozin in #680
  • doc: StakingModule.lastDeposit{At,Block} of StakingModule change if 0 deposit by @arwer13 in #682
  • Fix: shapella upgrade fixes by @TheDZhon in #659
  • Withrdawal queue test actualization by @Jeday in #683
  • Fix: Lido.handleOracleReport reorder burn and fee distribution by @TheDZhon in #690
  • fix(AccountingOracle ctor): SM INFO-11, revert is zero lido address by @arwer13 in #691
  • Fix: DSM.canDeposit for unknown module id by @TheDZhon in #689
  • Legacy oracle Lido report tests by @Jeday in #687
  • Additional test cases by @Psirex in #695
  • Accounting oracle: remove an erroneous and excess check by @skozin in #692
  • Fix: positive rebase limiter burn by @TheDZhon in #696
  • HashConsesnsus: docs improvements by @skozin in #697
  • Withdrawal Queue Gas Tests by @Jeday in #699
  • Set lastDepositAt and lastDepositBlock on the staking module addition by @Psirex in #701
  • Refactor: remove some dead code from MemUtils by @folkyatina in #702
  • Fix gas estimation for methods with try/catch in StakingRouter by @Psirex in #698
  • Fix NOR stuck/refund by @krogla in #693
  • shapella upgrade test node operators registry happy path by @manneredboor in #686
  • Fix: shapella upgrade from beta3 to rc by @TheDZhon in #688
  • Add test to check correct values on stuck/refund updates by @krogla in #703
  • Fix: finalizeUpgrade_v4 for legacy oracle by @TheDZhon in #705
  • Fix: report processor view by @TheDZhon in #706
  • Fix/mixbytes audit by @loga4 in #713
  • Fix: HashConsensus fast lane calc when consensus is disabled by @skozin in #711
  • Fix (SignatureUtils): check the EIP-1271 call result more strictly by @skozin in #714
  • Add missing nonce updates to NodeOperatorsRegistry by @Psirex in #715
  • Fix/lido fee distribution by @arwer13 in #717
  • Docs and other minor improvements by @skozin in #716
  • fix: check stuck+exited<=deposited by @krogla in #718
  • Fix (AccountingOracle): extra data submission order check by @skozin in #712
  • Fix: stake limit resume handling by @TheDZhon in #721
  • Fix: make isLimitReached more coherent by @TheDZhon in #710
  • Statemind report minor fixes by @Psirex in #720
  • Fix: discard report processing on lost consensus by @skozin in #708
  • Fix: remove unused methods in UnstructuredRefStorage lib by @loga4 in #723
  • Fix: check zero admin in OracleReportSanityChecker constructor by @loga4 in #724
  • Fix: typos by @loga4 in #728
  • Fix: restrict staking module name length to 31 bytes by @loga4 in #725
  • Fix: check nor active status by @loga4 in #727
  • Fix: resume pause double check by @loga4 in #726
  • fix: remove int64 limitations by @krogla in #719
  • transfer events order by @krogla in #722
  • Add requirement comments for IStakingModule by @Psirex in #729
  • Feat: shapella upgrade from rc.0 to rc.1 [WIP] by @TheDZhon in #709
  • Certora report's small fixes by @Psirex in #731
  • Add event tests by @Jeday in #739
  • Fix: sr redundant variable by @loga4 in #741
  • Fix: redundant int type by @loga4 in #740
  • Fix: typos by @loga4 in #736
  • Fix: oracle daemon config update by @loga4 in #737
  • Fix: remove redundant require by @loga4 in #735
  • Fix: summary desc typo by @loga4 in #742
  • Fix: too high simulated share rate by @TheDZhon in #730
  • Feat: split churn limit into exited and appeared by @TheDZhon in #743
  • Update Aragon frontends by @mymphe in #642
  • Revert "Feat: split churn limit into exited and appeared" by @TheDZhon in #747
  • Doc: churn limit explanations by @TheDZhon in #748
  • Revert "Fix: redundant int type" by @TheDZhon in #749
  • ERC4906 implementation for withdrawal nft by @folkyatina in #733
  • WQ: Replace _batches parameter with _lastIdToBeFinalized for finalize() by @folkyatina in #738
  • fix storage slot by @loga4 in #753
  • Make BatchMetadataUpdate touch more requests for further convenience by @folkyatina in #754
  • Docs: dsm churn limit by @TheDZhon in #755
  • Fix: improve UX of findCheckpointHints by @folkyatina in #750
  • Statemind minor fixes round 2 by @Psirex in #751
  • Fix: shapella upgrade from rc1 to rc2 by @TheDZhon in #732
  • Feat: shellchecker fixes by @TheDZhon in #762
  • Fix: bytecode verification [review suggestions] by @TheDZhon in #763
  • Feature/bytecode verificator cli by @bulbozaur in #761
  • Shapella upgrade and scratch deploy by @arwer13 in #635
  • Diffyscan config for shapella upgrade by @folkyatina in #764
  • batch verification by @bulbozaur in #765
  • Shapella upgrade (capella+shanghai) by @arwer13 in #482
  • fix: Slither by @dgusakov in #768
  • Aragon Apps: followup updates by @mymphe in #757
  • Update readme on hash replication by @mymphe in #769
  • Fix readme commit by @mymphe in #770
  • V2 upgrade cleanup by @arwer13 in #771
  • Feature: Lido V2 by @TheDZhon in #766

New Contributors

Full Changelog: v1.2.0...v2.0.0