{
  "AddressManager": [
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string",
          "indexed": true
        },
        {
          "name": "_newAddress",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "_oldAddress",
          "internalType": "address",
          "type": "address",
          "indexed": false
        }
      ],
      "name": "AddressSet"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "previousOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnershipTransferred"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "getAddress",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_address",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "setAddress",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": []
    }
  ],
  "AssetReceiver": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_owner",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "user",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnerUpdated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "ReceivedETH"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "asset",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewERC20"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "asset",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "id",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewERC721"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewETH"
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_gas",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_value",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "CALL",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_gas",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "DELEGATECALL",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "setOwner",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC20",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC20",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "withdrawERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC721",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_id",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC721",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address payable",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawETH",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address payable",
          "type": "address"
        }
      ],
      "name": "withdrawETH",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "CheckBalanceHigh": [
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "params",
          "internalType": "struct CheckBalanceHigh.Params",
          "type": "tuple",
          "components": [
            {
              "name": "target",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "threshold",
              "internalType": "uint256",
              "type": "uint256"
            }
          ],
          "indexed": false
        }
      ],
      "name": "_EventToExposeStructInABI__Params"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_params",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "check",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    }
  ],
  "CheckBalanceLow": [
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "params",
          "internalType": "struct CheckBalanceLow.Params",
          "type": "tuple",
          "components": [
            {
              "name": "target",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "threshold",
              "internalType": "uint256",
              "type": "uint256"
            }
          ],
          "indexed": false
        }
      ],
      "name": "_EventToExposeStructInABI__Params"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_params",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "check",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    }
  ],
  "CheckGelatoLow": [
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "params",
          "internalType": "struct CheckGelatoLow.Params",
          "type": "tuple",
          "components": [
            {
              "name": "treasury",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "threshold",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "recipient",
              "internalType": "address",
              "type": "address"
            }
          ],
          "indexed": false
        }
      ],
      "name": "_EventToExposeStructInABI__Params"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_params",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "check",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    }
  ],
  "CheckTrue": [
    {
      "stateMutability": "pure",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "check",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    }
  ],
  "Drippie": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_owner",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "nameref",
          "internalType": "string",
          "type": "string",
          "indexed": true
        },
        {
          "name": "name",
          "internalType": "string",
          "type": "string",
          "indexed": false
        },
        {
          "name": "config",
          "internalType": "struct Drippie.DripConfig",
          "type": "tuple",
          "components": [
            {
              "name": "reentrant",
              "internalType": "bool",
              "type": "bool"
            },
            {
              "name": "interval",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "dripcheck",
              "internalType": "contract IDripCheck",
              "type": "address"
            },
            {
              "name": "checkparams",
              "internalType": "bytes",
              "type": "bytes"
            },
            {
              "name": "actions",
              "internalType": "struct Drippie.DripAction[]",
              "type": "tuple[]",
              "components": [
                {
                  "name": "target",
                  "internalType": "address payable",
                  "type": "address"
                },
                {
                  "name": "data",
                  "internalType": "bytes",
                  "type": "bytes"
                },
                {
                  "name": "value",
                  "internalType": "uint256",
                  "type": "uint256"
                }
              ]
            }
          ],
          "indexed": false
        }
      ],
      "name": "DripCreated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "nameref",
          "internalType": "string",
          "type": "string",
          "indexed": true
        },
        {
          "name": "name",
          "internalType": "string",
          "type": "string",
          "indexed": false
        },
        {
          "name": "executor",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "timestamp",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "DripExecuted"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "nameref",
          "internalType": "string",
          "type": "string",
          "indexed": true
        },
        {
          "name": "name",
          "internalType": "string",
          "type": "string",
          "indexed": false
        },
        {
          "name": "status",
          "internalType": "enum Drippie.DripStatus",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "DripStatusUpdated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "user",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnerUpdated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "ReceivedETH"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "asset",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewERC20"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "asset",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "id",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewERC721"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewETH"
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_value",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "CALL",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "DELEGATECALL",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_config",
          "internalType": "struct Drippie.DripConfig",
          "type": "tuple",
          "components": [
            {
              "name": "reentrant",
              "internalType": "bool",
              "type": "bool"
            },
            {
              "name": "interval",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "dripcheck",
              "internalType": "contract IDripCheck",
              "type": "address"
            },
            {
              "name": "checkparams",
              "internalType": "bytes",
              "type": "bytes"
            },
            {
              "name": "actions",
              "internalType": "struct Drippie.DripAction[]",
              "type": "tuple[]",
              "components": [
                {
                  "name": "target",
                  "internalType": "address payable",
                  "type": "address"
                },
                {
                  "name": "data",
                  "internalType": "bytes",
                  "type": "bytes"
                },
                {
                  "name": "value",
                  "internalType": "uint256",
                  "type": "uint256"
                }
              ]
            }
          ]
        }
      ],
      "name": "create",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "drip",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "drips",
      "outputs": [
        {
          "name": "status",
          "internalType": "enum Drippie.DripStatus",
          "type": "uint8"
        },
        {
          "name": "config",
          "internalType": "struct Drippie.DripConfig",
          "type": "tuple",
          "components": [
            {
              "name": "reentrant",
              "internalType": "bool",
              "type": "bool"
            },
            {
              "name": "interval",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "dripcheck",
              "internalType": "contract IDripCheck",
              "type": "address"
            },
            {
              "name": "checkparams",
              "internalType": "bytes",
              "type": "bytes"
            },
            {
              "name": "actions",
              "internalType": "struct Drippie.DripAction[]",
              "type": "tuple[]",
              "components": [
                {
                  "name": "target",
                  "internalType": "address payable",
                  "type": "address"
                },
                {
                  "name": "data",
                  "internalType": "bytes",
                  "type": "bytes"
                },
                {
                  "name": "value",
                  "internalType": "uint256",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "name": "last",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "count",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "executable",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "setOwner",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_status",
          "internalType": "enum Drippie.DripStatus",
          "type": "uint8"
        }
      ],
      "name": "status",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC20",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC20",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "withdrawERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC721",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_id",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC721",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address payable",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawETH",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address payable",
          "type": "address"
        }
      ],
      "name": "withdrawETH",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "Drippie_goerli": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_owner",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "nameref",
          "internalType": "string",
          "type": "string",
          "indexed": true
        },
        {
          "name": "name",
          "internalType": "string",
          "type": "string",
          "indexed": false
        },
        {
          "name": "config",
          "internalType": "struct Drippie.DripConfig",
          "type": "tuple",
          "components": [
            {
              "name": "reentrant",
              "internalType": "bool",
              "type": "bool"
            },
            {
              "name": "interval",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "dripcheck",
              "internalType": "contract IDripCheck",
              "type": "address"
            },
            {
              "name": "checkparams",
              "internalType": "bytes",
              "type": "bytes"
            },
            {
              "name": "actions",
              "internalType": "struct Drippie.DripAction[]",
              "type": "tuple[]",
              "components": [
                {
                  "name": "target",
                  "internalType": "address payable",
                  "type": "address"
                },
                {
                  "name": "data",
                  "internalType": "bytes",
                  "type": "bytes"
                },
                {
                  "name": "value",
                  "internalType": "uint256",
                  "type": "uint256"
                }
              ]
            }
          ],
          "indexed": false
        }
      ],
      "name": "DripCreated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "nameref",
          "internalType": "string",
          "type": "string",
          "indexed": true
        },
        {
          "name": "name",
          "internalType": "string",
          "type": "string",
          "indexed": false
        },
        {
          "name": "executor",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "timestamp",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "DripExecuted"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "nameref",
          "internalType": "string",
          "type": "string",
          "indexed": true
        },
        {
          "name": "name",
          "internalType": "string",
          "type": "string",
          "indexed": false
        },
        {
          "name": "status",
          "internalType": "enum Drippie.DripStatus",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "DripStatusUpdated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "user",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnerUpdated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "ReceivedETH"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "asset",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewERC20"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "asset",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "id",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewERC721"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewETH"
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_value",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "CALL",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "DELEGATECALL",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_config",
          "internalType": "struct Drippie.DripConfig",
          "type": "tuple",
          "components": [
            {
              "name": "reentrant",
              "internalType": "bool",
              "type": "bool"
            },
            {
              "name": "interval",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "dripcheck",
              "internalType": "contract IDripCheck",
              "type": "address"
            },
            {
              "name": "checkparams",
              "internalType": "bytes",
              "type": "bytes"
            },
            {
              "name": "actions",
              "internalType": "struct Drippie.DripAction[]",
              "type": "tuple[]",
              "components": [
                {
                  "name": "target",
                  "internalType": "address payable",
                  "type": "address"
                },
                {
                  "name": "data",
                  "internalType": "bytes",
                  "type": "bytes"
                },
                {
                  "name": "value",
                  "internalType": "uint256",
                  "type": "uint256"
                }
              ]
            }
          ]
        }
      ],
      "name": "create",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "drip",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "drips",
      "outputs": [
        {
          "name": "status",
          "internalType": "enum Drippie.DripStatus",
          "type": "uint8"
        },
        {
          "name": "config",
          "internalType": "struct Drippie.DripConfig",
          "type": "tuple",
          "components": [
            {
              "name": "reentrant",
              "internalType": "bool",
              "type": "bool"
            },
            {
              "name": "interval",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "dripcheck",
              "internalType": "contract IDripCheck",
              "type": "address"
            },
            {
              "name": "checkparams",
              "internalType": "bytes",
              "type": "bytes"
            },
            {
              "name": "actions",
              "internalType": "struct Drippie.DripAction[]",
              "type": "tuple[]",
              "components": [
                {
                  "name": "target",
                  "internalType": "address payable",
                  "type": "address"
                },
                {
                  "name": "data",
                  "internalType": "bytes",
                  "type": "bytes"
                },
                {
                  "name": "value",
                  "internalType": "uint256",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "name": "last",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "count",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "executable",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "setOwner",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_status",
          "internalType": "enum Drippie.DripStatus",
          "type": "uint8"
        }
      ],
      "name": "status",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC20",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC20",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "withdrawERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC721",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_id",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC721",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address payable",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawETH",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address payable",
          "type": "address"
        }
      ],
      "name": "withdrawETH",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "Drippie_optimism-goerli": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_owner",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "nameref",
          "internalType": "string",
          "type": "string",
          "indexed": true
        },
        {
          "name": "name",
          "internalType": "string",
          "type": "string",
          "indexed": false
        },
        {
          "name": "config",
          "internalType": "struct Drippie.DripConfig",
          "type": "tuple",
          "components": [
            {
              "name": "interval",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "dripcheck",
              "internalType": "contract IDripCheck",
              "type": "address"
            },
            {
              "name": "checkparams",
              "internalType": "bytes",
              "type": "bytes"
            },
            {
              "name": "actions",
              "internalType": "struct Drippie.DripAction[]",
              "type": "tuple[]",
              "components": [
                {
                  "name": "target",
                  "internalType": "address payable",
                  "type": "address"
                },
                {
                  "name": "data",
                  "internalType": "bytes",
                  "type": "bytes"
                },
                {
                  "name": "value",
                  "internalType": "uint256",
                  "type": "uint256"
                }
              ]
            }
          ],
          "indexed": false
        }
      ],
      "name": "DripCreated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "nameref",
          "internalType": "string",
          "type": "string",
          "indexed": true
        },
        {
          "name": "name",
          "internalType": "string",
          "type": "string",
          "indexed": false
        },
        {
          "name": "executor",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "timestamp",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "DripExecuted"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "nameref",
          "internalType": "string",
          "type": "string",
          "indexed": true
        },
        {
          "name": "name",
          "internalType": "string",
          "type": "string",
          "indexed": false
        },
        {
          "name": "status",
          "internalType": "enum Drippie.DripStatus",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "DripStatusUpdated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "user",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnerUpdated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "ReceivedETH"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "asset",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewERC20"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "asset",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "id",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewERC721"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewETH"
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_gas",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_value",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "CALL",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_gas",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "DELEGATECALL",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_config",
          "internalType": "struct Drippie.DripConfig",
          "type": "tuple",
          "components": [
            {
              "name": "interval",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "dripcheck",
              "internalType": "contract IDripCheck",
              "type": "address"
            },
            {
              "name": "checkparams",
              "internalType": "bytes",
              "type": "bytes"
            },
            {
              "name": "actions",
              "internalType": "struct Drippie.DripAction[]",
              "type": "tuple[]",
              "components": [
                {
                  "name": "target",
                  "internalType": "address payable",
                  "type": "address"
                },
                {
                  "name": "data",
                  "internalType": "bytes",
                  "type": "bytes"
                },
                {
                  "name": "value",
                  "internalType": "uint256",
                  "type": "uint256"
                }
              ]
            }
          ]
        }
      ],
      "name": "create",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "drip",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "drips",
      "outputs": [
        {
          "name": "status",
          "internalType": "enum Drippie.DripStatus",
          "type": "uint8"
        },
        {
          "name": "config",
          "internalType": "struct Drippie.DripConfig",
          "type": "tuple",
          "components": [
            {
              "name": "interval",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "dripcheck",
              "internalType": "contract IDripCheck",
              "type": "address"
            },
            {
              "name": "checkparams",
              "internalType": "bytes",
              "type": "bytes"
            },
            {
              "name": "actions",
              "internalType": "struct Drippie.DripAction[]",
              "type": "tuple[]",
              "components": [
                {
                  "name": "target",
                  "internalType": "address payable",
                  "type": "address"
                },
                {
                  "name": "data",
                  "internalType": "bytes",
                  "type": "bytes"
                },
                {
                  "name": "value",
                  "internalType": "uint256",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "name": "last",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "count",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "executable",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "setOwner",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_status",
          "internalType": "enum Drippie.DripStatus",
          "type": "uint8"
        }
      ],
      "name": "status",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC20",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC20",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "withdrawERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC721",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_id",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC721",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address payable",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawETH",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address payable",
          "type": "address"
        }
      ],
      "name": "withdrawETH",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "L1CrossDomainMessenger": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_portal",
          "internalType": "contract OptimismPortal",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "msgHash",
          "internalType": "bytes32",
          "type": "bytes32",
          "indexed": true
        }
      ],
      "name": "FailedRelayedMessage"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "version",
          "internalType": "uint8",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "Initialized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "msgHash",
          "internalType": "bytes32",
          "type": "bytes32",
          "indexed": true
        }
      ],
      "name": "RelayedMessage"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "target",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "sender",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "message",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        },
        {
          "name": "messageNonce",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "gasLimit",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "SentMessage"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "sender",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "value",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "SentMessageExtension1"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MESSAGE_VERSION",
      "outputs": [
        {
          "name": "",
          "internalType": "uint16",
          "type": "uint16"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MIN_GAS_CALLDATA_OVERHEAD",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "OTHER_MESSENGER",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "PORTAL",
      "outputs": [
        {
          "name": "",
          "internalType": "contract OptimismPortal",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RELAY_CALL_OVERHEAD",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RELAY_CONSTANT_OVERHEAD",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RELAY_GAS_CHECK_BUFFER",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RELAY_RESERVED_GAS",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "pure",
      "type": "function",
      "inputs": [
        {
          "name": "_message",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        }
      ],
      "name": "baseGas",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "failedMessages",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "initialize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "messageNonce",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_nonce",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_sender",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_value",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_message",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "relayMessage",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_message",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        }
      ],
      "name": "sendMessage",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "successfulMessages",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "xDomainMessageSender",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    }
  ],
  "L1ERC721Bridge": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_messenger",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_otherBridge",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ERC721BridgeFinalized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ERC721BridgeInitiated"
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeERC721",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeERC721To",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "deposits",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "finalizeBridgeERC721",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "messenger",
      "outputs": [
        {
          "name": "",
          "internalType": "contract CrossDomainMessenger",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "otherBridge",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "L1StandardBridge": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_messenger",
          "internalType": "address payable",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ERC20BridgeFinalized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ERC20BridgeInitiated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "l1Token",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "l2Token",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ERC20DepositInitiated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "l1Token",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "l2Token",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ERC20WithdrawalFinalized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ETHBridgeFinalized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ETHBridgeInitiated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ETHDepositInitiated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ETHWithdrawalFinalized"
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeERC20To",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeETH",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeETHTo",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_l1Token",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_l2Token",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "depositERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_l1Token",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_l2Token",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "depositERC20To",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "depositETH",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "depositETHTo",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "deposits",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "finalizeBridgeERC20",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "finalizeBridgeETH",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_l1Token",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_l2Token",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "finalizeERC20Withdrawal",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "finalizeETHWithdrawal",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "l2TokenBridge",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "messenger",
      "outputs": [
        {
          "name": "",
          "internalType": "contract CrossDomainMessenger",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "L2OutputOracle": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_submissionInterval",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_l2BlockTime",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_startingBlockNumber",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_startingTimestamp",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_proposer",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_challenger",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_finalizationPeriodSeconds",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "version",
          "internalType": "uint8",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "Initialized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "outputRoot",
          "internalType": "bytes32",
          "type": "bytes32",
          "indexed": true
        },
        {
          "name": "l2OutputIndex",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": true
        },
        {
          "name": "l2BlockNumber",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": true
        },
        {
          "name": "l1Timestamp",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "OutputProposed"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "prevNextOutputIndex",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": true
        },
        {
          "name": "newNextOutputIndex",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": true
        }
      ],
      "name": "OutputsDeleted"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "CHALLENGER",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "FINALIZATION_PERIOD_SECONDS",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "L2_BLOCK_TIME",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "PROPOSER",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "SUBMISSION_INTERVAL",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_l2BlockNumber",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "computeL2Timestamp",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_l2OutputIndex",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "deleteL2Outputs",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_l2OutputIndex",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "getL2Output",
      "outputs": [
        {
          "name": "",
          "internalType": "struct Types.OutputProposal",
          "type": "tuple",
          "components": [
            {
              "name": "outputRoot",
              "internalType": "bytes32",
              "type": "bytes32"
            },
            {
              "name": "timestamp",
              "internalType": "uint128",
              "type": "uint128"
            },
            {
              "name": "l2BlockNumber",
              "internalType": "uint128",
              "type": "uint128"
            }
          ]
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_l2BlockNumber",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "getL2OutputAfter",
      "outputs": [
        {
          "name": "",
          "internalType": "struct Types.OutputProposal",
          "type": "tuple",
          "components": [
            {
              "name": "outputRoot",
              "internalType": "bytes32",
              "type": "bytes32"
            },
            {
              "name": "timestamp",
              "internalType": "uint128",
              "type": "uint128"
            },
            {
              "name": "l2BlockNumber",
              "internalType": "uint128",
              "type": "uint128"
            }
          ]
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_l2BlockNumber",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "getL2OutputIndexAfter",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_startingBlockNumber",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_startingTimestamp",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "initialize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "latestBlockNumber",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "latestOutputIndex",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "nextBlockNumber",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "nextOutputIndex",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_outputRoot",
          "internalType": "bytes32",
          "type": "bytes32"
        },
        {
          "name": "_l2BlockNumber",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_l1BlockHash",
          "internalType": "bytes32",
          "type": "bytes32"
        },
        {
          "name": "_l1BlockNumber",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "proposeL2Output",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "startingBlockNumber",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "startingTimestamp",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "OptimismMintableERC20Factory": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_bridge",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "deployer",
          "internalType": "address",
          "type": "address",
          "indexed": false
        }
      ],
      "name": "OptimismMintableERC20Created"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "StandardL2TokenCreated"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "BRIDGE",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_symbol",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "createOptimismMintableERC20",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_symbol",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "createStandardL2Token",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "OptimismPortal": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_l2Oracle",
          "internalType": "contract L2OutputOracle",
          "type": "address"
        },
        {
          "name": "_guardian",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_paused",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "_config",
          "internalType": "contract SystemConfig",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "version",
          "internalType": "uint8",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "Initialized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "account",
          "internalType": "address",
          "type": "address",
          "indexed": false
        }
      ],
      "name": "Paused"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "version",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": true
        },
        {
          "name": "opaqueData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "TransactionDeposited"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "account",
          "internalType": "address",
          "type": "address",
          "indexed": false
        }
      ],
      "name": "Unpaused"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawalHash",
          "internalType": "bytes32",
          "type": "bytes32",
          "indexed": true
        },
        {
          "name": "success",
          "internalType": "bool",
          "type": "bool",
          "indexed": false
        }
      ],
      "name": "WithdrawalFinalized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawalHash",
          "internalType": "bytes32",
          "type": "bytes32",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "WithdrawalProven"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "GUARDIAN",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "L2_ORACLE",
      "outputs": [
        {
          "name": "",
          "internalType": "contract L2OutputOracle",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "SYSTEM_CONFIG",
      "outputs": [
        {
          "name": "",
          "internalType": "contract SystemConfig",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_value",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_gasLimit",
          "internalType": "uint64",
          "type": "uint64"
        },
        {
          "name": "_isCreation",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "depositTransaction",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [],
      "name": "donateETH",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_tx",
          "internalType": "struct Types.WithdrawalTransaction",
          "type": "tuple",
          "components": [
            {
              "name": "nonce",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "sender",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "target",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "value",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "gasLimit",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "data",
              "internalType": "bytes",
              "type": "bytes"
            }
          ]
        }
      ],
      "name": "finalizeWithdrawalTransaction",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "finalizedWithdrawals",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_paused",
          "internalType": "bool",
          "type": "bool"
        }
      ],
      "name": "initialize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_l2OutputIndex",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "isOutputFinalized",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "l2Sender",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "pure",
      "type": "function",
      "inputs": [
        {
          "name": "_byteCount",
          "internalType": "uint64",
          "type": "uint64"
        }
      ],
      "name": "minimumGasLimit",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "params",
      "outputs": [
        {
          "name": "prevBaseFee",
          "internalType": "uint128",
          "type": "uint128"
        },
        {
          "name": "prevBoughtGas",
          "internalType": "uint64",
          "type": "uint64"
        },
        {
          "name": "prevBlockNum",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "pause",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_tx",
          "internalType": "struct Types.WithdrawalTransaction",
          "type": "tuple",
          "components": [
            {
              "name": "nonce",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "sender",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "target",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "value",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "gasLimit",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "data",
              "internalType": "bytes",
              "type": "bytes"
            }
          ]
        },
        {
          "name": "_l2OutputIndex",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_outputRootProof",
          "internalType": "struct Types.OutputRootProof",
          "type": "tuple",
          "components": [
            {
              "name": "version",
              "internalType": "bytes32",
              "type": "bytes32"
            },
            {
              "name": "stateRoot",
              "internalType": "bytes32",
              "type": "bytes32"
            },
            {
              "name": "messagePasserStorageRoot",
              "internalType": "bytes32",
              "type": "bytes32"
            },
            {
              "name": "latestBlockhash",
              "internalType": "bytes32",
              "type": "bytes32"
            }
          ]
        },
        {
          "name": "_withdrawalProof",
          "internalType": "bytes[]",
          "type": "bytes[]"
        }
      ],
      "name": "proveWithdrawalTransaction",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "provenWithdrawals",
      "outputs": [
        {
          "name": "outputRoot",
          "internalType": "bytes32",
          "type": "bytes32"
        },
        {
          "name": "timestamp",
          "internalType": "uint128",
          "type": "uint128"
        },
        {
          "name": "l2OutputIndex",
          "internalType": "uint128",
          "type": "uint128"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "unpause",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "PortalSender": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_portal",
          "internalType": "contract OptimismPortal",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "PORTAL",
      "outputs": [
        {
          "name": "",
          "internalType": "contract OptimismPortal",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "donate",
      "outputs": []
    }
  ],
  "ProxyAdmin": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_owner",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "previousOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnershipTransferred"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "addressManager",
      "outputs": [
        {
          "name": "",
          "internalType": "contract AddressManager",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_proxy",
          "internalType": "address payable",
          "type": "address"
        },
        {
          "name": "_newAdmin",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "changeProxyAdmin",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_proxy",
          "internalType": "address payable",
          "type": "address"
        }
      ],
      "name": "getProxyAdmin",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_proxy",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "getProxyImplementation",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "implementationName",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "isUpgrading",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "proxyType",
      "outputs": [
        {
          "name": "",
          "internalType": "enum ProxyAdmin.ProxyType",
          "type": "uint8"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_address",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "setAddress",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_address",
          "internalType": "contract AddressManager",
          "type": "address"
        }
      ],
      "name": "setAddressManager",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_address",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "setImplementationName",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_address",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_type",
          "internalType": "enum ProxyAdmin.ProxyType",
          "type": "uint8"
        }
      ],
      "name": "setProxyType",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_upgrading",
          "internalType": "bool",
          "type": "bool"
        }
      ],
      "name": "setUpgrading",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_proxy",
          "internalType": "address payable",
          "type": "address"
        },
        {
          "name": "_implementation",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "upgrade",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_proxy",
          "internalType": "address payable",
          "type": "address"
        },
        {
          "name": "_implementation",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "upgradeAndCall",
      "outputs": []
    }
  ],
  "SystemConfig": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_owner",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_overhead",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_scalar",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_batcherHash",
          "internalType": "bytes32",
          "type": "bytes32"
        },
        {
          "name": "_gasLimit",
          "internalType": "uint64",
          "type": "uint64"
        },
        {
          "name": "_unsafeBlockSigner",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_config",
          "internalType": "struct ResourceMetering.ResourceConfig",
          "type": "tuple",
          "components": [
            {
              "name": "maxResourceLimit",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "elasticityMultiplier",
              "internalType": "uint8",
              "type": "uint8"
            },
            {
              "name": "baseFeeMaxChangeDenominator",
              "internalType": "uint8",
              "type": "uint8"
            },
            {
              "name": "minimumBaseFee",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "systemTxMaxGas",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "maximumBaseFee",
              "internalType": "uint128",
              "type": "uint128"
            }
          ]
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "version",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": true
        },
        {
          "name": "updateType",
          "internalType": "enum SystemConfig.UpdateType",
          "type": "uint8",
          "indexed": true
        },
        {
          "name": "data",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ConfigUpdate"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "version",
          "internalType": "uint8",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "Initialized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "previousOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnershipTransferred"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "UNSAFE_BLOCK_SIGNER_SLOT",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "batcherHash",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "gasLimit",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_owner",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_overhead",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_scalar",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_batcherHash",
          "internalType": "bytes32",
          "type": "bytes32"
        },
        {
          "name": "_gasLimit",
          "internalType": "uint64",
          "type": "uint64"
        },
        {
          "name": "_unsafeBlockSigner",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_config",
          "internalType": "struct ResourceMetering.ResourceConfig",
          "type": "tuple",
          "components": [
            {
              "name": "maxResourceLimit",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "elasticityMultiplier",
              "internalType": "uint8",
              "type": "uint8"
            },
            {
              "name": "baseFeeMaxChangeDenominator",
              "internalType": "uint8",
              "type": "uint8"
            },
            {
              "name": "minimumBaseFee",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "systemTxMaxGas",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "maximumBaseFee",
              "internalType": "uint128",
              "type": "uint128"
            }
          ]
        }
      ],
      "name": "initialize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "minimumGasLimit",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "overhead",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "resourceConfig",
      "outputs": [
        {
          "name": "",
          "internalType": "struct ResourceMetering.ResourceConfig",
          "type": "tuple",
          "components": [
            {
              "name": "maxResourceLimit",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "elasticityMultiplier",
              "internalType": "uint8",
              "type": "uint8"
            },
            {
              "name": "baseFeeMaxChangeDenominator",
              "internalType": "uint8",
              "type": "uint8"
            },
            {
              "name": "minimumBaseFee",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "systemTxMaxGas",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "maximumBaseFee",
              "internalType": "uint128",
              "type": "uint128"
            }
          ]
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "scalar",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_batcherHash",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "setBatcherHash",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_overhead",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_scalar",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "setGasConfig",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_gasLimit",
          "internalType": "uint64",
          "type": "uint64"
        }
      ],
      "name": "setGasLimit",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_config",
          "internalType": "struct ResourceMetering.ResourceConfig",
          "type": "tuple",
          "components": [
            {
              "name": "maxResourceLimit",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "elasticityMultiplier",
              "internalType": "uint8",
              "type": "uint8"
            },
            {
              "name": "baseFeeMaxChangeDenominator",
              "internalType": "uint8",
              "type": "uint8"
            },
            {
              "name": "minimumBaseFee",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "systemTxMaxGas",
              "internalType": "uint32",
              "type": "uint32"
            },
            {
              "name": "maximumBaseFee",
              "internalType": "uint128",
              "type": "uint128"
            }
          ]
        }
      ],
      "name": "setResourceConfig",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_unsafeBlockSigner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "setUnsafeBlockSigner",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "unsafeBlockSigner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "SystemDictator": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": []
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "version",
          "internalType": "uint8",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "Initialized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "previousOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnershipTransferred"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "EXIT_1_NO_RETURN_STEP",
      "outputs": [
        {
          "name": "",
          "internalType": "uint8",
          "type": "uint8"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "PROXY_TRANSFER_STEP",
      "outputs": [
        {
          "name": "",
          "internalType": "uint8",
          "type": "uint8"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "config",
      "outputs": [
        {
          "name": "globalConfig",
          "internalType": "struct SystemDictator.GlobalConfig",
          "type": "tuple",
          "components": [
            {
              "name": "addressManager",
              "internalType": "contract AddressManager",
              "type": "address"
            },
            {
              "name": "proxyAdmin",
              "internalType": "contract ProxyAdmin",
              "type": "address"
            },
            {
              "name": "controller",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "finalOwner",
              "internalType": "address",
              "type": "address"
            }
          ]
        },
        {
          "name": "proxyAddressConfig",
          "internalType": "struct SystemDictator.ProxyAddressConfig",
          "type": "tuple",
          "components": [
            {
              "name": "l2OutputOracleProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "optimismPortalProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "l1CrossDomainMessengerProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "l1StandardBridgeProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "optimismMintableERC20FactoryProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "l1ERC721BridgeProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "systemConfigProxy",
              "internalType": "address",
              "type": "address"
            }
          ]
        },
        {
          "name": "implementationAddressConfig",
          "internalType": "struct SystemDictator.ImplementationAddressConfig",
          "type": "tuple",
          "components": [
            {
              "name": "l2OutputOracleImpl",
              "internalType": "contract L2OutputOracle",
              "type": "address"
            },
            {
              "name": "optimismPortalImpl",
              "internalType": "contract OptimismPortal",
              "type": "address"
            },
            {
              "name": "l1CrossDomainMessengerImpl",
              "internalType": "contract L1CrossDomainMessenger",
              "type": "address"
            },
            {
              "name": "l1StandardBridgeImpl",
              "internalType": "contract L1StandardBridge",
              "type": "address"
            },
            {
              "name": "optimismMintableERC20FactoryImpl",
              "internalType": "contract OptimismMintableERC20Factory",
              "type": "address"
            },
            {
              "name": "l1ERC721BridgeImpl",
              "internalType": "contract L1ERC721Bridge",
              "type": "address"
            },
            {
              "name": "portalSenderImpl",
              "internalType": "contract PortalSender",
              "type": "address"
            },
            {
              "name": "systemConfigImpl",
              "internalType": "contract SystemConfig",
              "type": "address"
            }
          ]
        },
        {
          "name": "systemConfigConfig",
          "internalType": "struct SystemDictator.SystemConfigConfig",
          "type": "tuple",
          "components": [
            {
              "name": "owner",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "overhead",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "scalar",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "batcherHash",
              "internalType": "bytes32",
              "type": "bytes32"
            },
            {
              "name": "gasLimit",
              "internalType": "uint64",
              "type": "uint64"
            },
            {
              "name": "unsafeBlockSigner",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "resourceConfig",
              "internalType": "struct ResourceMetering.ResourceConfig",
              "type": "tuple",
              "components": [
                {
                  "name": "maxResourceLimit",
                  "internalType": "uint32",
                  "type": "uint32"
                },
                {
                  "name": "elasticityMultiplier",
                  "internalType": "uint8",
                  "type": "uint8"
                },
                {
                  "name": "baseFeeMaxChangeDenominator",
                  "internalType": "uint8",
                  "type": "uint8"
                },
                {
                  "name": "minimumBaseFee",
                  "internalType": "uint32",
                  "type": "uint32"
                },
                {
                  "name": "systemTxMaxGas",
                  "internalType": "uint32",
                  "type": "uint32"
                },
                {
                  "name": "maximumBaseFee",
                  "internalType": "uint128",
                  "type": "uint128"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "currentStep",
      "outputs": [
        {
          "name": "",
          "internalType": "uint8",
          "type": "uint8"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "dynamicConfigSet",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "exit1",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "exited",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "finalize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "finalized",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_config",
          "internalType": "struct SystemDictator.DeployConfig",
          "type": "tuple",
          "components": [
            {
              "name": "globalConfig",
              "internalType": "struct SystemDictator.GlobalConfig",
              "type": "tuple",
              "components": [
                {
                  "name": "addressManager",
                  "internalType": "contract AddressManager",
                  "type": "address"
                },
                {
                  "name": "proxyAdmin",
                  "internalType": "contract ProxyAdmin",
                  "type": "address"
                },
                {
                  "name": "controller",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "finalOwner",
                  "internalType": "address",
                  "type": "address"
                }
              ]
            },
            {
              "name": "proxyAddressConfig",
              "internalType": "struct SystemDictator.ProxyAddressConfig",
              "type": "tuple",
              "components": [
                {
                  "name": "l2OutputOracleProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "optimismPortalProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "l1CrossDomainMessengerProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "l1StandardBridgeProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "optimismMintableERC20FactoryProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "l1ERC721BridgeProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "systemConfigProxy",
                  "internalType": "address",
                  "type": "address"
                }
              ]
            },
            {
              "name": "implementationAddressConfig",
              "internalType": "struct SystemDictator.ImplementationAddressConfig",
              "type": "tuple",
              "components": [
                {
                  "name": "l2OutputOracleImpl",
                  "internalType": "contract L2OutputOracle",
                  "type": "address"
                },
                {
                  "name": "optimismPortalImpl",
                  "internalType": "contract OptimismPortal",
                  "type": "address"
                },
                {
                  "name": "l1CrossDomainMessengerImpl",
                  "internalType": "contract L1CrossDomainMessenger",
                  "type": "address"
                },
                {
                  "name": "l1StandardBridgeImpl",
                  "internalType": "contract L1StandardBridge",
                  "type": "address"
                },
                {
                  "name": "optimismMintableERC20FactoryImpl",
                  "internalType": "contract OptimismMintableERC20Factory",
                  "type": "address"
                },
                {
                  "name": "l1ERC721BridgeImpl",
                  "internalType": "contract L1ERC721Bridge",
                  "type": "address"
                },
                {
                  "name": "portalSenderImpl",
                  "internalType": "contract PortalSender",
                  "type": "address"
                },
                {
                  "name": "systemConfigImpl",
                  "internalType": "contract SystemConfig",
                  "type": "address"
                }
              ]
            },
            {
              "name": "systemConfigConfig",
              "internalType": "struct SystemDictator.SystemConfigConfig",
              "type": "tuple",
              "components": [
                {
                  "name": "owner",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "overhead",
                  "internalType": "uint256",
                  "type": "uint256"
                },
                {
                  "name": "scalar",
                  "internalType": "uint256",
                  "type": "uint256"
                },
                {
                  "name": "batcherHash",
                  "internalType": "bytes32",
                  "type": "bytes32"
                },
                {
                  "name": "gasLimit",
                  "internalType": "uint64",
                  "type": "uint64"
                },
                {
                  "name": "unsafeBlockSigner",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "resourceConfig",
                  "internalType": "struct ResourceMetering.ResourceConfig",
                  "type": "tuple",
                  "components": [
                    {
                      "name": "maxResourceLimit",
                      "internalType": "uint32",
                      "type": "uint32"
                    },
                    {
                      "name": "elasticityMultiplier",
                      "internalType": "uint8",
                      "type": "uint8"
                    },
                    {
                      "name": "baseFeeMaxChangeDenominator",
                      "internalType": "uint8",
                      "type": "uint8"
                    },
                    {
                      "name": "minimumBaseFee",
                      "internalType": "uint32",
                      "type": "uint32"
                    },
                    {
                      "name": "systemTxMaxGas",
                      "internalType": "uint32",
                      "type": "uint32"
                    },
                    {
                      "name": "maximumBaseFee",
                      "internalType": "uint128",
                      "type": "uint128"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "name": "initialize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "l2OutputOracleDynamicConfig",
      "outputs": [
        {
          "name": "l2OutputOracleStartingBlockNumber",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "l2OutputOracleStartingTimestamp",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "oldL1CrossDomainMessenger",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "optimismPortalDynamicConfig",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "phase1",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "phase2",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step1",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step2",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step3",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step4",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step5",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_l2OutputOracleDynamicConfig",
          "internalType": "struct SystemDictator.L2OutputOracleDynamicConfig",
          "type": "tuple",
          "components": [
            {
              "name": "l2OutputOracleStartingBlockNumber",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "l2OutputOracleStartingTimestamp",
              "internalType": "uint256",
              "type": "uint256"
            }
          ]
        },
        {
          "name": "_optimismPortalDynamicConfig",
          "internalType": "bool",
          "type": "bool"
        }
      ],
      "name": "updateDynamicConfig",
      "outputs": []
    }
  ],
  "SystemDictator_goerli": [
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "version",
          "internalType": "uint8",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "Initialized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "previousOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnershipTransferred"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "EXIT_1_NO_RETURN_STEP",
      "outputs": [
        {
          "name": "",
          "internalType": "uint8",
          "type": "uint8"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "PROXY_TRANSFER_STEP",
      "outputs": [
        {
          "name": "",
          "internalType": "uint8",
          "type": "uint8"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "config",
      "outputs": [
        {
          "name": "globalConfig",
          "internalType": "struct SystemDictator.GlobalConfig",
          "type": "tuple",
          "components": [
            {
              "name": "addressManager",
              "internalType": "contract AddressManager",
              "type": "address"
            },
            {
              "name": "proxyAdmin",
              "internalType": "contract ProxyAdmin",
              "type": "address"
            },
            {
              "name": "controller",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "finalOwner",
              "internalType": "address",
              "type": "address"
            }
          ]
        },
        {
          "name": "proxyAddressConfig",
          "internalType": "struct SystemDictator.ProxyAddressConfig",
          "type": "tuple",
          "components": [
            {
              "name": "l2OutputOracleProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "optimismPortalProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "l1CrossDomainMessengerProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "l1StandardBridgeProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "optimismMintableERC20FactoryProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "l1ERC721BridgeProxy",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "systemConfigProxy",
              "internalType": "address",
              "type": "address"
            }
          ]
        },
        {
          "name": "implementationAddressConfig",
          "internalType": "struct SystemDictator.ImplementationAddressConfig",
          "type": "tuple",
          "components": [
            {
              "name": "l2OutputOracleImpl",
              "internalType": "contract L2OutputOracle",
              "type": "address"
            },
            {
              "name": "optimismPortalImpl",
              "internalType": "contract OptimismPortal",
              "type": "address"
            },
            {
              "name": "l1CrossDomainMessengerImpl",
              "internalType": "contract L1CrossDomainMessenger",
              "type": "address"
            },
            {
              "name": "l1StandardBridgeImpl",
              "internalType": "contract L1StandardBridge",
              "type": "address"
            },
            {
              "name": "optimismMintableERC20FactoryImpl",
              "internalType": "contract OptimismMintableERC20Factory",
              "type": "address"
            },
            {
              "name": "l1ERC721BridgeImpl",
              "internalType": "contract L1ERC721Bridge",
              "type": "address"
            },
            {
              "name": "portalSenderImpl",
              "internalType": "contract PortalSender",
              "type": "address"
            },
            {
              "name": "systemConfigImpl",
              "internalType": "contract SystemConfig",
              "type": "address"
            }
          ]
        },
        {
          "name": "systemConfigConfig",
          "internalType": "struct SystemDictator.SystemConfigConfig",
          "type": "tuple",
          "components": [
            {
              "name": "owner",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "overhead",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "scalar",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "batcherHash",
              "internalType": "bytes32",
              "type": "bytes32"
            },
            {
              "name": "gasLimit",
              "internalType": "uint64",
              "type": "uint64"
            },
            {
              "name": "unsafeBlockSigner",
              "internalType": "address",
              "type": "address"
            }
          ]
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "currentStep",
      "outputs": [
        {
          "name": "",
          "internalType": "uint8",
          "type": "uint8"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "dynamicConfigSet",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "exit1",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "finalize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "finalized",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_config",
          "internalType": "struct SystemDictator.DeployConfig",
          "type": "tuple",
          "components": [
            {
              "name": "globalConfig",
              "internalType": "struct SystemDictator.GlobalConfig",
              "type": "tuple",
              "components": [
                {
                  "name": "addressManager",
                  "internalType": "contract AddressManager",
                  "type": "address"
                },
                {
                  "name": "proxyAdmin",
                  "internalType": "contract ProxyAdmin",
                  "type": "address"
                },
                {
                  "name": "controller",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "finalOwner",
                  "internalType": "address",
                  "type": "address"
                }
              ]
            },
            {
              "name": "proxyAddressConfig",
              "internalType": "struct SystemDictator.ProxyAddressConfig",
              "type": "tuple",
              "components": [
                {
                  "name": "l2OutputOracleProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "optimismPortalProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "l1CrossDomainMessengerProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "l1StandardBridgeProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "optimismMintableERC20FactoryProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "l1ERC721BridgeProxy",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "systemConfigProxy",
                  "internalType": "address",
                  "type": "address"
                }
              ]
            },
            {
              "name": "implementationAddressConfig",
              "internalType": "struct SystemDictator.ImplementationAddressConfig",
              "type": "tuple",
              "components": [
                {
                  "name": "l2OutputOracleImpl",
                  "internalType": "contract L2OutputOracle",
                  "type": "address"
                },
                {
                  "name": "optimismPortalImpl",
                  "internalType": "contract OptimismPortal",
                  "type": "address"
                },
                {
                  "name": "l1CrossDomainMessengerImpl",
                  "internalType": "contract L1CrossDomainMessenger",
                  "type": "address"
                },
                {
                  "name": "l1StandardBridgeImpl",
                  "internalType": "contract L1StandardBridge",
                  "type": "address"
                },
                {
                  "name": "optimismMintableERC20FactoryImpl",
                  "internalType": "contract OptimismMintableERC20Factory",
                  "type": "address"
                },
                {
                  "name": "l1ERC721BridgeImpl",
                  "internalType": "contract L1ERC721Bridge",
                  "type": "address"
                },
                {
                  "name": "portalSenderImpl",
                  "internalType": "contract PortalSender",
                  "type": "address"
                },
                {
                  "name": "systemConfigImpl",
                  "internalType": "contract SystemConfig",
                  "type": "address"
                }
              ]
            },
            {
              "name": "systemConfigConfig",
              "internalType": "struct SystemDictator.SystemConfigConfig",
              "type": "tuple",
              "components": [
                {
                  "name": "owner",
                  "internalType": "address",
                  "type": "address"
                },
                {
                  "name": "overhead",
                  "internalType": "uint256",
                  "type": "uint256"
                },
                {
                  "name": "scalar",
                  "internalType": "uint256",
                  "type": "uint256"
                },
                {
                  "name": "batcherHash",
                  "internalType": "bytes32",
                  "type": "bytes32"
                },
                {
                  "name": "gasLimit",
                  "internalType": "uint64",
                  "type": "uint64"
                },
                {
                  "name": "unsafeBlockSigner",
                  "internalType": "address",
                  "type": "address"
                }
              ]
            }
          ]
        }
      ],
      "name": "initialize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "l2OutputOracleDynamicConfig",
      "outputs": [
        {
          "name": "l2OutputOracleStartingBlockNumber",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "l2OutputOracleStartingTimestamp",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "oldL1CrossDomainMessenger",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step1",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step2",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step3",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step4",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step5",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "step6",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_l2OutputOracleDynamicConfig",
          "internalType": "struct SystemDictator.L2OutputOracleDynamicConfig",
          "type": "tuple",
          "components": [
            {
              "name": "l2OutputOracleStartingBlockNumber",
              "internalType": "uint256",
              "type": "uint256"
            },
            {
              "name": "l2OutputOracleStartingTimestamp",
              "internalType": "uint256",
              "type": "uint256"
            }
          ]
        }
      ],
      "name": "updateL2OutputOracleDynamicConfig",
      "outputs": []
    }
  ],
  "TeleportrWithdrawer": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_owner",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "user",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnerUpdated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "ReceivedETH"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "asset",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewERC20"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "asset",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "id",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewERC721"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "withdrawer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "recipient",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "WithdrewETH"
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_gas",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_value",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "CALL",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_gas",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "DELEGATECALL",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        },
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "data",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "recipient",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "setData",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "setOwner",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_recipient",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "setRecipient",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_teleportr",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "setTeleportr",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "teleportr",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC20",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC20",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "withdrawERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_asset",
          "internalType": "contract ERC721",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_id",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawERC721",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address payable",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "withdrawETH",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address payable",
          "type": "address"
        }
      ],
      "name": "withdrawETH",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "withdrawFromTeleportr",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "AttestationStation": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": []
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "creator",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "about",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "key",
          "internalType": "bytes32",
          "type": "bytes32",
          "indexed": true
        },
        {
          "name": "val",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "AttestationCreated"
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_attestations",
          "internalType": "struct AttestationStation.AttestationData[]",
          "type": "tuple[]",
          "components": [
            {
              "name": "about",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "key",
              "internalType": "bytes32",
              "type": "bytes32"
            },
            {
              "name": "val",
              "internalType": "bytes",
              "type": "bytes"
            }
          ]
        }
      ],
      "name": "attest",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_about",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_key",
          "internalType": "bytes32",
          "type": "bytes32"
        },
        {
          "name": "_val",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "attest",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "attestations",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes",
          "type": "bytes"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "L2ERC721Bridge": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_messenger",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_otherBridge",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ERC721BridgeFinalized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ERC721BridgeInitiated"
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeERC721",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeERC721To",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "finalizeBridgeERC721",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "messenger",
      "outputs": [
        {
          "name": "",
          "internalType": "contract CrossDomainMessenger",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "otherBridge",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "MintManager": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_upgrader",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_governanceToken",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "previousOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "OwnershipTransferred"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "DENOMINATOR",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MINT_CAP",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MINT_PERIOD",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "governanceToken",
      "outputs": [
        {
          "name": "",
          "internalType": "contract GovernanceToken",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_account",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "mintPermittedAfter",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "newOwner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_newMintManager",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "upgrade",
      "outputs": []
    }
  ],
  "OptimismMintableERC721Factory": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_bridge",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteChainId",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "deployer",
          "internalType": "address",
          "type": "address",
          "indexed": false
        }
      ],
      "name": "OptimismMintableERC721Created"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "bridge",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_symbol",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "createOptimismMintableERC721",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "isOptimismMintableERC721",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "remoteChainId",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "OptimismMintableERC721Factory_optimism-goerli": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_bridge",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteChainId",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "deployer",
          "internalType": "address",
          "type": "address",
          "indexed": false
        }
      ],
      "name": "OptimismMintableERC721Created"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "BRIDGE",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "REMOTE_CHAIN_ID",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_symbol",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "createOptimismMintableERC721",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "isOptimismMintableERC721",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "Optimist": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_symbol",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_baseURIAttestor",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_attestationStation",
          "internalType": "contract AttestationStation",
          "type": "address"
        },
        {
          "name": "_optimistAllowlist",
          "internalType": "contract OptimistAllowlist",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "owner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "approved",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": true
        }
      ],
      "name": "Approval"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "owner",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "operator",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "approved",
          "internalType": "bool",
          "type": "bool",
          "indexed": false
        }
      ],
      "name": "ApprovalForAll"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "version",
          "internalType": "uint8",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "Initialized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": true
        }
      ],
      "name": "Transfer"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "ATTESTATION_STATION",
      "outputs": [
        {
          "name": "",
          "internalType": "contract AttestationStation",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "BASE_URI_ATTESTATION_KEY",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "BASE_URI_ATTESTOR",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "OPTIMIST_ALLOWLIST",
      "outputs": [
        {
          "name": "",
          "internalType": "contract OptimistAllowlist",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "pure",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "owner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "baseURI",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "getApproved",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        },
        {
          "name": "_symbol",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "initialize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "owner",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "operator",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_recipient",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "isOnAllowList",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_recipient",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "mint",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "data",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "interfaceId",
          "internalType": "bytes4",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "pure",
      "type": "function",
      "inputs": [
        {
          "name": "_owner",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "tokenIdOfAddress",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_tokenId",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "tokenId",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "OptimistAllowlist": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_attestationStation",
          "internalType": "contract AttestationStation",
          "type": "address"
        },
        {
          "name": "_allowlistAttestor",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_coinbaseQuestAttestor",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_optimistInviter",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "ALLOWLIST_ATTESTOR",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "ATTESTATION_STATION",
      "outputs": [
        {
          "name": "",
          "internalType": "contract AttestationStation",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "COINBASE_QUEST_ATTESTOR",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "COINBASE_QUEST_ELIGIBLE_ATTESTATION_KEY",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "OPTIMIST_CAN_MINT_ATTESTATION_KEY",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "OPTIMIST_INVITER",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_claimer",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "isAllowedToMint",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "OptimistInviter": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_inviteGranter",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_attestationStation",
          "internalType": "contract AttestationStation",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "version",
          "internalType": "uint8",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "Initialized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "issuer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "claimer",
          "internalType": "address",
          "type": "address",
          "indexed": true
        }
      ],
      "name": "InviteClaimed"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "ATTESTATION_STATION",
      "outputs": [
        {
          "name": "",
          "internalType": "contract AttestationStation",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "CAN_INVITE_ATTESTATION_KEY",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "CLAIMABLE_INVITE_TYPEHASH",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "EIP712_VERSION",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "INVITE_GRANTER",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MIN_COMMITMENT_PERIOD",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_claimer",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_claimableInvite",
          "internalType": "struct OptimistInviter.ClaimableInvite",
          "type": "tuple",
          "components": [
            {
              "name": "issuer",
              "internalType": "address",
              "type": "address"
            },
            {
              "name": "nonce",
              "internalType": "bytes32",
              "type": "bytes32"
            }
          ]
        },
        {
          "name": "_signature",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "claimInvite",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_commitment",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "commitInvite",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "commitmentTimestamps",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_name",
          "internalType": "string",
          "type": "string"
        }
      ],
      "name": "initialize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "inviteCounts",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_accounts",
          "internalType": "address[]",
          "type": "address[]"
        },
        {
          "name": "_inviteCount",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "setInviteCounts",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "usedNonces",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "BaseFeeVault": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_recipient",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "value",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": false
        }
      ],
      "name": "Withdrawal"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MIN_WITHDRAWAL_AMOUNT",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RECIPIENT",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "totalProcessed",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "withdraw",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "GasPriceOracle": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "baseFee",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "pure",
      "type": "function",
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "gasPrice",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "getL1Fee",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "getL1GasUsed",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "l1BaseFee",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "overhead",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "scalar",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "L1Block": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "DEPOSITOR_ACCOUNT",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "basefee",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "batcherHash",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "hash",
      "outputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "l1FeeOverhead",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "l1FeeScalar",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "number",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "sequenceNumber",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_number",
          "internalType": "uint64",
          "type": "uint64"
        },
        {
          "name": "_timestamp",
          "internalType": "uint64",
          "type": "uint64"
        },
        {
          "name": "_basefee",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_hash",
          "internalType": "bytes32",
          "type": "bytes32"
        },
        {
          "name": "_sequenceNumber",
          "internalType": "uint64",
          "type": "uint64"
        },
        {
          "name": "_batcherHash",
          "internalType": "bytes32",
          "type": "bytes32"
        },
        {
          "name": "_l1FeeOverhead",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_l1FeeScalar",
          "internalType": "uint256",
          "type": "uint256"
        }
      ],
      "name": "setL1BlockValues",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "timestamp",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    }
  ],
  "L1FeeVault": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_recipient",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "value",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": false
        }
      ],
      "name": "Withdrawal"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MIN_WITHDRAWAL_AMOUNT",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RECIPIENT",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "totalProcessed",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "withdraw",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "L2CrossDomainMessenger": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_l1CrossDomainMessenger",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "msgHash",
          "internalType": "bytes32",
          "type": "bytes32",
          "indexed": true
        }
      ],
      "name": "FailedRelayedMessage"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "version",
          "internalType": "uint8",
          "type": "uint8",
          "indexed": false
        }
      ],
      "name": "Initialized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "msgHash",
          "internalType": "bytes32",
          "type": "bytes32",
          "indexed": true
        }
      ],
      "name": "RelayedMessage"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "target",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "sender",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "message",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        },
        {
          "name": "messageNonce",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "gasLimit",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "SentMessage"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "sender",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "value",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        }
      ],
      "name": "SentMessageExtension1"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MESSAGE_VERSION",
      "outputs": [
        {
          "name": "",
          "internalType": "uint16",
          "type": "uint16"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MIN_GAS_CALLDATA_OVERHEAD",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "OTHER_MESSENGER",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RELAY_CALL_OVERHEAD",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RELAY_CONSTANT_OVERHEAD",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RELAY_GAS_CHECK_BUFFER",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RELAY_RESERVED_GAS",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "pure",
      "type": "function",
      "inputs": [
        {
          "name": "_message",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        }
      ],
      "name": "baseGas",
      "outputs": [
        {
          "name": "",
          "internalType": "uint64",
          "type": "uint64"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "failedMessages",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "initialize",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "l1CrossDomainMessenger",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "messageNonce",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_nonce",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_sender",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_value",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_message",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "relayMessage",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_message",
          "internalType": "bytes",
          "type": "bytes"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        }
      ],
      "name": "sendMessage",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "successfulMessages",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "xDomainMessageSender",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    }
  ],
  "L2StandardBridge": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_otherBridge",
          "internalType": "address payable",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "l1Token",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "l2Token",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "DepositFinalized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ERC20BridgeFinalized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "localToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "remoteToken",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ERC20BridgeInitiated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ETHBridgeFinalized"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "ETHBridgeInitiated"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "l1Token",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "l2Token",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "extraData",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        }
      ],
      "name": "WithdrawalInitiated"
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeERC20",
      "outputs": []
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeERC20To",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeETH",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "bridgeETHTo",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ],
      "name": "deposits",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [
        {
          "name": "_localToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_remoteToken",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "finalizeBridgeERC20",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "finalizeBridgeETH",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_l1Token",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_l2Token",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_from",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "finalizeDeposit",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "l1TokenBridge",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "messenger",
      "outputs": [
        {
          "name": "",
          "internalType": "contract CrossDomainMessenger",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_l2Token",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "withdraw",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_l2Token",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_to",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_amount",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_minGasLimit",
          "internalType": "uint32",
          "type": "uint32"
        },
        {
          "name": "_extraData",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "withdrawTo",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "L2ToL1MessagePasser": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": []
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "nonce",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": true
        },
        {
          "name": "sender",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "target",
          "internalType": "address",
          "type": "address",
          "indexed": true
        },
        {
          "name": "value",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "gasLimit",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "data",
          "internalType": "bytes",
          "type": "bytes",
          "indexed": false
        },
        {
          "name": "withdrawalHash",
          "internalType": "bytes32",
          "type": "bytes32",
          "indexed": false
        }
      ],
      "name": "MessagePassed"
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "amount",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": true
        }
      ],
      "name": "WithdrawerBalanceBurnt"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MESSAGE_VERSION",
      "outputs": [
        {
          "name": "",
          "internalType": "uint16",
          "type": "uint16"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "burn",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "function",
      "inputs": [
        {
          "name": "_target",
          "internalType": "address",
          "type": "address"
        },
        {
          "name": "_gasLimit",
          "internalType": "uint256",
          "type": "uint256"
        },
        {
          "name": "_data",
          "internalType": "bytes",
          "type": "bytes"
        }
      ],
      "name": "initiateWithdrawal",
      "outputs": []
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "messageNonce",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [
        {
          "name": "",
          "internalType": "bytes32",
          "type": "bytes32"
        }
      ],
      "name": "sentMessages",
      "outputs": [
        {
          "name": "",
          "internalType": "bool",
          "type": "bool"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "SequencerFeeVault": [
    {
      "stateMutability": "nonpayable",
      "type": "constructor",
      "inputs": [
        {
          "name": "_recipient",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "type": "event",
      "anonymous": false,
      "inputs": [
        {
          "name": "value",
          "internalType": "uint256",
          "type": "uint256",
          "indexed": false
        },
        {
          "name": "to",
          "internalType": "address",
          "type": "address",
          "indexed": false
        },
        {
          "name": "from",
          "internalType": "address",
          "type": "address",
          "indexed": false
        }
      ],
      "name": "Withdrawal"
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "MIN_WITHDRAWAL_AMOUNT",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "RECIPIENT",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "l1FeeWallet",
      "outputs": [
        {
          "name": "",
          "internalType": "address",
          "type": "address"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "totalProcessed",
      "outputs": [
        {
          "name": "",
          "internalType": "uint256",
          "type": "uint256"
        }
      ]
    },
    {
      "stateMutability": "view",
      "type": "function",
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "internalType": "string",
          "type": "string"
        }
      ]
    },
    {
      "stateMutability": "nonpayable",
      "type": "function",
      "inputs": [],
      "name": "withdraw",
      "outputs": []
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ]
}
