• Mark Tyneway's avatar
    op-chain-ops: clean up `op-upgrade` · 5b37d241
    Mark Tyneway authored
    Now `op-upgrade` can work when there is not a chain config
    present for a specific chain. It will reuse the on chain values
    if there is not a deploy config present. The deploy config values
    should be kept up to date with what is on chain, meaning that
    we should not do one off upgrades that do not read in the deploy
    config as input. Chain state should be modified only by reading
    in deploy config.
    
    Example tx generated that upgrades op-goerli, base-goerli and
    zora-goerli:
    
    ```json
    {
      "version": "",
      "chainId": null,
      "createdAt": 0,
      "meta": {
        "createdFromSafeAddress": "",
        "createdFromOwnerAddress": "",
        "name": "",
        "description": ""
      },
      "transactions": [
        {
          "to": "0x01d3670863c3F4b24D7b107900f0b75d4BbC6e0d",
          "value": "0",
          "data": "0x9623609d0000000000000000000000005086d1eef304eb5284a0f6720f79403b4e9be294000000000000000000000000f4d5682da3ad1820ea83e1cee5fd92a3a7babc30000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000005b47e1a08ea6d985d6649300584e6722ec4b1383",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x0000000000000000000000005b47e1a08ea6d985d6649300584e6722ec4b1383",
            "_implementation": "0xf4d5682dA3ad1820ea83E1cEE5Fd92a3A7BabC30",
            "_proxy": "0x5086d1eEF304eb5284A0f6720f79403b4e9bE294"
          }
        },
        {
          "to": "0x01d3670863c3F4b24D7b107900f0b75d4BbC6e0d",
          "value": "0",
          "data": "0x9623609d0000000000000000000000008dd330dde8d9898d43b4dc840da27a07df91b3c90000000000000000000000008add7fb53a242e827373519d260ee3b8f7612ba1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000005086d1eef304eb5284a0f6720f79403b4e9be294",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x0000000000000000000000005086d1eef304eb5284a0f6720f79403b4e9be294",
            "_implementation": "0x8ADd7FB53A242e827373519d260EE3B8F7612Ba1",
            "_proxy": "0x8DD330DdE8D9898d43b4dc840Da27A07dF91b3c9"
          }
        },
        {
          "to": "0x01d3670863c3F4b24D7b107900f0b75d4BbC6e0d",
          "value": "0",
          "data": "0x9623609d000000000000000000000000636af16bf2f682dd3109e60102b8e1a089fedaa80000000000000000000000009c540e769b9453d174edb683a90d9170e6559f16000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000005086d1eef304eb5284a0f6720f79403b4e9be294",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x0000000000000000000000005086d1eef304eb5284a0f6720f79403b4e9be294",
            "_implementation": "0x9c540e769B9453d174EdB683a90D9170e6559F16",
            "_proxy": "0x636Af16bf2f682dD3109e60102b8E1A089FedAa8"
          }
        },
        {
          "to": "0x01d3670863c3F4b24D7b107900f0b75d4BbC6e0d",
          "value": "0",
          "data": "0x9623609d000000000000000000000000e6dfba0953616bacab0c9a8ecb3a9bba77fc15c00000000000000000000000007a811c9862ab54e677eeda7e6f075ac86a1f551e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000003df8280000000000000000000000000000000000000000000000000000000063c05ab400000000000000000000000002b1786a85ec3f71fbbba46507780db7cf9014f6000000000000000000000000bc1233d0c3e6b5d53ab455cf65a6623f6dcd7e4f",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x00000000000000000000000000000000000000000000000000000000003df8280000000000000000000000000000000000000000000000000000000063c05ab400000000000000000000000002b1786a85ec3f71fbbba46507780db7cf9014f6000000000000000000000000bc1233d0c3e6b5d53ab455cf65a6623f6dcd7e4f",
            "_implementation": "0x7a811C9862ab54E677EEdA7e6F075aC86a1f551e",
            "_proxy": "0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0"
          }
        },
        {
          "to": "0x01d3670863c3F4b24D7b107900f0b75d4BbC6e0d",
          "value": "0",
          "data": "0x9623609d000000000000000000000000883dcf8b05364083d849d8bd226bc8cb4c42f9c5000000000000000000000000135b9097a0e1e56190251c62f111b676fb4ec49400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000636af16bf2f682dd3109e60102b8e1a089fedaa8",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x000000000000000000000000636af16bf2f682dd3109e60102b8e1a089fedaa8",
            "_implementation": "0x135B9097A0e1e56190251c62f111B676Fb4Ec494",
            "_proxy": "0x883dcF8B05364083D849D8bD226bC8Cb4c42F9C5"
          }
        },
        {
          "to": "0x01d3670863c3F4b24D7b107900f0b75d4BbC6e0d",
          "value": "0",
          "data": "0x9623609d0000000000000000000000005b47e1a08ea6d985d6649300584e6722ec4b13830000000000000000000000008cfa294bd0c6f63cd65d492bdb754eacf684d87100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000080000000000000000000000000e6dfba0953616bacab0c9a8ecb3a9bba77fc15c0000000000000000000000000bc1233d0c3e6b5d53ab455cf65a6623f6dcd7e4f000000000000000000000000ae851f927ee40de99aabb7461c00f9622ab91d600000000000000000000000000000000000000000000000000000000000000000",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x000000000000000000000000e6dfba0953616bacab0c9a8ecb3a9bba77fc15c0000000000000000000000000bc1233d0c3e6b5d53ab455cf65a6623f6dcd7e4f000000000000000000000000ae851f927ee40de99aabb7461c00f9622ab91d600000000000000000000000000000000000000000000000000000000000000000",
            "_implementation": "0x8Cfa294bD0c6F63cD65d492bdB754eAcf684D871",
            "_proxy": "0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383"
          }
        },
        {
          "to": "0x01d3670863c3F4b24D7b107900f0b75d4BbC6e0d",
          "value": "0",
          "data": "0x9623609d000000000000000000000000ae851f927ee40de99aabb7461c00f9622ab91d6000000000000000000000000009323d05868393c7eba8190bac173f843b82030a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000280000000000000000000000000bc1233d0c3e6b5d53ab455cf65a6623f6dcd7e4f000000000000000000000000000000000000000000000000000000000000083400000000000000000000000000000000000000000000000000000000000f42400000000000000000000000007431310e026b69bfc676c0013e12a1a11411eec90000000000000000000000000000000000000000000000000000000002faf080000000000000000000000000715b7219d986641df9efd9c7ef01218d528e19ec0000000000000000000000000000000000000000000000000000000001312d00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000007ea6b6000000000000000000000000ff000000000000000000000000000000000004200000000000000000000000005086d1eef304eb5284a0f6720f79403b4e9be2940000000000000000000000008dd330dde8d9898d43b4dc840da27a07df91b3c9000000000000000000000000636af16bf2f682dd3109e60102b8e1a089fedaa8000000000000000000000000e6dfba0953616bacab0c9a8ecb3a9bba77fc15c00000000000000000000000005b47e1a08ea6d985d6649300584e6722ec4b1383000000000000000000000000883dcf8b05364083d849d8bd226bc8cb4c42f9c5",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x000000000000000000000000bc1233d0c3e6b5d53ab455cf65a6623f6dcd7e4f000000000000000000000000000000000000000000000000000000000000083400000000000000000000000000000000000000000000000000000000000f42400000000000000000000000007431310e026b69bfc676c0013e12a1a11411eec90000000000000000000000000000000000000000000000000000000002faf080000000000000000000000000715b7219d986641df9efd9c7ef01218d528e19ec0000000000000000000000000000000000000000000000000000000001312d00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000007ea6b6000000000000000000000000ff000000000000000000000000000000000004200000000000000000000000005086d1eef304eb5284a0f6720f79403b4e9be2940000000000000000000000008dd330dde8d9898d43b4dc840da27a07df91b3c9000000000000000000000000636af16bf2f682dd3109e60102b8e1a089fedaa8000000000000000000000000e6dfba0953616bacab0c9a8ecb3a9bba77fc15c00000000000000000000000005b47e1a08ea6d985d6649300584e6722ec4b1383000000000000000000000000883dcf8b05364083d849d8bd226bc8cb4c42f9c5",
            "_implementation": "0x09323D05868393c7EBa8190BAc173f843b82030a",
            "_proxy": "0xAe851f927Ee40dE99aaBb7461C00f9622ab91d60"
          }
        },
        {
          "to": "0x6Cce41f8C6AABf78E1DA6caF8f78B14946dF6FcF",
          "value": "0",
          "data": "0x9623609d000000000000000000000000d87342e16352d33170557a7da1e5fb966a60fafc000000000000000000000000f4d5682da3ad1820ea83e1cee5fd92a3a7babc3000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000db9f51790365e7dc196e7d072728df39be958ace",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x000000000000000000000000db9f51790365e7dc196e7d072728df39be958ace",
            "_implementation": "0xf4d5682dA3ad1820ea83E1cEE5Fd92a3A7BabC30",
            "_proxy": "0xD87342e16352D33170557A7dA1e5fB966a60FafC"
          }
        },
        {
          "to": "0x6Cce41f8C6AABf78E1DA6caF8f78B14946dF6FcF",
          "value": "0",
          "data": "0x9623609d00000000000000000000000057c1c6b596ce90c0e010c358dd4aa052404bb70f0000000000000000000000008add7fb53a242e827373519d260ee3b8f7612ba100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000d87342e16352d33170557a7da1e5fb966a60fafc",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x000000000000000000000000d87342e16352d33170557a7da1e5fb966a60fafc",
            "_implementation": "0x8ADd7FB53A242e827373519d260EE3B8F7612Ba1",
            "_proxy": "0x57C1C6b596ce90C0e010c358DD4Aa052404bB70F"
          }
        },
        {
          "to": "0x6Cce41f8C6AABf78E1DA6caF8f78B14946dF6FcF",
          "value": "0",
          "data": "0x9623609d0000000000000000000000007cc09ac2452d6555d5e0c213ab9e2d44efbfc9560000000000000000000000009c540e769b9453d174edb683a90d9170e6559f1600000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000d87342e16352d33170557a7da1e5fb966a60fafc",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x000000000000000000000000d87342e16352d33170557a7da1e5fb966a60fafc",
            "_implementation": "0x9c540e769B9453d174EdB683a90D9170e6559F16",
            "_proxy": "0x7CC09AC2452D6555d5e0C213Ab9E2d44eFbFc956"
          }
        },
        {
          "to": "0x6Cce41f8C6AABf78E1DA6caF8f78B14946dF6FcF",
          "value": "0",
          "data": "0x9623609d000000000000000000000000dd292c9eed00f6a32ff5245d0bcd7f2a15f24e000000000000000000000000007a811c9862ab54e677eeda7e6f075ac86a1f551e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a98b585654fc03e2fea3fab56e1c851e4f5c2b54000000000000000000000000fbafdf2c3762b571310e3a726a6cd4443e6ff3da",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a98b585654fc03e2fea3fab56e1c851e4f5c2b54000000000000000000000000fbafdf2c3762b571310e3a726a6cd4443e6ff3da",
            "_implementation": "0x7a811C9862ab54E677EEdA7e6F075aC86a1f551e",
            "_proxy": "0xdD292C9eEd00f6A32Ff5245d0BCd7f2a15f24e00"
          }
        },
        {
          "to": "0x6Cce41f8C6AABf78E1DA6caF8f78B14946dF6FcF",
          "value": "0",
          "data": "0x9623609d00000000000000000000000069e16c9e03d7def18a5d88e3c5c2e037946346ef000000000000000000000000135b9097a0e1e56190251c62f111b676fb4ec494000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000007cc09ac2452d6555d5e0c213ab9e2d44efbfc956",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x0000000000000000000000007cc09ac2452d6555d5e0c213ab9e2d44efbfc956",
            "_implementation": "0x135B9097A0e1e56190251c62f111B676Fb4Ec494",
            "_proxy": "0x69E16C9e03d7Def18A5d88e3c5c2e037946346eF"
          }
        },
        {
          "to": "0x6Cce41f8C6AABf78E1DA6caF8f78B14946dF6FcF",
          "value": "0",
          "data": "0x9623609d000000000000000000000000db9f51790365e7dc196e7d072728df39be958ace0000000000000000000000008cfa294bd0c6f63cd65d492bdb754eacf684d87100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000080000000000000000000000000dd292c9eed00f6a32ff5245d0bcd7f2a15f24e0000000000000000000000000045effbd799ab49122eeeab75b78d9c56a187f9a7000000000000000000000000f66c9a5e4fe1a8a9bc44a4af80505a4c3620ee640000000000000000000000000000000000000000000000000000000000000000",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x000000000000000000000000dd292c9eed00f6a32ff5245d0bcd7f2a15f24e0000000000000000000000000045effbd799ab49122eeeab75b78d9c56a187f9a7000000000000000000000000f66c9a5e4fe1a8a9bc44a4af80505a4c3620ee640000000000000000000000000000000000000000000000000000000000000000",
            "_implementation": "0x8Cfa294bD0c6F63cD65d492bdB754eAcf684D871",
            "_proxy": "0xDb9F51790365e7dc196e7D072728df39Be958ACe"
          }
        },
        {
          "to": "0x6Cce41f8C6AABf78E1DA6caF8f78B14946dF6FcF",
          "value": "0",
          "data": "0x9623609d000000000000000000000000f66c9a5e4fe1a8a9bc44a4af80505a4c3620ee6400000000000000000000000009323d05868393c7eba8190bac173f843b82030a0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000028000000000000000000000000023ba22dd7923f3a3f2495bb32a6f3c9b9cd1ec6c000000000000000000000000000000000000000000000000000000000000083400000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000427c9a666d3b27873111ce3894712bf64c6343a00000000000000000000000000000000000000000000000000000000001c9c380000000000000000000000000c890c7cbf8400aa9a2c908ab3caacd97e0018d850000000000000000000000000000000000000000000000000000000001312d00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf628e24ac574866d3d0a7cfe4e9da7278b7ef13000000000000000000000000d87342e16352d33170557a7da1e5fb966a60fafc00000000000000000000000057c1c6b596ce90c0e010c358dd4aa052404bb70f0000000000000000000000007cc09ac2452d6555d5e0c213ab9e2d44efbfc956000000000000000000000000dd292c9eed00f6a32ff5245d0bcd7f2a15f24e00000000000000000000000000db9f51790365e7dc196e7d072728df39be958ace00000000000000000000000069e16c9e03d7def18a5d88e3c5c2e037946346ef",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x00000000000000000000000023ba22dd7923f3a3f2495bb32a6f3c9b9cd1ec6c000000000000000000000000000000000000000000000000000000000000083400000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000427c9a666d3b27873111ce3894712bf64c6343a00000000000000000000000000000000000000000000000000000000001c9c380000000000000000000000000c890c7cbf8400aa9a2c908ab3caacd97e0018d850000000000000000000000000000000000000000000000000000000001312d00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf628e24ac574866d3d0a7cfe4e9da7278b7ef13000000000000000000000000d87342e16352d33170557a7da1e5fb966a60fafc00000000000000000000000057c1c6b596ce90c0e010c358dd4aa052404bb70f0000000000000000000000007cc09ac2452d6555d5e0c213ab9e2d44efbfc956000000000000000000000000dd292c9eed00f6a32ff5245d0bcd7f2a15f24e00000000000000000000000000db9f51790365e7dc196e7d072728df39be958ace00000000000000000000000069e16c9e03d7def18a5d88e3c5c2e037946346ef",
            "_implementation": "0x09323D05868393c7EBa8190BAc173f843b82030a",
            "_proxy": "0xF66C9A5E4fE1A8a9bc44a4aF80505a4C3620Ee64"
          }
        },
        {
          "to": "0xbc0Fc544736b7d610D9b05F31B182C8154BEf336",
          "value": "0",
          "data": "0x9623609d0000000000000000000000008e5693140ea606bceb98761d9beb1bc87383706d000000000000000000000000f4d5682da3ad1820ea83e1cee5fd92a3a7babc3000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e93c8cd0d409341205a592f8c4ac1a5fe5585cfa",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x000000000000000000000000e93c8cd0d409341205a592f8c4ac1a5fe5585cfa",
            "_implementation": "0xf4d5682dA3ad1820ea83E1cEE5Fd92a3A7BabC30",
            "_proxy": "0x8e5693140eA606bcEB98761d9beB1BC87383706D"
          }
        },
        {
          "to": "0xbc0Fc544736b7d610D9b05F31B182C8154BEf336",
          "value": "0",
          "data": "0x9623609d0000000000000000000000005e0c967457347d5175bf82e8cccc6480fcd7e5680000000000000000000000008add7fb53a242e827373519d260ee3b8f7612ba1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000008e5693140ea606bceb98761d9beb1bc87383706d",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x0000000000000000000000008e5693140ea606bceb98761d9beb1bc87383706d",
            "_implementation": "0x8ADd7FB53A242e827373519d260EE3B8F7612Ba1",
            "_proxy": "0x5E0c967457347D5175bF82E8CCCC6480FCD7e568"
          }
        },
        {
          "to": "0xbc0Fc544736b7d610D9b05F31B182C8154BEf336",
          "value": "0",
          "data": "0x9623609d000000000000000000000000fa6d8ee5be770f84fc001d098c4bd604fe01284a0000000000000000000000009c540e769b9453d174edb683a90d9170e6559f16000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000008e5693140ea606bceb98761d9beb1bc87383706d",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x0000000000000000000000008e5693140ea606bceb98761d9beb1bc87383706d",
            "_implementation": "0x9c540e769B9453d174EdB683a90D9170e6559F16",
            "_proxy": "0xfA6D8Ee5BE770F84FC001D098C4bD604Fe01284a"
          }
        },
        {
          "to": "0xbc0Fc544736b7d610D9b05F31B182C8154BEf336",
          "value": "0",
          "data": "0x9623609d0000000000000000000000002a35891ff30313ccfa6ce88dcf3858bb075a22980000000000000000000000007a811c9862ab54e677eeda7e6f075ac86a1f551e0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063d96d100000000000000000000000004f28beb40635093b72def43d0ad801cdd8e0e6fe000000000000000000000000f30b40411c4d76228092e7ecdc1593c996b13d22",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063d96d100000000000000000000000004f28beb40635093b72def43d0ad801cdd8e0e6fe000000000000000000000000f30b40411c4d76228092e7ecdc1593c996b13d22",
            "_implementation": "0x7a811C9862ab54E677EEdA7e6F075aC86a1f551e",
            "_proxy": "0x2A35891ff30313CcFa6CE88dcf3858bb075A2298"
          }
        },
        {
          "to": "0xbc0Fc544736b7d610D9b05F31B182C8154BEf336",
          "value": "0",
          "data": "0x9623609d000000000000000000000000a88530e2dd811363ca3ef479dbab3c0bf73d90b1000000000000000000000000135b9097a0e1e56190251c62f111b676fb4ec49400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000fa6d8ee5be770f84fc001d098c4bd604fe01284a",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x000000000000000000000000fa6d8ee5be770f84fc001d098c4bd604fe01284a",
            "_implementation": "0x135B9097A0e1e56190251c62f111B676Fb4Ec494",
            "_proxy": "0xa88530E2DD811363cA3Ef479dBab3C0BF73d90b1"
          }
        },
        {
          "to": "0xbc0Fc544736b7d610D9b05F31B182C8154BEf336",
          "value": "0",
          "data": "0x9623609d000000000000000000000000e93c8cd0d409341205a592f8c4ac1a5fe5585cfa0000000000000000000000008cfa294bd0c6f63cd65d492bdb754eacf684d871000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000002a35891ff30313ccfa6ce88dcf3858bb075a22980000000000000000000000004c35ca57616e0d5fd808574772f632d8da4eadca000000000000000000000000b15eea247ece011c68a614e4a77ad648ff495bc10000000000000000000000000000000000000000000000000000000000000000",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x0000000000000000000000002a35891ff30313ccfa6ce88dcf3858bb075a22980000000000000000000000004c35ca57616e0d5fd808574772f632d8da4eadca000000000000000000000000b15eea247ece011c68a614e4a77ad648ff495bc10000000000000000000000000000000000000000000000000000000000000000",
            "_implementation": "0x8Cfa294bD0c6F63cD65d492bdB754eAcf684D871",
            "_proxy": "0xe93c8cD0D409341205A592f8c4Ac1A5fe5585cfA"
          }
        },
        {
          "to": "0xbc0Fc544736b7d610D9b05F31B182C8154BEf336",
          "value": "0",
          "data": "0x9623609d000000000000000000000000b15eea247ece011c68a614e4a77ad648ff495bc100000000000000000000000009323d05868393c7eba8190bac173f843b82030a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002800000000000000000000000004c35ca57616e0d5fd808574772f632d8da4eadca000000000000000000000000000000000000000000000000000000000000083400000000000000000000000000000000000000000000000000000000000f424000000000000000000000000073b4168cc87f35cc239200a20eb841cded23493b00000000000000000000000000000000000000000000000000000000017d784000000000000000000000000032a4e99a72c11e9dd3dc159909a2d7bd86c1bc510000000000000000000000000000000000000000000000000000000001312d00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084531000000000000000000000000000000000000000000000000000000000008e5693140ea606bceb98761d9beb1bc87383706d0000000000000000000000005e0c967457347d5175bf82e8cccc6480fcd7e568000000000000000000000000fa6d8ee5be770f84fc001d098c4bd604fe01284a0000000000000000000000002a35891ff30313ccfa6ce88dcf3858bb075a2298000000000000000000000000e93c8cd0d409341205a592f8c4ac1a5fe5585cfa000000000000000000000000a88530e2dd811363ca3ef479dbab3c0bf73d90b1",
          "contractMethod": {
            "inputs": [
              {
                "internalType": "address",
                "name": "_proxy",
                "type": "address"
              },
              {
                "internalType": "address",
                "name": "_implementation",
                "type": "address"
              },
              {
                "internalType": "bytes",
                "name": "_data",
                "type": "bytes"
              }
            ],
            "name": "upgradeAndCall",
            "payable": false
          },
          "contractInputsValues": {
            "_data": "0x0000000000000000000000004c35ca57616e0d5fd808574772f632d8da4eadca000000000000000000000000000000000000000000000000000000000000083400000000000000000000000000000000000000000000000000000000000f424000000000000000000000000073b4168cc87f35cc239200a20eb841cded23493b00000000000000000000000000000000000000000000000000000000017d784000000000000000000000000032a4e99a72c11e9dd3dc159909a2d7bd86c1bc510000000000000000000000000000000000000000000000000000000001312d00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084531000000000000000000000000000000000000000000000000000000000008e5693140ea606bceb98761d9beb1bc87383706d0000000000000000000000005e0c967457347d5175bf82e8cccc6480fcd7e568000000000000000000000000fa6d8ee5be770f84fc001d098c4bd604fe01284a0000000000000000000000002a35891ff30313ccfa6ce88dcf3858bb075a2298000000000000000000000000e93c8cd0d409341205a592f8c4ac1a5fe5585cfa000000000000000000000000a88530e2dd811363ca3ef479dbab3c0bf73d90b1",
            "_implementation": "0x09323D05868393c7EBa8190BAc173f843b82030a",
            "_proxy": "0xb15eea247eCE011C68a614e4a77AD648ff495bc1"
          }
        }
      ]
    }
    ```
    5b37d241
Name
Last commit
Last update
..
devnetL1-template.json Loading commit data...
getting-started.json Loading commit data...
goerli.json Loading commit data...
hardhat.json Loading commit data...
internal-devnet.json Loading commit data...
mainnet.json Loading commit data...
pgn-sepolia.json Loading commit data...
pgn.json Loading commit data...
sepolia.json Loading commit data...
zora-goerli.json Loading commit data...
zora.json Loading commit data...