export const Bridge = [
    {
        inputs: [
            {
                internalType: "uint8",
                name: "chainID",
                type: "uint8",
            },
            {
                internalType: "address[]",
                name: "initialRelayers",
                type: "address[]",
            },
            {
                internalType: "uint256",
                name: "initialRelayerThreshold",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "fee",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "expiry",
                type: "uint256",
            },
        ],
        stateMutability: "nonpayable",
        type: "constructor",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "uint8",
                name: "destinationChainID",
                type: "uint8",
            },
            {
                indexed: true,
                internalType: "bytes32",
                name: "resourceID",
                type: "bytes32",
            },
            {
                indexed: true,
                internalType: "uint64",
                name: "depositNonce",
                type: "uint64",
            },
        ],
        name: "Deposit",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "Paused",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "uint8",
                name: "originChainID",
                type: "uint8",
            },
            {
                indexed: true,
                internalType: "uint64",
                name: "depositNonce",
                type: "uint64",
            },
            {
                indexed: true,
                internalType: "enum Bridge.ProposalStatus",
                name: "status",
                type: "uint8",
            },
            {
                indexed: false,
                internalType: "bytes32",
                name: "resourceID",
                type: "bytes32",
            },
            {
                indexed: false,
                internalType: "bytes32",
                name: "dataHash",
                type: "bytes32",
            },
        ],
        name: "ProposalEvent",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "uint8",
                name: "originChainID",
                type: "uint8",
            },
            {
                indexed: true,
                internalType: "uint64",
                name: "depositNonce",
                type: "uint64",
            },
            {
                indexed: true,
                internalType: "enum Bridge.ProposalStatus",
                name: "status",
                type: "uint8",
            },
            {
                indexed: false,
                internalType: "bytes32",
                name: "resourceID",
                type: "bytes32",
            },
        ],
        name: "ProposalVote",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "relayer",
                type: "address",
            },
        ],
        name: "RelayerAdded",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "relayer",
                type: "address",
            },
        ],
        name: "RelayerRemoved",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "uint256",
                name: "newThreshold",
                type: "uint256",
            },
        ],
        name: "RelayerThresholdChanged",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
            {
                indexed: true,
                internalType: "bytes32",
                name: "previousAdminRole",
                type: "bytes32",
            },
            {
                indexed: true,
                internalType: "bytes32",
                name: "newAdminRole",
                type: "bytes32",
            },
        ],
        name: "RoleAdminChanged",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
            {
                indexed: true,
                internalType: "address",
                name: "account",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "sender",
                type: "address",
            },
        ],
        name: "RoleGranted",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
            {
                indexed: true,
                internalType: "address",
                name: "account",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "sender",
                type: "address",
            },
        ],
        name: "RoleRevoked",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "Unpaused",
        type: "event",
    },
    {
        inputs: [],
        name: "DEFAULT_ADMIN_ROLE",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "RELAYER_ROLE",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "_chainID",
        outputs: [
            {
                internalType: "uint8",
                name: "",
                type: "uint8",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint8",
                name: "",
                type: "uint8",
            },
        ],
        name: "_depositCounts",
        outputs: [
            {
                internalType: "uint64",
                name: "",
                type: "uint64",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint64",
                name: "",
                type: "uint64",
            },
            {
                internalType: "uint8",
                name: "",
                type: "uint8",
            },
        ],
        name: "_depositRecords",
        outputs: [
            {
                internalType: "bytes",
                name: "",
                type: "bytes",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "_expiry",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "_fee",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint72",
                name: "",
                type: "uint72",
            },
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        name: "_hasVotedOnProposal",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint72",
                name: "",
                type: "uint72",
            },
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        name: "_proposals",
        outputs: [
            {
                internalType: "bytes32",
                name: "_resourceID",
                type: "bytes32",
            },
            {
                internalType: "bytes32",
                name: "_dataHash",
                type: "bytes32",
            },
            {
                internalType: "enum Bridge.ProposalStatus",
                name: "_status",
                type: "uint8",
            },
            {
                internalType: "uint256",
                name: "_proposedBlock",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "_relayerThreshold",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        name: "_resourceIDToHandlerAddress",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "_totalProposals",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "_totalRelayers",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
        ],
        name: "getRoleAdmin",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
        ],
        name: "getRoleMember",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
        ],
        name: "getRoleMemberCount",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "grantRole",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "hasRole",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "paused",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "renounceRole",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "revokeRole",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "relayer",
                type: "address",
            },
        ],
        name: "isRelayer",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "newAdmin",
                type: "address",
            },
        ],
        name: "renounceAdmin",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "adminPauseTransfers",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "adminUnpauseTransfers",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "newThreshold",
                type: "uint256",
            },
        ],
        name: "adminChangeRelayerThreshold",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "relayerAddress",
                type: "address",
            },
        ],
        name: "adminAddRelayer",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "relayerAddress",
                type: "address",
            },
        ],
        name: "adminRemoveRelayer",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "handlerAddress",
                type: "address",
            },
            {
                internalType: "bytes32",
                name: "resourceID",
                type: "bytes32",
            },
            {
                internalType: "address",
                name: "tokenAddress",
                type: "address",
            },
        ],
        name: "adminSetResource",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "handlerAddress",
                type: "address",
            },
            {
                internalType: "bytes32",
                name: "resourceID",
                type: "bytes32",
            },
            {
                internalType: "address",
                name: "contractAddress",
                type: "address",
            },
            {
                internalType: "bytes4",
                name: "depositFunctionSig",
                type: "bytes4",
            },
            {
                internalType: "bytes4",
                name: "executeFunctionSig",
                type: "bytes4",
            },
        ],
        name: "adminSetGenericResource",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "handlerAddress",
                type: "address",
            },
            {
                internalType: "address",
                name: "tokenAddress",
                type: "address",
            },
        ],
        name: "adminSetBurnable",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint8",
                name: "originChainID",
                type: "uint8",
            },
            {
                internalType: "uint64",
                name: "depositNonce",
                type: "uint64",
            },
            {
                internalType: "bytes32",
                name: "dataHash",
                type: "bytes32",
            },
        ],
        name: "getProposal",
        outputs: [
            {
                components: [
                    {
                        internalType: "bytes32",
                        name: "_resourceID",
                        type: "bytes32",
                    },
                    {
                        internalType: "bytes32",
                        name: "_dataHash",
                        type: "bytes32",
                    },
                    {
                        internalType: "address[]",
                        name: "_yesVotes",
                        type: "address[]",
                    },
                    {
                        internalType: "address[]",
                        name: "_noVotes",
                        type: "address[]",
                    },
                    {
                        internalType: "enum Bridge.ProposalStatus",
                        name: "_status",
                        type: "uint8",
                    },
                    {
                        internalType: "uint256",
                        name: "_proposedBlock",
                        type: "uint256",
                    },
                ],
                internalType: "struct Bridge.Proposal",
                name: "",
                type: "tuple",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "newFee",
                type: "uint256",
            },
        ],
        name: "adminChangeFee",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "handlerAddress",
                type: "address",
            },
            {
                internalType: "address",
                name: "tokenAddress",
                type: "address",
            },
            {
                internalType: "address",
                name: "recipient",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "amountOrTokenID",
                type: "uint256",
            },
        ],
        name: "adminWithdraw",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint8",
                name: "destinationChainID",
                type: "uint8",
            },
            {
                internalType: "bytes32",
                name: "resourceID",
                type: "bytes32",
            },
            {
                internalType: "bytes",
                name: "data",
                type: "bytes",
            },
        ],
        name: "deposit",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint8",
                name: "chainID",
                type: "uint8",
            },
            {
                internalType: "uint64",
                name: "depositNonce",
                type: "uint64",
            },
            {
                internalType: "bytes32",
                name: "resourceID",
                type: "bytes32",
            },
            {
                internalType: "bytes32",
                name: "dataHash",
                type: "bytes32",
            },
        ],
        name: "voteProposal",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint8",
                name: "chainID",
                type: "uint8",
            },
            {
                internalType: "uint64",
                name: "depositNonce",
                type: "uint64",
            },
            {
                internalType: "bytes32",
                name: "dataHash",
                type: "bytes32",
            },
        ],
        name: "cancelProposal",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint8",
                name: "chainID",
                type: "uint8",
            },
            {
                internalType: "uint64",
                name: "depositNonce",
                type: "uint64",
            },
            {
                internalType: "bytes",
                name: "data",
                type: "bytes",
            },
            {
                internalType: "bytes32",
                name: "resourceID",
                type: "bytes32",
            },
        ],
        name: "executeProposal",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address payable[]",
                name: "addrs",
                type: "address[]",
            },
            {
                internalType: "uint256[]",
                name: "amounts",
                type: "uint256[]",
            },
        ],
        name: "transferFunds",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
];
export const ERC20 = [
    {
        inputs: [
            {
                internalType: "string",
                name: "name",
                type: "string",
            },
            {
                internalType: "string",
                name: "symbol",
                type: "string",
            },
        ],
        stateMutability: "nonpayable",
        type: "constructor",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "owner",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "spender",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "value",
                type: "uint256",
            },
        ],
        name: "Approval",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "from",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "to",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "value",
                type: "uint256",
            },
        ],
        name: "Transfer",
        type: "event",
    },
    {
        inputs: [],
        name: "name",
        outputs: [
            {
                internalType: "string",
                name: "",
                type: "string",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "symbol",
        outputs: [
            {
                internalType: "string",
                name: "",
                type: "string",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "decimals",
        outputs: [
            {
                internalType: "uint8",
                name: "",
                type: "uint8",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "totalSupply",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "balanceOf",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "recipient",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "transfer",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "owner",
                type: "address",
            },
            {
                internalType: "address",
                name: "spender",
                type: "address",
            },
        ],
        name: "allowance",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "spender",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "approve",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "sender",
                type: "address",
            },
            {
                internalType: "address",
                name: "recipient",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
        ],
        name: "transferFrom",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "spender",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "addedValue",
                type: "uint256",
            },
        ],
        name: "increaseAllowance",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "spender",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "subtractedValue",
                type: "uint256",
            },
        ],
        name: "decreaseAllowance",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "nonpayable",
        type: "function",
    },
];
export const WETH = [
    {
        constant: true,
        inputs: [],
        name: "name",
        outputs: [{ name: "", type: "string" }],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            { name: "guy", type: "address" },
            { name: "wad", type: "uint256" },
        ],
        name: "approve",
        outputs: [{ name: "", type: "bool" }],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "totalSupply",
        outputs: [{ name: "", type: "uint256" }],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            { name: "src", type: "address" },
            { name: "dst", type: "address" },
            { name: "wad", type: "uint256" },
        ],
        name: "transferFrom",
        outputs: [{ name: "", type: "bool" }],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [{ name: "wad", type: "uint256" }],
        name: "withdraw",
        outputs: [],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "decimals",
        outputs: [{ name: "", type: "uint8" }],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [{ name: "", type: "address" }],
        name: "balanceOf",
        outputs: [{ name: "", type: "uint256" }],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: true,
        inputs: [],
        name: "symbol",
        outputs: [{ name: "", type: "string" }],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    {
        constant: false,
        inputs: [
            { name: "dst", type: "address" },
            { name: "wad", type: "uint256" },
        ],
        name: "transfer",
        outputs: [{ name: "", type: "bool" }],
        payable: false,
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        constant: false,
        inputs: [],
        name: "deposit",
        outputs: [],
        payable: true,
        stateMutability: "payable",
        type: "function",
    },
    {
        constant: true,
        inputs: [
            { name: "", type: "address" },
            { name: "", type: "address" },
        ],
        name: "allowance",
        outputs: [{ name: "", type: "uint256" }],
        payable: false,
        stateMutability: "view",
        type: "function",
    },
    { payable: true, stateMutability: "payable", type: "fallback" },
    {
        anonymous: false,
        inputs: [
            { indexed: true, name: "src", type: "address" },
            { indexed: true, name: "guy", type: "address" },
            { indexed: false, name: "wad", type: "uint256" },
        ],
        name: "Approval",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            { indexed: true, name: "src", type: "address" },
            { indexed: true, name: "dst", type: "address" },
            { indexed: false, name: "wad", type: "uint256" },
        ],
        name: "Transfer",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            { indexed: true, name: "dst", type: "address" },
            { indexed: false, name: "wad", type: "uint256" },
        ],
        name: "Deposit",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            { indexed: true, name: "src", type: "address" },
            { indexed: false, name: "wad", type: "uint256" },
        ],
        name: "Withdrawal",
        type: "event",
    },
];
export const MultichainRouter = [
    {
        inputs: [
            { internalType: "address", name: "_admin", type: "address" },
            { internalType: "address", name: "_mpc", type: "address" },
            { internalType: "address", name: "_wNATIVE", type: "address" },
            {
                internalType: "address",
                name: "_anycallExecutor",
                type: "address",
            },
            {
                internalType: "address",
                name: "_routerSecurity",
                type: "address",
            },
        ],
        stateMutability: "nonpayable",
        type: "constructor",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "_old",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "_new",
                type: "address",
            },
        ],
        name: "ChangeAdmin",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "string",
                name: "swapID",
                type: "string",
            },
            {
                indexed: true,
                internalType: "bytes32",
                name: "swapoutID",
                type: "bytes32",
            },
            {
                indexed: true,
                internalType: "address",
                name: "token",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "receiver",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "fromChainID",
                type: "uint256",
            },
        ],
        name: "LogAnySwapIn",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "string",
                name: "swapID",
                type: "string",
            },
            {
                indexed: true,
                internalType: "bytes32",
                name: "swapoutID",
                type: "bytes32",
            },
            {
                indexed: true,
                internalType: "address",
                name: "token",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "receiver",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "fromChainID",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "bool",
                name: "success",
                type: "bool",
            },
            {
                indexed: false,
                internalType: "bytes",
                name: "result",
                type: "bytes",
            },
        ],
        name: "LogAnySwapInAndExec",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "bytes32",
                name: "swapoutID",
                type: "bytes32",
            },
            {
                indexed: true,
                internalType: "address",
                name: "token",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "from",
                type: "address",
            },
            {
                indexed: false,
                internalType: "string",
                name: "receiver",
                type: "string",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "toChainID",
                type: "uint256",
            },
        ],
        name: "LogAnySwapOut",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "bytes32",
                name: "swapoutID",
                type: "bytes32",
            },
            {
                indexed: true,
                internalType: "address",
                name: "token",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "from",
                type: "address",
            },
            {
                indexed: false,
                internalType: "string",
                name: "receiver",
                type: "string",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "toChainID",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "string",
                name: "anycallProxy",
                type: "string",
            },
            {
                indexed: false,
                internalType: "bytes",
                name: "data",
                type: "bytes",
            },
        ],
        name: "LogAnySwapOutAndCall",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "oldMPC",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "newMPC",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "applyTime",
                type: "uint256",
            },
        ],
        name: "LogApplyMPC",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: true,
                internalType: "address",
                name: "oldMPC",
                type: "address",
            },
            {
                indexed: true,
                internalType: "address",
                name: "newMPC",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "effectiveTime",
                type: "uint256",
            },
        ],
        name: "LogChangeMPC",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "string",
                name: "swapID",
                type: "string",
            },
            {
                indexed: false,
                internalType: "bytes32",
                name: "swapoutID",
                type: "bytes32",
            },
            {
                indexed: false,
                internalType: "address",
                name: "token",
                type: "address",
            },
            {
                indexed: false,
                internalType: "address",
                name: "receiver",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "fromChainID",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "address",
                name: "anycallProxy",
                type: "address",
            },
            {
                indexed: false,
                internalType: "bytes",
                name: "data",
                type: "bytes",
            },
        ],
        name: "LogRetryExecRecord",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "string",
                name: "swapID",
                type: "string",
            },
            {
                indexed: false,
                internalType: "bytes32",
                name: "swapoutID",
                type: "bytes32",
            },
            {
                indexed: false,
                internalType: "address",
                name: "token",
                type: "address",
            },
            {
                indexed: false,
                internalType: "address",
                name: "receiver",
                type: "address",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "amount",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "uint256",
                name: "fromChainID",
                type: "uint256",
            },
            {
                indexed: false,
                internalType: "bool",
                name: "dontExec",
                type: "bool",
            },
            {
                indexed: false,
                internalType: "bool",
                name: "success",
                type: "bool",
            },
            {
                indexed: false,
                internalType: "bytes",
                name: "result",
                type: "bytes",
            },
        ],
        name: "LogRetrySwapInAndExec",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
        ],
        name: "Paused",
        type: "event",
    },
    {
        anonymous: false,
        inputs: [
            {
                indexed: false,
                internalType: "bytes32",
                name: "role",
                type: "bytes32",
            },
        ],
        name: "Unpaused",
        type: "event",
    },
    {
        inputs: [],
        name: "Call_Paused_ROLE",
        outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "Exec_Paused_ROLE",
        outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "PAUSE_ALL_ROLE",
        outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "Retry_Paused_ROLE",
        outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "Swapin_Paused_ROLE",
        outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "Swapout_Paused_ROLE",
        outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            { internalType: "address[]", name: "proxies", type: "address[]" },
            {
                internalType: "bool[]",
                name: "acceptAnyTokenFlags",
                type: "bool[]",
            },
        ],
        name: "addAnycallProxies",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "admin",
        outputs: [{ internalType: "address", name: "", type: "address" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            { internalType: "address", name: "token", type: "address" },
            { internalType: "uint256", name: "amount", type: "uint256" },
        ],
        name: "anySwapFeeTo",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "string", name: "swapID", type: "string" },
            {
                components: [
                    { internalType: "bytes32", name: "swapoutID", type: "bytes32" },
                    { internalType: "address", name: "token", type: "address" },
                    { internalType: "address", name: "receiver", type: "address" },
                    { internalType: "uint256", name: "amount", type: "uint256" },
                    {
                        internalType: "uint256",
                        name: "fromChainID",
                        type: "uint256",
                    },
                ],
                internalType: "struct SwapInfo",
                name: "swapInfo",
                type: "tuple",
            },
        ],
        name: "anySwapIn",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "string", name: "swapID", type: "string" },
            {
                components: [
                    { internalType: "bytes32", name: "swapoutID", type: "bytes32" },
                    { internalType: "address", name: "token", type: "address" },
                    { internalType: "address", name: "receiver", type: "address" },
                    { internalType: "uint256", name: "amount", type: "uint256" },
                    {
                        internalType: "uint256",
                        name: "fromChainID",
                        type: "uint256",
                    },
                ],
                internalType: "struct SwapInfo",
                name: "swapInfo",
                type: "tuple",
            },
            { internalType: "address", name: "anycallProxy", type: "address" },
            { internalType: "bytes", name: "data", type: "bytes" },
        ],
        name: "anySwapInAndExec",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "string", name: "swapID", type: "string" },
            {
                components: [
                    { internalType: "bytes32", name: "swapoutID", type: "bytes32" },
                    { internalType: "address", name: "token", type: "address" },
                    { internalType: "address", name: "receiver", type: "address" },
                    { internalType: "uint256", name: "amount", type: "uint256" },
                    {
                        internalType: "uint256",
                        name: "fromChainID",
                        type: "uint256",
                    },
                ],
                internalType: "struct SwapInfo",
                name: "swapInfo",
                type: "tuple",
            },
        ],
        name: "anySwapInAuto",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "string", name: "swapID", type: "string" },
            {
                components: [
                    { internalType: "bytes32", name: "swapoutID", type: "bytes32" },
                    { internalType: "address", name: "token", type: "address" },
                    { internalType: "address", name: "receiver", type: "address" },
                    { internalType: "uint256", name: "amount", type: "uint256" },
                    {
                        internalType: "uint256",
                        name: "fromChainID",
                        type: "uint256",
                    },
                ],
                internalType: "struct SwapInfo",
                name: "swapInfo",
                type: "tuple",
            },
        ],
        name: "anySwapInNative",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "string", name: "swapID", type: "string" },
            {
                components: [
                    { internalType: "bytes32", name: "swapoutID", type: "bytes32" },
                    { internalType: "address", name: "token", type: "address" },
                    { internalType: "address", name: "receiver", type: "address" },
                    { internalType: "uint256", name: "amount", type: "uint256" },
                    {
                        internalType: "uint256",
                        name: "fromChainID",
                        type: "uint256",
                    },
                ],
                internalType: "struct SwapInfo",
                name: "swapInfo",
                type: "tuple",
            },
        ],
        name: "anySwapInUnderlying",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "string", name: "swapID", type: "string" },
            {
                components: [
                    { internalType: "bytes32", name: "swapoutID", type: "bytes32" },
                    { internalType: "address", name: "token", type: "address" },
                    { internalType: "address", name: "receiver", type: "address" },
                    { internalType: "uint256", name: "amount", type: "uint256" },
                    {
                        internalType: "uint256",
                        name: "fromChainID",
                        type: "uint256",
                    },
                ],
                internalType: "struct SwapInfo",
                name: "swapInfo",
                type: "tuple",
            },
            { internalType: "address", name: "anycallProxy", type: "address" },
            { internalType: "bytes", name: "data", type: "bytes" },
        ],
        name: "anySwapInUnderlyingAndExec",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "address", name: "token", type: "address" },
            { internalType: "string", name: "to", type: "string" },
            { internalType: "uint256", name: "amount", type: "uint256" },
            { internalType: "uint256", name: "toChainID", type: "uint256" },
        ],
        name: "anySwapOut",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "address", name: "token", type: "address" },
            { internalType: "string", name: "to", type: "string" },
            { internalType: "uint256", name: "amount", type: "uint256" },
            { internalType: "uint256", name: "toChainID", type: "uint256" },
            { internalType: "string", name: "anycallProxy", type: "string" },
            { internalType: "bytes", name: "data", type: "bytes" },
        ],
        name: "anySwapOutAndCall",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "address", name: "token", type: "address" },
            { internalType: "string", name: "to", type: "string" },
            { internalType: "uint256", name: "toChainID", type: "uint256" },
        ],
        name: "anySwapOutNative",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "address", name: "token", type: "address" },
            { internalType: "string", name: "to", type: "string" },
            { internalType: "uint256", name: "toChainID", type: "uint256" },
            { internalType: "string", name: "anycallProxy", type: "string" },
            { internalType: "bytes", name: "data", type: "bytes" },
        ],
        name: "anySwapOutNativeAndCall",
        outputs: [],
        stateMutability: "payable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "address", name: "token", type: "address" },
            { internalType: "string", name: "to", type: "string" },
            { internalType: "uint256", name: "amount", type: "uint256" },
            { internalType: "uint256", name: "toChainID", type: "uint256" },
        ],
        name: "anySwapOutUnderlying",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "address", name: "token", type: "address" },
            { internalType: "string", name: "to", type: "string" },
            { internalType: "uint256", name: "amount", type: "uint256" },
            { internalType: "uint256", name: "toChainID", type: "uint256" },
            { internalType: "string", name: "anycallProxy", type: "string" },
            { internalType: "bytes", name: "data", type: "bytes" },
        ],
        name: "anySwapOutUnderlyingAndCall",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "anycallExecutor",
        outputs: [{ internalType: "address", name: "", type: "address" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [{ internalType: "address", name: "", type: "address" }],
        name: "anycallProxyInfo",
        outputs: [
            { internalType: "bool", name: "supported", type: "bool" },
            { internalType: "bool", name: "acceptAnyToken", type: "bool" },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "applyMPC",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [{ internalType: "address", name: "_admin", type: "address" }],
        name: "changeAdmin",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [{ internalType: "address", name: "_mpc", type: "address" }],
        name: "changeMPC",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            { internalType: "address", name: "token", type: "address" },
            { internalType: "address", name: "newVault", type: "address" },
        ],
        name: "changeVault",
        outputs: [{ internalType: "bool", name: "", type: "bool" }],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "delay",
        outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "delayMPC",
        outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "mpc",
        outputs: [{ internalType: "address", name: "", type: "address" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [{ internalType: "bytes32", name: "role", type: "bytes32" }],
        name: "pause",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [{ internalType: "bytes32", name: "role", type: "bytes32" }],
        name: "paused",
        outputs: [{ internalType: "bool", name: "", type: "bool" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "pendingMPC",
        outputs: [{ internalType: "address", name: "", type: "address" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [{ internalType: "address[]", name: "proxies", type: "address[]" }],
        name: "removeAnycallProxies",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
        name: "retryRecords",
        outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            { internalType: "string", name: "swapID", type: "string" },
            {
                components: [
                    { internalType: "bytes32", name: "swapoutID", type: "bytes32" },
                    { internalType: "address", name: "token", type: "address" },
                    { internalType: "address", name: "receiver", type: "address" },
                    { internalType: "uint256", name: "amount", type: "uint256" },
                    {
                        internalType: "uint256",
                        name: "fromChainID",
                        type: "uint256",
                    },
                ],
                internalType: "struct SwapInfo",
                name: "swapInfo",
                type: "tuple",
            },
            { internalType: "address", name: "anycallProxy", type: "address" },
            { internalType: "bytes", name: "data", type: "bytes" },
            { internalType: "bool", name: "dontExec", type: "bool" },
        ],
        name: "retrySwapinAndExec",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "routerSecurity",
        outputs: [{ internalType: "address", name: "", type: "address" }],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "_routerSecurity",
                type: "address",
            },
        ],
        name: "setRouterSecurity",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [{ internalType: "bytes32", name: "role", type: "bytes32" }],
        name: "unpause",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "wNATIVE",
        outputs: [{ internalType: "address", name: "", type: "address" }],
        stateMutability: "view",
        type: "function",
    },
];
//# sourceMappingURL=abi.js.map