Liquid Buybacks: NEST execution with LDO/wstETH liquidity

Vitaly from the DAO Tech team here. Great news, the NEST contracts have been audited, deployed on mainnet, and verified :tada:
The finalized audit report with verified addresses is available in the Lido audits repository.

The scope also includes the updated TokenRateNotifier contract from the core repository, reworked to make on-chain staking revenue fetching easier for NEST. It was audited and its deployment verified alongside the rest of the NEST system.

Deployed contracts:

Voting Items

To make the system operational we propose adding the following items to the upcoming vote:

  • Add the existing OpStackTokenRatePusher to the new TokenRateNotifier as a NoArgs observer, kind 0. This is needed to restore the previous observer on the updated deployment of the TokenRateNotifier

    OpStackTokenRatePusher  0xd54c1c6413caac3477AC14b2a80D5398E3c32FfE
    TokenRateNotifier       0xbe05d12Fd10919F1881125006523452F6aFF791b
    
  • Add StakingRevenueSource to the new TokenRateNotifier as a WithArgs observer, kind 1, so it receives a callback after each rebase.

    StakingRevenueSource  0x6220212a33a87Ed7Cc386B67eB2c393974F28C38
    TokenRateNotifier     0xbe05d12Fd10919F1881125006523452F6aFF791b
    
  • Upgrade the LidoLocator proxy to the new implementation, repointing postTokenRebaseReceiver to the new notifier.

    LidoLocator proxy   0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb
    new implementation  0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313
    
  • Add BuybackAllocator as allowed recipient on the Stonks stETH top-up AllowedRecipientsRegistry for funding via the Easy Track.

    BuybackAllocator           0xAA568141c051f2D1132b110f8391F18D48E8D889
    AllowedRecipientsRegistry  0x1a7cFA9EFB4D5BfFDE87B0FaEb1fC65d653868C0
    
  • Set the Treasury Management Committee as manager on OracleRouter to maintain the stETH and LDO feeds.

    manager (TMC)  0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647
    OracleRouter   0x79ef3a538200Fe4981D67E7e886bfb36D4Cb5a31
    
  • Set the Treasury-mode Stonks on BuybackExecutor. The NEST operation mode is derived from Stonks.RECEIVER().

    Stonks, Treasury mode  0xb368586CB980895E51e1D82102E63b3F69d3F151
    BuybackExecutor        0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7
    
  • Grant ALLOCATOR_ROLE to BuybackAllocator on BuybackExecutor. Lets the allocator fund the executor and trigger buyback processing.

    role  Buybacks.BuybackExecutor.ALLOCATOR_ROLE
          0x87905334ad07701d0cd9b21ea0599de1a0cab067e0ab49596d423d87159ac7f2
    to    BuybackAllocator  0xAA568141c051f2D1132b110f8391F18D48E8D889
    on    BuybackExecutor   0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7
    
  • Grant MANAGER_ROLE to the Treasury Management Committee on BuybackExecutor. Covers asset recovery to the treasury and LP withdrawal.

    role  Buybacks.MANAGER_ROLE
          0x24bec1f1283f989ed510b4d89bc7ef5002f20db1b60c1b3192336791c868543e
    to    Treasury Management Committee  0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647
    on    BuybackExecutor                0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7
    
  • Grant EMERGENCY_ROLE to the Treasury Management Committee on BuybackExecutor. Covers emergency controlls: pausing the executor, halting Stonks creation and order signatures, and cancelling the last order.

    role  Buybacks.BuybackExecutor.EMERGENCY_ROLE
          0xc748c205190870b4e890036f373e30556929f7fbf3db8644c998a652c1996dbd
    to    Treasury Management Committee  0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647
    on    BuybackExecutor                0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7
    
  • Grant EMERGENCY_ROLE to the Emergency Brakes Committee on BuybackExecutor. Same emergency controls, held independently of the TMC.

    role  Buybacks.BuybackExecutor.EMERGENCY_ROLE
          0xc748c205190870b4e890036f373e30556929f7fbf3db8644c998a652c1996dbd
    to    Emergency Committee  0x73b047fe6337183A454c5217241D780a932777bD
    on    BuybackExecutor      0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7
    
  • Grant MANAGER_ROLE to the Treasury Management Committee on BuybackAllocator. Covers asset recovery to the treasury.

    role  Buybacks.MANAGER_ROLE
          0x24bec1f1283f989ed510b4d89bc7ef5002f20db1b60c1b3192336791c868543e
    to    Treasury Management Committee  0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647
    on    BuybackAllocator               0xAA568141c051f2D1132b110f8391F18D48E8D889
    
  • Call activate() on BuybackAllocator. Records the revenue baseline, so only revenue earned after activation funds the buyback budget, and starts the allocation process.

    BuybackAllocator  0xAA568141c051f2D1132b110f8391F18D48E8D889
    
10 Likes