📕

BIP-48 Runbook

Proposal
July 19, 2024

Links

diamondCut JSON:

bip-48.json17.5KB

Overview

Init Contract

InitMigrateUnripeBeanEthToBeanSteth: 0x15A2053B3d559d19FeD2D7FC429304e837cEFa00

Facets Being Removed

Facets Being Added

Verifying the Transaction

Setup

  1. Follow 🏗️How to Setup Environment, pulling and compiling the latest changes on the add-steth-oracle branch.

The Diamond Cut Transaction

Add the following bip48enc task to hardhat.config.js per How to Verify Facet Changes.

You can verify that the following data value in the final line of code is the one that corresponds to the BIP transaction by comparing it with the Raw data field on the Safe multisig transaction.

Verifying the Diamond Cut

  1. Follow How to Verify Facet Changes.
  2. Verify there are no remaining function selectors from the Facets Being Deprecated section above.
  3. Verify that all function selectors from the Facets Being Added section above are present.

Verifying the Deployed Code

  1. Add the following tasks to hardhat.config.js :
  2. Verify that each facet has the correct deployed code by:
  3. Runing an anvil node forked from mainnet:

    anvil --fork-url https://eth.llamarpc.com --chain-id 1337 

    Runing the script in a separate window in the protocol/ directory:

    npx hardhat clean && npx hardhat compile && npx hardhat verifybip-48 --network localhost

    Validate that facet bytecode are correct.

Submitting Message Signature

Once Signers have verified the transaction, they shall submit and sign a verified message on Etherscan with their BCM address (guide).

Template message: Confirming that I have reviewed BIP-48 with BCM transaction nonce 77, Safe transaction hash 0x5765a2aaf25f2a2d41abdc8602e41b5746684e9e82df02cca85d97a6286fc5be, commit hash 45afeaf1f9c57bcdf506336aff63fa8805a1081f and Snapshot proposal https://snapshot.org/#/beanstalkdao.eth/proposal/0x7a9167d3e201225a3352b4643c9aeaac8916b8cb018796bd72b95adf6f0c5bbd.