📕

BIP-38 Runbook

Proposal
October 13, 2023

Links

diamondCut JSON:

bip-38.json11.5KB
{
    "diamondCut": {
        "diamondCut": [
            [
                "0x0000000000000000000000000000000000000000",
                2,
                [
                    "0x0bfca7e3",
                    "0x8cd31ca0"
                ]
            ],
            [
                "0xC1Bbee46EcB6445B176F7f172F91976ADF4e21D9",
                1,
                [
                    "0x5a049a47",
                    "0xf984019b",
                    "0xc8cda2a0",
                    "0xb0c22bb1",
                    "0xc84c7727"
                ]
            ],
            [
                "0xDc6B4ef6bA55706B19Bd389eA446d232eFb4E5D4",
                1,
                [
                    "0xb362a6e8"
                ]
            ],
            [
                "0x789e37096Fb0abbD4f64A86B51D720b371853a70",
                1,
                [
                    "0x4aa06652",
                    "0x24dd285c"
                ]
            ],
            [
                "0x3FA7ECcfbFDF4407932D2318401d20464189C5F1",
                0,
                [
                    "0x69744dd0",
                    "0xbb02e10b"
                ]
            ],
            [
                "0x3FA7ECcfbFDF4407932D2318401d20464189C5F1",
                1,
                [
                    "0x304ec65d",
                    "0xb6f42085",
                    "0x1799b3b2",
                    "0x1edb6be1",
                    "0x9bb4e35a",
                    "0x83e08888",
                    "0xdc6ba285",
                    "0x39448802",
                    "0xc85951a1",
                    "0x9c45a1d5",
                    "0x34af5416",
                    "0x1e223143",
                    "0x29130a66",
                    "0x4d622831",
                    "0xf4a057e2",
                    "0x6ae1c014",
                    "0xd47aee59",
                    "0x4a16607c",
                    "0x4f9a9678",
                    "0xf9c4ebde",
                    "0xa3ef48c9"
                ]
            ],
            [
                "0x8aD8dfC3303469A8c2d14763199a99363bF580cc",
                1,
                [
                    "0xc20b8071",
                    "0x06fdde03",
                    "0x95d89b41",
                    "0x0e89341c"
                ]
            ],
            [
                "0x9F2444e6cFAAB6ea16Fc05B989f1017508F84A41",
                0,
                [
                    "0x2b8cde0d"
                ]
            ],
            [
                "0x9F2444e6cFAAB6ea16Fc05B989f1017508F84A41",
                1,
                [
                    "0x505f43ea",
                    "0x1be2cfd8",
                    "0xa9be1acb",
                    "0x1f4f3d55",
                    "0xaed942e9"
                ]
            ],
            [
                "0xAa8c44D0B89864b467C3776a7Dd367ff2aB6992A",
                0,
                [
                    "0x787cee99",
                    "0xa33fa99f"
                ]
            ],
            [
                "0xAa8c44D0B89864b467C3776a7Dd367ff2aB6992A",
                1,
                [
                    "0xa84643e4",
                    "0xfa345569",
                    "0x1acc0a47",
                    "0x1be655e8",
                    "0x9a516cad",
                    "0x6de45df2",
                    "0x014a8a49",
                    "0xbb7de478",
                    "0x43cc4ee0",
                    "0xab434eb7",
                    "0xadef4533",
                    "0x9f06b3fa",
                    "0xb8a04d1b",
                    "0x691bcc88",
                    "0xfc6a19df",
                    "0x13ed3cea",
                    "0xd3c73ec8"
                ]
            ]
        ],
        "initFacetAddress": "0x810468cbC28ecb522C10cB53FEC9e387F1ebc84D",
        "functionCall": "0xe1c7392a"
    },
    "encoded": "0x1f931c1c0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000810468cbc28ecb522c10cb53fec9e387f1ebc84d0000000000000000000000000000000000000000000000000000000000000f20000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000560000000000000000000000000000000000000000000000000000000000000088000000000000000000000000000000000000000000000000000000000000009800000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000020bfca7e3000000000000000000000000000000000000000000000000000000008cd31ca000000000000000000000000000000000000000000000000000000000000000000000000000000000c1bbee46ecb6445b176f7f172f91976adf4e21d90000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000055a049a4700000000000000000000000000000000000000000000000000000000f984019b00000000000000000000000000000000000000000000000000000000c8cda2a000000000000000000000000000000000000000000000000000000000b0c22bb100000000000000000000000000000000000000000000000000000000c84c772700000000000000000000000000000000000000000000000000000000000000000000000000000000dc6b4ef6ba55706b19bd389ea446d232efb4e5d4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001b362a6e800000000000000000000000000000000000000000000000000000000000000000000000000000000789e37096fb0abbd4f64a86b51d720b371853a700000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000024aa066520000000000000000000000000000000000000000000000000000000024dd285c000000000000000000000000000000000000000000000000000000000000000000000000000000003fa7eccfbfdf4407932d2318401d20464189c5f100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000269744dd000000000000000000000000000000000000000000000000000000000bb02e10b000000000000000000000000000000000000000000000000000000000000000000000000000000003fa7eccfbfdf4407932d2318401d20464189c5f1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000015304ec65d00000000000000000000000000000000000000000000000000000000b6f42085000000000000000000000000000000000000000000000000000000001799b3b2000000000000000000000000000000000000000000000000000000001edb6be1000000000000000000000000000000000000000000000000000000009bb4e35a0000000000000000000000000000000000000000000000000000000083e0888800000000000000000000000000000000000000000000000000000000dc6ba285000000000000000000000000000000000000000000000000000000003944880200000000000000000000000000000000000000000000000000000000c85951a1000000000000000000000000000000000000000000000000000000009c45a1d50000000000000000000000000000000000000000000000000000000034af5416000000000000000000000000000000000000000000000000000000001e2231430000000000000000000000000000000000000000000000000000000029130a66000000000000000000000000000000000000000000000000000000004d62283100000000000000000000000000000000000000000000000000000000f4a057e2000000000000000000000000000000000000000000000000000000006ae1c01400000000000000000000000000000000000000000000000000000000d47aee59000000000000000000000000000000000000000000000000000000004a16607c000000000000000000000000000000000000000000000000000000004f9a967800000000000000000000000000000000000000000000000000000000f9c4ebde00000000000000000000000000000000000000000000000000000000a3ef48c9000000000000000000000000000000000000000000000000000000000000000000000000000000008ad8dfc3303469a8c2d14763199a99363bf580cc000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004c20b80710000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000000e89341c000000000000000000000000000000000000000000000000000000000000000000000000000000009f2444e6cfaab6ea16fc05b989f1017508f84a410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000012b8cde0d000000000000000000000000000000000000000000000000000000000000000000000000000000009f2444e6cfaab6ea16fc05b989f1017508f84a41000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005505f43ea000000000000000000000000000000000000000000000000000000001be2cfd800000000000000000000000000000000000000000000000000000000a9be1acb000000000000000000000000000000000000000000000000000000001f4f3d5500000000000000000000000000000000000000000000000000000000aed942e900000000000000000000000000000000000000000000000000000000000000000000000000000000aa8c44d0b89864b467c3776a7dd367ff2ab6992a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002787cee9900000000000000000000000000000000000000000000000000000000a33fa99f00000000000000000000000000000000000000000000000000000000000000000000000000000000aa8c44d0b89864b467c3776a7dd367ff2ab6992a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000011a84643e400000000000000000000000000000000000000000000000000000000fa345569000000000000000000000000000000000000000000000000000000001acc0a47000000000000000000000000000000000000000000000000000000001be655e8000000000000000000000000000000000000000000000000000000009a516cad000000000000000000000000000000000000000000000000000000006de45df200000000000000000000000000000000000000000000000000000000014a8a4900000000000000000000000000000000000000000000000000000000bb7de4780000000000000000000000000000000000000000000000000000000043cc4ee000000000000000000000000000000000000000000000000000000000ab434eb700000000000000000000000000000000000000000000000000000000adef4533000000000000000000000000000000000000000000000000000000009f06b3fa00000000000000000000000000000000000000000000000000000000b8a04d1b00000000000000000000000000000000000000000000000000000000691bcc8800000000000000000000000000000000000000000000000000000000fc6a19df0000000000000000000000000000000000000000000000000000000013ed3cea00000000000000000000000000000000000000000000000000000000d3c73ec8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e1c7392a00000000000000000000000000000000000000000000000000000000"
}

