@ethsub/sol
Version:
ethsub contracts
1,088 lines (1,081 loc) • 47.4 kB
text/typescript
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
Signer,
utils,
Contract,
ContractFactory,
Overrides,
BigNumberish,
} from "ethers";
import { Provider, TransactionRequest } from "@ethersproject/providers";
import type { Bridge, BridgeInterface } from "../Bridge";
const _abi = [
{
inputs: [
{
internalType: "uint8",
name: "domainID",
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: false,
internalType: "uint8",
name: "destinationDomainID",
type: "uint8",
},
{
indexed: false,
internalType: "bytes32",
name: "resourceID",
type: "bytes32",
},
{
indexed: false,
internalType: "uint64",
name: "depositNonce",
type: "uint64",
},
{
indexed: true,
internalType: "address",
name: "user",
type: "address",
},
{
indexed: false,
internalType: "bytes",
name: "data",
type: "bytes",
},
{
indexed: false,
internalType: "bytes",
name: "handlerResponse",
type: "bytes",
},
],
name: "Deposit",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "bytes",
name: "lowLevelData",
type: "bytes",
},
],
name: "FailedHandlerExecution",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "account",
type: "address",
},
],
name: "Paused",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint8",
name: "originDomainID",
type: "uint8",
},
{
indexed: false,
internalType: "uint64",
name: "depositNonce",
type: "uint64",
},
{
indexed: false,
internalType: "enum Bridge.ProposalStatus",
name: "status",
type: "uint8",
},
{
indexed: false,
internalType: "bytes32",
name: "dataHash",
type: "bytes32",
},
],
name: "ProposalEvent",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint8",
name: "originDomainID",
type: "uint8",
},
{
indexed: false,
internalType: "uint64",
name: "depositNonce",
type: "uint64",
},
{
indexed: false,
internalType: "enum Bridge.ProposalStatus",
name: "status",
type: "uint8",
},
{
indexed: false,
internalType: "bytes32",
name: "dataHash",
type: "bytes32",
},
],
name: "ProposalVote",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "relayer",
type: "address",
},
],
name: "RelayerAdded",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "relayer",
type: "address",
},
],
name: "RelayerRemoved",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "uint256",
name: "newThreshold",
type: "uint256",
},
],
name: "RelayerThresholdChanged",
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: "MAX_RELAYERS",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "RELAYER_ROLE",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint8",
name: "",
type: "uint8",
},
],
name: "_depositCounts",
outputs: [
{
internalType: "uint64",
name: "",
type: "uint64",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "_domainID",
outputs: [
{
internalType: "uint8",
name: "",
type: "uint8",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "_expiry",
outputs: [
{
internalType: "uint40",
name: "",
type: "uint40",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "_fee",
outputs: [
{
internalType: "uint128",
name: "",
type: "uint128",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "_relayerThreshold",
outputs: [
{
internalType: "uint8",
name: "",
type: "uint8",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
name: "_resourceIDToHandlerAddress",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
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: "getRoleMemberIndex",
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: "uint72",
name: "destNonce",
type: "uint72",
},
{
internalType: "bytes32",
name: "dataHash",
type: "bytes32",
},
{
internalType: "address",
name: "relayer",
type: "address",
},
],
name: "_hasVotedOnProposal",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
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: "uint256",
name: "depositFunctionDepositerOffset",
type: "uint256",
},
{
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: "domainID",
type: "uint8",
},
{
internalType: "uint64",
name: "nonce",
type: "uint64",
},
],
name: "adminSetDepositNonce",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint8",
name: "originDomainID",
type: "uint8",
},
{
internalType: "uint64",
name: "depositNonce",
type: "uint64",
},
{
internalType: "bytes32",
name: "dataHash",
type: "bytes32",
},
],
name: "getProposal",
outputs: [
{
components: [
{
internalType: "enum Bridge.ProposalStatus",
name: "_status",
type: "uint8",
},
{
internalType: "uint200",
name: "_yesVotes",
type: "uint200",
},
{
internalType: "uint8",
name: "_yesVotesTotal",
type: "uint8",
},
{
internalType: "uint40",
name: "_proposedBlock",
type: "uint40",
},
],
internalType: "struct Bridge.Proposal",
name: "",
type: "tuple",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "_totalRelayers",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
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: "bytes",
name: "data",
type: "bytes",
},
],
name: "adminWithdraw",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint8",
name: "destinationDomainID",
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: "domainID",
type: "uint8",
},
{
internalType: "uint64",
name: "depositNonce",
type: "uint64",
},
{
internalType: "bytes32",
name: "resourceID",
type: "bytes32",
},
{
internalType: "bytes",
name: "data",
type: "bytes",
},
],
name: "voteProposal",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint8",
name: "domainID",
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: "domainID",
type: "uint8",
},
{
internalType: "uint64",
name: "depositNonce",
type: "uint64",
},
{
internalType: "bytes",
name: "data",
type: "bytes",
},
{
internalType: "bytes32",
name: "resourceID",
type: "bytes32",
},
{
internalType: "bool",
name: "revertOnFail",
type: "bool",
},
],
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",
},
];
const _bytecode =
"0x60806040523480156200001157600080fd5b506040516200345a3803806200345a8339810160408190526200003491620003a3565b6000805460ff199081169091556002805490911660ff871617905562000066836200016d602090811b620019dd17901c565b600260016101000a81548160ff021916908360ff1602179055506200009682620001a060201b62001a041760201c565b6002806101000a8154816001600160801b0302191690836001600160801b03160217905550620000d181620001c860201b62001a291760201c565b6002805464ffffffffff92909216600160901b0264ffffffffff60901b1990921691909117905562000105600033620001f2565b60005b84518110156200016157620001587fe2b7fb3b832174769106daebcfd6d1970523240dda11281102db9363b83b0dc48683815181106200014457fe5b60200260200101516200020260201b60201c565b60010162000108565b505050505050620005cb565b600061010082106200019c5760405162461bcd60e51b815260040162000193906200053a565b60405180910390fd5b5090565b6000600160801b82106200019c5760405162461bcd60e51b81526004016200019390620004cc565b60006501000000000082106200019c5760405162461bcd60e51b8152600401620001939062000503565b620001fe828262000248565b5050565b600082815260016020526040902060020154620002299062000223620002c3565b620002c7565b620001f25760405162461bcd60e51b815260040162000193906200047d565b60008281526001602090815260409091206200026f91839062001a50620002f6821b17901c565b15620001fe576200027f620002c3565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b3390565b60008281526001602090815260408220620002ed91849062001a656200030d821b17901c565b90505b92915050565b6000620002ed836001600160a01b03841662000324565b6000620002ed836001600160a01b03841662000373565b600062000332838362000373565b6200036a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620002f0565b506000620002f0565b60009081526001919091016020526040902054151590565b80516001600160a01b0381168114620002f057600080fd5b600080600080600060a08688031215620003bb578081fd5b8551620003c881620005b8565b602087810151919650906001600160401b03811115620003e6578283fd5b8701601f81018913620003f7578283fd5b80516200040e620004088262000598565b62000571565b81815283810190838501858402850186018d10156200042b578687fd5b8694505b838510156200045957620004448d826200038b565b8352600194909401939185019185016200042f565b5060408b015160608c01516080909c01519a9d919c509a9998509650505050505050565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601e908201527f76616c756520646f6573206e6f742066697420696e2031323820626974730000604082015260600190565b6020808252601d908201527f76616c756520646f6573206e6f742066697420696e2034302062697473000000604082015260600190565b6020808252601c908201527f76616c756520646f6573206e6f742066697420696e2038206269747300000000604082015260600190565b6040518181016001600160401b03811182821017156200059057600080fd5b604052919050565b60006001600160401b03821115620005ae578081fd5b5060209081020190565b60ff81168114620005c857600080fd5b50565b612e7f80620005db6000396000f3fe6080604052600436106102305760003560e01c80639010d07c1161012e578063c0331b3e116100ab578063cdb0f73a1161006f578063cdb0f73a14610678578063d547741f14610698578063d7a9cd79146106b8578063edc20c3c146106cd578063ffaac0eb146106ed57610230565b8063c0331b3e146105d4578063c5b37c22146105f4578063c5ec897014610616578063ca15c87314610638578063cb10f2151461065857610230565b80639dd694f4116100f25780639dd694f41461053b5780639debb3bd1461055d578063a217fddf14610572578063a9cf69fa14610587578063bd2a1820146105b457610230565b80639010d07c146104a657806391c404ac146104c657806391d14854146104e6578063926d7d7f146105065780639d82dd631461051b57610230565b80634e0df3f6116101bc5780637febe63f116101805780637febe63f1461040f578063802aabe81461042f57806380ae1c281461044457806384db809f146104595780638c0c26311461048657610230565b80634e0df3f61461036d578063541d55481461038d5780635a1ad87c146103ba5780635c975abb146103da5780635e1fab0f146103ef57610230565b80632f2ff15d116102035780632f2ff15d146102c057806336568abe146102e05780634603ae38146103005780634b0b919d146103205780634e0560051461034d57610230565b806305e2ca171461023557806317f03ce51461024a578063206a98fd1461026a578063248a9ca31461028a575b600080fd5b61024861024336600461232b565b610702565b005b34801561025657600080fd5b506102486102653660046123a4565b610892565b34801561027657600080fd5b50610248610285366004612451565b610aae565b34801561029657600080fd5b506102aa6102a5366004612217565b610cfe565b6040516102b79190612568565b60405180910390f35b3480156102cc57600080fd5b506102486102db36600461222f565b610d13565b3480156102ec57600080fd5b506102486102fb36600461222f565b610d5b565b34801561030c57600080fd5b5061024861031b3660046121af565b610d9d565b34801561032c57600080fd5b5061034061033b366004612310565b610e2b565b6040516102b79190612c99565b34801561035957600080fd5b50610248610368366004612217565b610e46565b34801561037957600080fd5b506102aa61038836600461222f565b610eab565b34801561039957600080fd5b506103ad6103a836600461201f565b610ed7565b6040516102b7919061255d565b3480156103c657600080fd5b506102486103d53660046120b4565b610ef1565b3480156103e657600080fd5b506103ad610f8b565b3480156103fb57600080fd5b5061024861040a36600461201f565b610f94565b34801561041b57600080fd5b506103ad61042a3660046122e6565b610fde565b34801561043b57600080fd5b506102aa611076565b34801561045057600080fd5b50610248611094565b34801561046557600080fd5b50610479610474366004612217565b6110a6565b6040516102b79190612549565b34801561049257600080fd5b506102486104a136600461203b565b6110c1565b3480156104b257600080fd5b506104796104c1366004612253565b61112e565b3480156104d257600080fd5b506102486104e1366004612217565b61114d565b3480156104f257600080fd5b506103ad61050136600461222f565b6111b7565b34801561051257600080fd5b506102aa6111cf565b34801561052757600080fd5b5061024861053636600461201f565b6111e1565b34801561054757600080fd5b5061055061125c565b6040516102b79190612cad565b34801561056957600080fd5b506102aa611265565b34801561057e57600080fd5b506102aa61126a565b34801561059357600080fd5b506105a76105a23660046123a4565b61126f565b6040516102b79190612c28565b3480156105c057600080fd5b506102486105cf366004612123565b61131e565b3480156105e057600080fd5b506102486105ef3660046123e1565b611354565b34801561060057600080fd5b50610609611797565b6040516102b79190612c73565b34801561062257600080fd5b5061062b6117ac565b6040516102b79190612c87565b34801561064457600080fd5b506102aa610653366004612217565b6117c0565b34801561066457600080fd5b50610248610673366004612073565b6117d7565b34801561068457600080fd5b5061024861069336600461201f565b611868565b3480156106a457600080fd5b506102486106b336600461222f565b61190b565b3480156106c457600080fd5b50610550611945565b3480156106d957600080fd5b506102486106e8366004612377565b611953565b3480156106f957600080fd5b506102486119cd565b61070a611a7a565b6002546201000090046001600160801b031634146107435760405162461bcd60e51b815260040161073a9061281a565b60405180910390fd5b6000838152600460205260409020546001600160a01b0316806107785760405162461bcd60e51b815260040161073a906128b8565b60ff851660009081526003602052604090819020805467ffffffffffffffff19811660016001600160401b039283160191821617909155905163b07e54bb60e01b815282906060906001600160a01b0383169063b07e54bb906107e5908a9033908b908b90600401612588565b600060405180830381600087803b1580156107ff57600080fd5b505af1158015610813573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261083b9190810190612274565b9050336001600160a01b03167f17bc3181e17a9620a479c24e6c606e474ba84fc036877b768926872e8cd0e11f8989868a8a8760405161088096959493929190612cbb565b60405180910390a25050505050505050565b61089a611a9d565b68ffffffffffffffff00600883901b1660ff8416176108b7611f47565b6001600160481b0382166000908152600560209081526040808320868452909152908190208151608081019092528054829060ff1660048111156108f757fe5b600481111561090257fe5b8152905461010081046001600160c81b03166020830152600160d01b810460ff166040830152600160d81b900464ffffffffff166060909101528051909150600181600481111561094f57fe5b14806109665750600281600481111561096457fe5b145b6109825760405162461bcd60e51b815260040161073a9061284a565b600254606083015164ffffffffff600160901b9092048216916109a791439116611ae2565b64ffffffffff16116109cb5760405162461bcd60e51b815260040161073a906129a9565b60048083526001600160481b03841660009081526005602090815260408083208884529091529020835181548593839160ff1916906001908490811115610a0e57fe5b02179055506020820151815460408085015160609095015164ffffffffff16600160d81b026001600160d81b0360ff909616600160d01b0260ff60d01b196001600160c81b0390951661010002610100600160d01b03199094169390931793909316919091179390931617905551600080516020612e0a83398151915290610a9e90889088906004908990612d0c565b60405180910390a1505050505050565b610ab6611b24565b610abe611a7a565b60008281526004602090815260408083205490516001600160a01b039091169268ffffffffffffffff0060088a901b1660ff8b1617929091610b069185918a918a910161251d565b60408051601f1981840301815291815281516020928301206001600160481b03851660009081526005845282812082825290935291209091506002815460ff166004811115610b5157fe5b14610b6e5760405162461bcd60e51b815260040161073a90612974565b805460ff19166003178155838515610be75760405163712467f960e11b81526001600160a01b0382169063e248cff290610bb0908a908d908d906004016125f3565b600060405180830381600087803b158015610bca57600080fd5b505af1158015610bde573d6000803e3d6000fd5b50505050610cc4565b60405163712467f960e11b81526001600160a01b0382169063e248cff290610c17908a908d908d906004016125f3565b600060405180830381600087803b158015610c3157600080fd5b505af1925050508015610c42575060015b610cc4573d808015610c70576040519150601f19603f3d011682016040523d82523d6000602084013e610c75565b606091505b50825460ff191660021783556040517fbd37c1f0d53bb2f33fe4c2104de272fcdeb4d2fef3acdbf1e4ddc3d6833ca37690610cb190839061260d565b60405180910390a1505050505050610cf6565b600080516020612e0a8339815191528b8b600386604051610ce89493929190612d0c565b60405180910390a150505050505b505050505050565b60009081526001602052604090206002015490565b600082815260016020526040902060020154610d3190610501611b58565b610d4d5760405162461bcd60e51b815260040161073a90612699565b610d578282611b5c565b5050565b610d63611b58565b6001600160a01b0316816001600160a01b031614610d935760405162461bcd60e51b815260040161073a90612bd9565b610d578282611bc5565b610da5611c2e565b60005b83811015610e2457848482818110610dbc57fe5b9050602002016020810190610dd1919061201f565b6001600160a01b03166108fc848484818110610de957fe5b905060200201359081150290604051600060405180830381858888f19350505050158015610e1b573d6000803e3d6000fd5b50600101610da8565b5050505050565b6003602052600090815260409020546001600160401b031681565b610e4e611c2e565b610e57816119dd565b600260016101000a81548160ff021916908360ff1602179055507fa20d6b84cd798a24038be305eff8a45ca82ef54a2aa2082005d8e14c0a4746c881604051610ea09190612568565b60405180910390a150565b60008281526001602081815260408084206001600160a01b038616855290920190529020545b92915050565b6000610ed1600080516020612e2a833981519152836111b7565b610ef9611c2e565b60008581526004602081905260409182902080546001600160a01b0319166001600160a01b038a16908117909155915163de319d9960e01b815288929163de319d9991610f50918a918a918a918a918a91016125bd565b600060405180830381600087803b158015610f6a57600080fd5b505af1158015610f7e573d6000803e3d6000fd5b5050505050505050505050565b60005460ff1690565b610f9c611c2e565b336001600160a01b0382161415610fc55760405162461bcd60e51b815260040161073a90612a85565b610fd0600082610d13565b610fdb600033610d5b565b50565b6001600160481b0383166000908152600560209081526040808320858452909152808220815160808101909252805461106e929190829060ff16600481111561102357fe5b600481111561102e57fe5b8152905461010081046001600160c81b03166020830152600160d01b810460ff166040830152600160d81b900464ffffffffff1660609091015283611c55565b949350505050565b600061108f600080516020612e2a8339815191526117c0565b905090565b61109c611c2e565b6110a4611c78565b565b6004602052600090815260409020546001600160a01b031681565b6110c9611c2e565b6040516307b7ed9960e01b815282906001600160a01b038216906307b7ed99906110f7908590600401612549565b600060405180830381600087803b15801561111157600080fd5b505af1158015611125573d6000803e3d6000fd5b50505050505050565b60008281526001602052604081206111469083611cc7565b9392505050565b611155611c2e565b6002546201000090046001600160801b03168114156111865760405162461bcd60e51b815260040161073a90612b28565b61118f81611a04565b6002806101000a8154816001600160801b0302191690836001600160801b0316021790555050565b60008281526001602052604081206111469083611a65565b600080516020612e2a83398151915281565b6111f9600080516020612e2a833981519152826111b7565b6112155760405162461bcd60e51b815260040161073a90612745565b61122d600080516020612e2a8339815191528261190b565b7f10e1f7ce9fd7d1b90a66d13a2ab3cb8dd7f29f3f8d520b143b063ccfbab6906b81604051610ea09190612549565b60025460ff1681565b60c881565b600081565b611277611f47565b6001600160481b0360ff858116600886901b68ffffffffffffffff00161791821660009081526005602090815260408083208784529091529081902081516080810190925280549192909183911660048111156112d057fe5b60048111156112db57fe5b8152905461010081046001600160c81b03166020830152600160d01b810460ff166040830152600160d81b900464ffffffffff1660609091015295945050505050565b611326611c2e565b60405163025a3c9960e21b815282906001600160a01b03821690630968f264906110f790859060040161260d565b61135c611b24565b611364611a7a565b60008381526004602090815260408083205490516001600160a01b039091169268ffffffffffffffff00600889901b1660ff8a16179290916113ac918591889188910161251d565b6040516020818303038152906040528051906020012090506113cc611f47565b6001600160481b0383166000908152600560209081526040808320858452909152908190208151608081019092528054829060ff16600481111561140c57fe5b600481111561141757fe5b8152905461010081046001600160c81b0316602080840191909152600160d01b820460ff16604080850191909152600160d81b90920464ffffffffff1660609093019290925260008a815260049092529020549091506001600160a01b03166114925760405162461bcd60e51b815260040161073a90612b5f565b6002815160048111156114a157fe5b14156114bf576114b6898988888b6001610aae565b50505050610e24565b805160019060048111156114cf57fe5b11156114ed5760405162461bcd60e51b815260040161073a90612b96565b6114f78133611c55565b156115145760405162461bcd60e51b815260040161073a906126e8565b60008151600481111561152357fe5b141561158457506040805160808101825260018082526000602083018190528284015264ffffffffff4316606083015291519091600080516020612e0a83398151915291611577918c918c91908790612d0c565b60405180910390a16115e6565b600254606082015164ffffffffff600160901b9092048216916115a991439116611ae2565b64ffffffffff1611156115e6576004808252604051600080516020612e0a833981519152916115dd918c918c918790612d0c565b60405180910390a15b6004815160048111156115f557fe5b146116bd5761161a61160633611cd3565b82602001516001600160c81b031617611d01565b6001600160c81b031660208201526040808201805160010160ff169052815190517f25f8daaa4635a7729927ba3f5b3d59cc3320aca7c32c9db4e7ca7b95743436409161166c918c918c918790612d0c565b60405180910390a1600254604082015160ff61010090920482169116106116bd576002808252604051600080516020612e0a833981519152916116b4918c918c918790612d0c565b60405180910390a15b6001600160481b038316600090815260056020908152604080832085845290915290208151815483929190829060ff191660018360048111156116fc57fe5b021790555060208201518154604084015160609094015164ffffffffff16600160d81b026001600160d81b0360ff909516600160d01b0260ff60d01b196001600160c81b0390941661010002610100600160d01b03199093169290921792909216179290921691909117905560028151600481111561177757fe5b141561178c5761178c898988888b6000610aae565b505050505050505050565b6002546201000090046001600160801b031681565b600254600160901b900464ffffffffff1681565b6000818152600160205260408120610ed190611d26565b6117df611c2e565b60008281526004602081905260409182902080546001600160a01b0319166001600160a01b0387169081179091559151635c7d1b9b60e11b815285929163b8fa373691611830918791879101612571565b600060405180830381600087803b15801561184a57600080fd5b505af115801561185e573d6000803e3d6000fd5b5050505050505050565b611880600080516020612e2a833981519152826111b7565b1561189d5760405162461bcd60e51b815260040161073a90612a4e565b60c86118a7611076565b106118c45760405162461bcd60e51b815260040161073a906127ea565b6118dc600080516020612e2a83398151915282610d13565b7f03580ee9f53a62b7cb409a2cb56f9be87747dd15017afc5cef6eef321e4fb2c581604051610ea09190612549565b60008281526001602052604090206002015461192990610501611b58565b610d935760405162461bcd60e51b815260040161073a90612924565b600254610100900460ff1681565b61195b611c2e565b60ff82166000908152600360205260409020546001600160401b03908116908216116119995760405162461bcd60e51b815260040161073a90612a08565b60ff919091166000908152600360205260409020805467ffffffffffffffff19166001600160401b03909216919091179055565b6119d5611c2e565b6110a4611d31565b60006101008210611a005760405162461bcd60e51b815260040161073a90612881565b5090565b6000600160801b8210611a005760405162461bcd60e51b815260040161073a9061277c565b6000650100000000008210611a005760405162461bcd60e51b815260040161073a906127b3565b6000611146836001600160a01b038416611d73565b6000611146836001600160a01b038416611dbd565b60005460ff16156110a45760405162461bcd60e51b815260040161073a906129de565b611aa86000336111b7565b80611ac65750611ac6600080516020612e2a833981519152336111b7565b6110a45760405162461bcd60e51b815260040161073a90612662565b600061114683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dd5565b611b3c600080516020612e2a833981519152336111b7565b6110a45760405162461bcd60e51b815260040161073a90612abc565b3390565b6000828152600160205260409020611b749082611a50565b15610d5757611b81611b58565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152600160205260409020611bdd9082611e01565b15610d5757611bea611b58565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b611c396000336111b7565b6110a45760405162461bcd60e51b815260040161073a90612af1565b60008083602001516001600160c81b0316611c6f84611cd3565b16119392505050565b611c80611a7a565b6000805460ff191660011790556040517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890611cbd903390612549565b60405180910390a1565b60006111468383611e16565b6000611cf7611cf0600080516020612e2a83398151915284610eab565b6001611ae2565b6001901b92915050565b6000600160c81b8210611a005760405162461bcd60e51b815260040161073a906128ed565b6000610ed182611e5b565b611d39611e5f565b6000805460ff191690556040517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90611cbd903390612549565b6000611d7f8383611dbd565b611db557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610ed1565b506000610ed1565b60009081526001919091016020526040902054151590565b60008184841115611df95760405162461bcd60e51b815260040161073a919061260d565b505050900390565b6000611146836001600160a01b038416611e81565b81546000908210611e395760405162461bcd60e51b815260040161073a90612620565b826000018281548110611e4857fe5b9060005260206000200154905092915050565b5490565b60005460ff166110a45760405162461bcd60e51b815260040161073a90612717565b60008181526001830160205260408120548015611f3d5783546000198083019190810190600090879083908110611eb457fe5b9060005260206000200154905080876000018481548110611ed157fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080611f0157fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610ed1565b6000915050610ed1565b604080516080810190915280600081526000602082018190526040820181905260609091015290565b60008083601f840112611f81578182fd5b5081356001600160401b03811115611f97578182fd5b6020830191508360208083028501011115611fb157600080fd5b9250929050565b60008083601f840112611fc9578182fd5b5081356001600160401b03811115611fdf578182fd5b602083019150836020828501011115611fb157600080fd5b80356001600160401b0381168114610ed157600080fd5b803560ff81168114610ed157600080fd5b600060208284031215612030578081fd5b813561114681612dba565b6000806040838503121561204d578081fd5b823561205881612dba565b9150602083013561206881612dba565b809150509250929050565b600080600060608486031215612087578081fd5b833561209281612dba565b92506020840135915060408401356120a981612dba565b809150509250925092565b60008060008060008060c087890312156120cc578182fd5b86356120d781612dba565b95506020870135945060408701356120ee81612dba565b935060608701356120fe81612dcf565b92506080870135915060a087013561211581612dcf565b809150509295509295509295565b60008060408385031215612135578182fd5b823561214081612dba565b915060208301356001600160401b0381111561215a578182fd5b8301601f8101851361216a578182fd5b803561217d61217882612d67565b612d41565b818152866020838501011115612191578384fd5b81602084016020830137908101602001929092525090939092509050565b600080600080604085870312156121c4578384fd5b84356001600160401b03808211156121da578586fd5b6121e688838901611f70565b909650945060208701359150808211156121fe578384fd5b5061220b87828801611f70565b95989497509550505050565b600060208284031215612228578081fd5b5035919050565b60008060408385031215612241578182fd5b82359150602083013561206881612dba565b60008060408385031215612265578182fd5b50508035926020909101359150565b600060208284031215612285578081fd5b81516001600160401b0381111561229a578182fd5b8201601f810184136122aa578182fd5b80516122b861217882612d67565b8181528560208385010111156122cc578384fd5b6122dd826020830160208601612d8a565b95945050505050565b6000806000606084860312156122fa578081fd5b83356001600160481b0381168114612092578182fd5b600060208284031215612321578081fd5b611146838361200e565b60008060008060608587031215612340578182fd5b61234a868661200e565b93506020850135925060408501356001600160401b0381111561236b578283fd5b61220b87828801611fb8565b60008060408385031215612389578182fd5b823561239481612dfa565b9150602083013561206881612de5565b6000806000606084860312156123b8578081fd5b6123c2858561200e565b92506123d18560208601611ff7565b9150604084013590509250925092565b6000806000806000608086880312156123f8578283fd5b853561240381612dfa565b9450602086013561241381612de5565b93506040860135925060608601356001600160401b03811115612434578182fd5b61244088828901611fb8565b969995985093965092949392505050565b60008060008060008060a08789031215612469578384fd5b612473888861200e565b95506124828860208901611ff7565b945060408701356001600160401b0381111561249c578485fd5b6124a889828a01611fb8565b9095509350506060870135915060808701358015158114612115578182fd5b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452612509816020860160208601612d8a565b601f01601f19169290920160200192915050565b60006bffffffffffffffffffffffff198560601b16825282846014840137910160140190815292915050565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b9182526001600160a01b0316602082015260400190565b8481526001600160a01b03841660208201526060604082018190526000906125b390830184866124c7565b9695505050505050565b9485526001600160a01b039390931660208501526001600160e01b03199182166040850152606084015216608082015260a00190565b6000848252604060208301526122dd6040830184866124c7565b60006020825261114660208301846124f1565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015261647360f01b606082015260800190565b6020808252601e908201527f73656e646572206973206e6f742072656c61796572206f722061646d696e0000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601590820152741c995b185e595c88185b1c9958591e481d9bdd1959605a1b604082015260600190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252601f908201527f6164647220646f65736e277420686176652072656c6179657220726f6c652100604082015260600190565b6020808252601e908201527f76616c756520646f6573206e6f742066697420696e2031323820626974730000604082015260600190565b6020808252601d908201527f76616c756520646f6573206e6f742066697420696e2034302062697473000000604082015260600190565b6020808252601690820152751c995b185e595c9cc81b1a5b5a5d081c995858da195960521b604082015260600190565b602080825260169082015275125b98dbdc9c9958dd08199959481cdd5c1c1b1a595960521b604082015260600190565b6020808252601c908201527f50726f706f73616c2063616e6e6f742062652063616e63656c6c656400000000604082015260600190565b6020808252601c908201527f76616c756520646f6573206e6f742066697420696e2038206269747300000000604082015260600190565b6020808252818101527f7265736f757263654944206e6f74206d617070656420746f2068616e646c6572604082015260600190565b6020808252601e908201527f76616c756520646f6573206e6f742066697420696e2032303020626974730000604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252818101527f50726f706f73616c206d75737420686176652050617373656420737461747573604082015260600190565b6020808252818101527f50726f706f73616c206e6f7420617420657870697279207468726573686f6c64604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526026908201527f446f6573206e6f7420616c6c6f772064656372656d656e7473206f6620746865604082015265206e6f6e636560d01b606082015260800190565b6020808252601e908201527f6164647220616c7265616479206861732072656c6179657220726f6c65210000604082015260600190565b60208082526017908201527f43616e6e6f742072656e6f756e6365206f6e6573656c66000000000000000000604082015260600190565b6020808252818101527f73656e64657220646f65736e277420686176652072656c6179657220726f6c65604082015260600190565b6020808252601e908201527f73656e64657220646f65736e277420686176652061646d696e20726f6c650000604082015260600190565b6020808252601f908201527f43757272656e742066656520697320657175616c20746f206e65772066656500604082015260600190565b60208082526019908201527f6e6f2068616e646c657220666f72207265736f75726365494400000000000000604082015260600190565b60208082526023908201527f70726f706f73616c20616c72656164792065786563757465642f63616e63656c6040820152621b195960ea1b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b8151608082019060058110612c3957fe5b82526020838101516001600160c81b03169083015260408084015160ff169083015260609283015164ffffffffff16929091019190915290565b6001600160801b0391909116815260200190565b64ffffffffff91909116815260200190565b6001600160401b0391909116815260200190565b60ff91909116815260200190565b600060ff881682528660208301526001600160401b038616604083015260a06060830152612ced60a0830185876124c7565b8281036080840152612cff81856124f1565b9998505050505050505050565b60ff851681526001600160401b03841660208201526080810160058410612d2f57fe5b60408201939093526060015292915050565b6040518181016001600160401b0381118282101715612d5f57600080fd5b604052919050565b60006001600160401b03821115612d7c578081fd5b50601f01601f191660200190565b60005b83811015612da5578181015183820152602001612d8d565b83811115612db4576000848401525b50505050565b6001600160a01b0381168114610fdb57600080fd5b6001600160e01b031981168114610fdb57600080fd5b6001600160401b0381168114610fdb57600080fd5b60ff81168114610fdb57600080fdfe968626a768e76ba1363efe44e322a6c4900c5f084e0b45f35e294dfddaa9e0d5e2b7fb3b832174769106daebcfd6d1970523240dda11281102db9363b83b0dc4a264697066735822122082ad76827d98d4068f1623241361f4bd0fd6311c59f11aad4c0afd1db434351264736f6c634300060c0033";
type BridgeConstructorParams =
| [signer?: Signer]
| ConstructorParameters<typeof ContractFactory>;
const isSuperArgs = (
xs: BridgeConstructorParams
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
export class Bridge__factory extends ContractFactory {
constructor(...args: BridgeConstructorParams) {
if (isSuperArgs(args)) {
super(...args);
} else {
super(_abi, _bytecode, args[0]);
}
}
deploy(
domainID: BigNumberish,
initialRelayers: string[],
initialRelayerThreshold: BigNumberish,
fee: BigNumberish,
expiry: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<Bridge> {
return super.deploy(
domainID,
initialRelayers,
initialRelayerThreshold,
fee,
expiry,
overrides || {}
) as Promise<Bridge>;
}
getDeployTransaction(
domainID: BigNumberish,
initialRelayers: string[],
initialRelayerThreshold: BigNumberish,
fee: BigNumberish,
expiry: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): TransactionRequest {
return super.getDeployTransaction(
domainID,
initialRelayers,
initialRelayerThreshold,
fee,
expiry,
overrides || {}
);
}
attach(address: string): Bridge {
return super.attach(address) as Bridge;
}
connect(signer: Signer): Bridge__factory {
return super.connect(signer) as Bridge__factory;
}
static readonly bytecode = _bytecode;
static readonly abi = _abi;
static createInterface(): BridgeInterface {
return new utils.Interface(_abi) as BridgeInterface;
}
static connect(address: string, signerOrProvider: Signer | Provider): Bridge {
return new Contract(address, _abi, signerOrProvider) as Bridge;
}
}