"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Ethereum_RescueAdapter__factory = void 0;
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
const ethers_1 = require("ethers");
const _abi = [
    {
        inputs: [
            {
                internalType: "address",
                name: "_rescueAddress",
                type: "address",
            },
        ],
        stateMutability: "nonpayable",
        type: "constructor",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "address",
                name: "target",
                type: "address",
            },
            {
                indexed: false,
                internalType: "bytes",
                name: "message",
                type: "bytes",
            },
        ],
        name: "MessageRelayed",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "address",
                name: "l1Token",
                type: "address",
            },
            {
                indexed: false,
                internalType: "address",
                name: "l2Token",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "address",
                name: "to",
                type: "address",
            },
        ],
        name: "TokensRelayed",
        type: "event",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
            {
                internalType: "bytes",
                name: "message",
                type: "bytes",
            },
        ],
        name: "relayMessage",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
            {
                internalType: "address",
                name: "",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "relayTokens",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [],
        name: "rescueAddress",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
];
const _bytecode = "0x60a034606d57601f61055738819003918201601f19168301916001600160401b03831184841017607157808492602094604052833981010312606d57516001600160a01b0381168103606d576080526040516104d190816100868239608051818181610184015261033b0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c908163525550ea146102f35750806352c8c75c146102af5763e6eb8ade1461003d575f80fd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023f5761006f61035f565b5060243567ffffffffffffffff811161023f573660238201121561023f5780600401359061009c82610436565b6100a960405191826103c8565b8281526020810192366024828501011161023f576020815f92602483960187378301015280518101031261023f575173ffffffffffffffffffffffffffffffffffffffff811680910361023f57604051907f70a08231000000000000000000000000000000000000000000000000000000008252306004830152602082602481845afa9081156102a4575f9161026e575b61022992505f806040519360208501907fa9059cbb00000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701526044860152604485526101bd6064866103c8565b604051946101cc6040876103c8565b602086527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020870152519082855af13d15610266573d9161020d83610436565b9261021b60405194856103c8565b83523d5f602085013e610470565b8051908115918215610243575b50501561023f57005b5f80fd5b819250906020918101031261023f5760200151801515810361023f575f80610236565b606091610470565b90506020823d60201161029c575b81610289602093836103c8565b8101031261023f5761022991519061013a565b3d915061027c565b6040513d5f823e3d90fd5b60807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023f576102e161035f565b506102ea610382565b5061023f6103a5565b3461023f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261023f5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361023f57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361023f57565b6064359073ffffffffffffffffffffffffffffffffffffffff8216820361023f57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761040957604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161040957601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9192501561048c57815115610483575090565b3b1561023f5790565b50805190811561023f57602001fdfea2646970667358221220c81fe3da8c11635f4a219f4c2bb98fc1370bdad64e5deba3733dc5067e9edffb64736f6c634300081e0033";
const isSuperArgs = (xs) => xs.length > 1;
class Ethereum_RescueAdapter__factory extends ethers_1.ContractFactory {
    constructor(...args) {
        if (isSuperArgs(args)) {
            super(...args);
        }
        else {
            super(_abi, _bytecode, args[0]);
        }
    }
    deploy(_rescueAddress, overrides) {
        return super.deploy(_rescueAddress, overrides || {});
    }
    getDeployTransaction(_rescueAddress, overrides) {
        return super.getDeployTransaction(_rescueAddress, overrides || {});
    }
    attach(address) {
        return super.attach(address);
    }
    connect(signer) {
        return super.connect(signer);
    }
    static createInterface() {
        return new ethers_1.utils.Interface(_abi);
    }
    static connect(address, signerOrProvider) {
        return new ethers_1.Contract(address, _abi, signerOrProvider);
    }
}
exports.Ethereum_RescueAdapter__factory = Ethereum_RescueAdapter__factory;
Ethereum_RescueAdapter__factory.bytecode = _bytecode;
Ethereum_RescueAdapter__factory.abi = _abi;
