Skip to content

Releases: lidofinance/core

Lido V2.1 release

27 Nov 17:37
c19480a
Compare
Choose a tag to compare

image

LIPs imlemented

Audits

PRs included

New Contributors

Full Changelog: v2.0.0...v2.1.0

Lido V2 release

26 May 17:40
cadffa4
Compare
Choose a tag to compare

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 ...
Read more

Lido 2.0 rc2 release

13 Apr 11:58
e45c4d6
Compare
Choose a tag to compare
Lido 2.0 rc2 release Pre-release
Pre-release

What's Changed

Updates Lido 2.0 rc1 release.

High-level overview

Full Changelog: v2.0.0-rc.1...v2.0.0-rc.2

Lido 2.0 rc1 release

04 Apr 17:37
feafec4
Compare
Choose a tag to compare
Lido 2.0 rc1 release Pre-release
Pre-release

What's Changed

Updates Lido 2.0 rc0-hotfix release.

High-level overview

  • 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

Full Changelog: v2.0.0-rc.0-hotfix...v2.0.0-rc.1

v2.0.0-rc.0-hotfix

23 Mar 09:22
ac06171
Compare
Choose a tag to compare
v2.0.0-rc.0-hotfix Pre-release
Pre-release

What's changed

Hotfixes Lido 2.0 rc0 release.

High-level overview

  • Fix: finalizeUpgrade_v4 for legacy oracle in #705
  • Fix: report processor view in #706
  • Add test to check correct values on stuck/refund updates in #703

Full Changelog: v2.0.0-rc.0...v2.0.0-rc.0-hotfix

Lido 2.0 rc0 release

22 Mar 14:03
3fa9940
Compare
Choose a tag to compare
Lido 2.0 rc0 release Pre-release
Pre-release

What's Changed

Updates Lido 2.0 beta3 release.

High-level overview

  • Fix: Lido.handleOracleReport reorder burn and fee distribution in #690
  • Fix: DSM.canDeposit for unknown module id in #689
  • Accounting oracle: remove an erroneous and excess check in #692
  • Fix: positive rebase limiter burn in #696
  • HashConsesnsus: docs improvements in #697
  • Set lastDepositAt and lastDepositBlock on the staking module addition in #701
  • Refactor: remove some dead code from MemUtils in #702
  • Fix gas estimation for methods with try/catch of StakingRouter in #698
  • Fix NOR stuck/refund in #693
  • Lots of new tests (WithdrawalQueue gas estimation, NodeOperatorsRegistry happy path, LegacyOracle tests)

Full Changelog: v2.0.0-beta.3...v2.0.0-rc.0

Lido 2.0 beta3 release

13 Mar 21:17
2bce10d
Compare
Choose a tag to compare
Pre-release

What's Changed

Updates Lido 2.0 beta2 release.

High-level overview

  • Finalize withdrawal requests with proper shareRate (instead of the wrong stETH discount) (#673)
  • Improve oracle report integrity and simulatedShareRate correctness
  • Resolve issues within StakingRouter and NodeOperatorRegistry
  • Fix oracle migration process and legacy oracle compatibility (#662, #666, #668)
  • Implement ERC-1271 for stETH and forbid transfers to the contract itself (#680)
  • Incompatible interfaces of WithdrawalQueue in Lido and OracleReportSanityChecker issues resolved
  • Extensive chores to meet the bytecode size for Lido and WithdrawalQueue.
  • More tests (unit & integration)
    image

Full Changelog: v2.0.0-beta.2...v2.0.0-beta.3

Lido 2.0 beta2 release

21 Feb 15:16
e575177
Compare
Choose a tag to compare
Pre-release

What's Changed

Updates Lido 2.0 beta release.

High-level overview:

  • Seed initial protocol holder to avoid zero total supply / zero total shares corner cases
  • Collect summary from NodeOperatorRegistry and report stuck / exited keys in a gas-efficient way (avoid nested loops)
  • Resolve #634
  • Resolve an accounting issue with unaccountedEther when deposit is made and StakingRouter had non-zero balance
  • Fixes withdrawal request NFT (now it's WithdrawalQueueERC721) edge-cases and ownership issues
  • Make stETH permit signing for the token address
  • Enforces the validator indexes order in ValidatorExitBus
  • Internal comments and minor naming updates
  • Add public views for unstaking UI

See also #624

Full Changelog:

v2.0.0-beta...v2.0.0-beta.2

Lido 2.0 beta release

13 Feb 20:51
89ad4cc
Compare
Choose a tag to compare
Lido 2.0 beta release Pre-release
Pre-release

Lido V2 is centered around Withdrawals 🦉 and Staking Router 🛰️.
See Introducing Lido V2 — Next Step In Decentralization for more context.

Major features

  • Withdrawals support 🦉
    • In-protocol withdrawals FIFO request queue wrapped up into NFT
    • Revised protocol accounting
    • Facilitating validator exits
    • Rewards skimming
  • Staking Router 🛰️
    • Solid architecture and interfaces for upcoming modules
    • Upgrade NodeOperatorRegistry resembling the curated operators set
    • Levers for the NOM/DAO ops
  • Two-phase oracle with data lists 🔮
    • Polished consensus rules
    • Better gas efficiency of running oracles
    • Multistep oracle data delivery (’unlimited’ data size)

Minor features

  • Decrease the Lido and NodeOperatorRegistry contracts’ bytecode size
  • Revised/new sanity checks & single rebasing limit
  • ERC2612 (permit) support for stETH (aka ‘ERC20 signed approvals’)
  • transferSharesFrom for stETH
  • Reference initialization library following the LIP-10 scheme
  • Oracle reports 'fast lane' (soft ordering enforcement)

Merge-ready mainnet release