Overview

Init Contract

InitMigrateUnripeBean3CrvToBeanEth: 0x810468cbC28ecb522C10cB53FEC9e387F1ebc84D

Facets Being Added

Facets Being Deprecated

Verifying the Transaction

Setup

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

The Diamond Cut Transaction

Add the following bip38enc 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.

task('bip38enc', async function () {
  const bcm = await impersonateBeanstalkOwner()
  await mintEth(bcm.address)
  await bcm.sendTransaction({to: BEANSTALK, value: 0, data: '0x1f931c1c0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000810468cbc28ecb522c10cb53fec9e387f1ebc84d0000000000000000000000000000000000000000000000000000000000000f20000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000560000000000000000000000000000000000000000000000000000000000000088000000000000000000000000000000000000000000000000000000000000009800000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000020bfca7e3000000000000000000000000000000000000000000000000000000008cd31ca000000000000000000000000000000000000000000000000000000000000000000000000000000000c1bbee46ecb6445b176f7f172f91976adf4e21d90000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000055a049a4700000000000000000000000000000000000000000000000000000000f984019b00000000000000000000000000000000000000000000000000000000c8cda2a000000000000000000000000000000000000000000000000000000000b0c22bb100000000000000000000000000000000000000000000000000000000c84c772700000000000000000000000000000000000000000000000000000000000000000000000000000000dc6b4ef6ba55706b19bd389ea446d232efb4e5d4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001b362a6e800000000000000000000000000000000000000000000000000000000000000000000000000000000789e37096fb0abbd4f64a86b51d720b371853a700000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000024aa066520000000000000000000000000000000000000000000000000000000024dd285c000000000000000000000000000000000000000000000000000000000000000000000000000000003fa7eccfbfdf4407932d2318401d20464189c5f100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000269744dd000000000000000000000000000000000000000000000000000000000bb02e10b000000000000000000000000000000000000000000000000000000000000000000000000000000003fa7eccfbfdf4407932d2318401d20464189c5f1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000015304ec65d00000000000000000000000000000000000000000000000000000000b6f42085000000000000000000000000000000000000000000000000000000001799b3b2000000000000000000000000000000000000000000000000000000001edb6be1000000000000000000000000000000000000000000000000000000009bb4e35a0000000000000000000000000000000000000000000000000000000083e0888800000000000000000000000000000000000000000000000000000000dc6ba285000000000000000000000000000000000000000000000000000000003944880200000000000000000000000000000000000000000000000000000000c85951a1000000000000000000000000000000000000000000000000000000009c45a1d50000000000000000000000000000000000000000000000000000000034af5416000000000000000000000000000000000000000000000000000000001e2231430000000000000000000000000000000000000000000000000000000029130a66000000000000000000000000000000000000000000000000000000004d62283100000000000000000000000000000000000000000000000000000000f4a057e2000000000000000000000000000000000000000000000000000000006ae1c01400000000000000000000000000000000000000000000000000000000d47aee59000000000000000000000000000000000000000000000000000000004a16607c000000000000000000000000000000000000000000000000000000004f9a967800000000000000000000000000000000000000000000000000000000f9c4ebde00000000000000000000000000000000000000000000000000000000a3ef48c9000000000000000000000000000000000000000000000000000000000000000000000000000000008ad8dfc3303469a8c2d14763199a99363bf580cc000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004c20b80710000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000000e89341c000000000000000000000000000000000000000000000000000000000000000000000000000000009f2444e6cfaab6ea16fc05b989f1017508f84a410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000012b8cde0d000000000000000000000000000000000000000000000000000000000000000000000000000000009f2444e6cfaab6ea16fc05b989f1017508f84a41000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005505f43ea000000000000000000000000000000000000000000000000000000001be2cfd800000000000000000000000000000000000000000000000000000000a9be1acb000000000000000000000000000000000000000000000000000000001f4f3d5500000000000000000000000000000000000000000000000000000000aed942e900000000000000000000000000000000000000000000000000000000000000000000000000000000aa8c44d0b89864b467c3776a7dd367ff2ab6992a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002787cee9900000000000000000000000000000000000000000000000000000000a33fa99f00000000000000000000000000000000000000000000000000000000000000000000000000000000aa8c44d0b89864b467c3776a7dd367ff2ab6992a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000011a84643e400000000000000000000000000000000000000000000000000000000fa345569000000000000000000000000000000000000000000000000000000001acc0a47000000000000000000000000000000000000000000000000000000001be655e8000000000000000000000000000000000000000000000000000000009a516cad000000000000000000000000000000000000000000000000000000006de45df200000000000000000000000000000000000000000000000000000000014a8a4900000000000000000000000000000000000000000000000000000000bb7de4780000000000000000000000000000000000000000000000000000000043cc4ee000000000000000000000000000000000000000000000000000000000ab434eb700000000000000000000000000000000000000000000000000000000adef4533000000000000000000000000000000000000000000000000000000009f06b3fa00000000000000000000000000000000000000000000000000000000b8a04d1b00000000000000000000000000000000000000000000000000000000691bcc8800000000000000000000000000000000000000000000000000000000fc6a19df0000000000000000000000000000000000000000000000000000000013ed3cea00000000000000000000000000000000000000000000000000000000d3c73ec8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e1c7392a00000000000000000000000000000000000000000000000000000000'})
})

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. Follow 🧑‍💻[OLD] How to Verify Deployed Code.
  2. Verify that each facet has verified code on Etherscan.

Submitting Message Signature

Once Signers have verified the transaction, they shall submit and sign a verified message signature on Etherscan.

Template message: Confirming that I have reviewed BIP-38 with BCM transaction nonce 39, Safe transaction hash 0xb66de1705121f0045f25be2f9214e3d60624d4cd3917f20c39bf8d3df583f9e7, commit hash e771833d532ad1437eb7f76342e77acc8293d6c6 and Snapshot proposal https://snapshot.org/#/beanstalkdao.eth/proposal/0x13c1be551a3b96193ab9614814a88535152228520a1ee7bb27db84aa35413d2f.