📕

BIP-50 Runbook

Proposal
October 1, 2024

Links

Safe transaction
app.safe.global link
Safe transaction hash
0x19f2d9211b0fe8a005ce12f76f147a95ed8bc14d54614848e0bb60c3d2b5a0bd
Safe transaction nonce
83 (and 82, which removes the SiloFacet)
GitHub PR
https://github.com/BeanstalkFarms/Beanstalk/pull/909
GitHub commit hash
https://github.com/BeanstalkFarms/Beanstalk/pull/909/commits/faa0ec60a455b0afdd20ad86f28f41cbc52c2e2d
Snapshot proposal
https://snapshot.org/#/beanstalkdao.eth/proposal/0xb5f21487caf4e7b0ddd1ac536a4165ea21eb18348987aec95e1cb56148ca916d

diamondCut JSON:

bip-50-part1-remove-silofacet.json2.0KB

[see file above for diamond cut data]

bip-50-part2.json27.6KB

Overview

Init Contract

ReseedL2Migration: 0xE35c0397dBB43EB7E2cb28a182d857a3A42eFaDB

Facets Being Added

Facet
Address
L1TokenFacet
0x8F66044a9C95FaE9d38B8Bc30665eE04A2456501
L2MigrationFacet
0xb7EA01231e518cd22E118165b290f5CC3263F5bB

Facets Being Removed

All other facets except for:

  • new L1TokenFacet
  • new L2MigrationFacet
  • DiamondCutFacet
  • DiamondLoupeFacet
  • OwnershipFacet

Verifying the Transaction

Setup

  1. Follow 🏗️How to Setup Environment, pulling and compiling the latest changes on the beanstalk-3 branch.

The Diamond Cut Transaction

Add the following bip50part1enc and bip50part2enc tasks 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 transactions.

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 1338 --port 9545

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

    npx hardhat clean && npx hardhat compile && npx hardhat verifybip-50 --network localhostL1

    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-50 with BCM transaction nonce 83, Safe transaction hash 0x19f2d9211b0fe8a005ce12f76f147a95ed8bc14d54614848e0bb60c3d2b5a0bd, commit hash faa0ec60a455b0afdd20ad86f28f41cbc52c2e2d and Snapshot proposal https://snapshot.org/#/beanstalkdao.eth/proposal/0xb5f21487caf4e7b0ddd1ac536a4165ea21eb18348987aec95e1cb56148ca916d.