📕

BIP-49 Runbook

Proposal
July 29, 2024

Links

diamondCut JSON:

bip-49.json13.6KB

Overview

Init Contract

InitBipMiscImprovements: 0x2d130cEfa0bf9D1a3e0445c9478503c326F2F8E9

Facets Being Removed

Facets Being Added

Verifying the Transaction

Setup

  1. Follow 🏗️How to Setup Environment, pulling and compiling the latest changes on the bip-misc-upgrades branch.

The Diamond Cut Transaction

Add the following bip49enc 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-49 --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-49 with BCM transaction nonce 81, Safe transaction hash 0x425d0779ecec50f443f71ed6a43a57121d3f159c19aa8b0599a908cd1f74807b, commit hash 10c50916acdd1a2ea8c3699217779cbbe549389e and Snapshot proposal https://snapshot.org/#/beanstalkdao.eth/proposal/0x6d9816a73f63a122bc19d0e2690fbe744becc18dbeef2a25a39f8a48da1d44d7.