Version v1.0.0
π Liquid Collective v1.0.0 is a major upgrade of the Liquid Collective protocol bringing compatibility with Ethereum withdrawals following the Shapella upgrade.
π This upgrade enables LsETH holders to redeem LsETH for ETH via the Liquid Collective protocol. Users can now redeem using the protocol at the protocol conversion rate (which reflects the amount of ETH staked plus any Ethereum network rewards that the stake has accrued, minus any potential penalties imposed by the network and protocol service fees).
Redeeming is a multi-step process:
1/ User requests a LsETH redeem
2/ Protocol satisfies redeem request
3/ User claims the request.
π‘οΈ The proposed smart contract upgrade underwent two smart contract security audits conducted by Spearbit in April 2023 and May 2023 (report to be published).
π« Changes Overview
Major Changes
- An upgrade of the
Withdraw
contract to enable the collection of withdrawn ETH, including both partial and full validator exits - The addition of the new
RedeemManager
contract that holds the Redeem Queue and is a key component for a steady orchestration of redemptions - An upgrade to the
Oracle
contract to report extended Consensus Layer data, including new data relative to the withdrawals - An upgrade to the
River
contract to extend the processing of Oracle reports with withdrawal-related economics - An upgrade to the
OperatorsRegistry
contract to manage validator exits, in particular, select and notify Node Operators requested to exit validators
Minor Changes
- An upgrade to the
ELFeeRecipient
contract to disable the initializer on implementation - An upgrade to the
TLC
contract to disable the initializer on implementation
Extra Note
This upgrade comes along with changes to the off-chain agent enabling protocol operations.
- upgrade to the Oracle daemon to collect and report withdrawal-related data from CL and EL
- introduction of the Validator Exit Daemon, an off-chain agent to be run by Node Operators to manage validator exits
β οΈ BREAKING CHANGES
- Event
FundedValidatorKeys
emitted by theRiver
contract has been deprecated in favor of the newFundedValidatorKeys(uint256 indexed index, bytes[] publicKeys, bool deferred);
emitted by theOperatorsRegistry
. Note that at upgrade deployment time,FundedValidatorKeys
will be emitted for currently funded validator keys withdeferred=true
- Method
OperatorsRegistry.setOperatorsLimit
signature has been updated - Method
Oracle.reportConsensusLayerData
has been updated to support extended data inputs
Deployment Addresses
Exhaustive list of changes
- Add LsETH User Agreement to metadata by @nmvalera in #179
- Add BUSL-1.1 License by @nmvalera in #177
- Misc: adds codeowners to the repo by @cebidhem in #180
- Spearbit audit 03/2023 by @mortimr in #190
- Feat: add rc1 to devGoerli deployment versions by @mortimr in #203
- Fix: ci issue due to foundry upgrade by @mortimr in #209
- Update README ahead of making repository public by @nmvalera in #192
- Chore(ci): reduce FUZZ_RUNS by @cebidhem in #210
- Feat: add a CODE_OF_CONDUCT (final version) by @cebidhem in #205
- Feat: add code coverage for smart-contracts by @cebidhem in #199
- Chore(docs): fix codecov badge by @cebidhem in #212
- Withdrawals testnet by @mortimr in #213
- Release 1.0.0 by @mortimr in #217
Full Changelog: v0.5.0...v1.0.0