{ "address": "0x5523D3c98809DdDB82C686E152F5C58B1B0fB59E", "constructorArgs": "0x000000000000000000000000bd88862fcc17de436f7bd17276c537acadda9a67", "receipt": { "hash": "0x3f5d366d610b8c1f93e6a174ea2f51cff7bdfbc04f0d5f1a2a0fdd152ecf868b", "blockNumber": 189697806 }, "abi": [ { "type": "constructor", "inputs": [ { "name": "_owner", "type": "address", "internalType": "address" } ], "stateMutability": "nonpayable" }, { "type": "function", "name": "DEFAULT_ADMIN_ROLE", "inputs": [], "outputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "stateMutability": "view" }, { "type": "function", "name": "DISPUTE_PERIOD", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "FEE_BPS", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "FEE_RATE_MAX", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "GOVERNOR_ROLE", "inputs": [], "outputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "stateMutability": "view" }, { "type": "function", "name": "GUARD_ROLE", "inputs": [], "outputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "stateMutability": "view" }, { "type": "function", "name": "MIN_DEADLINE_PERIOD", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "REFUNDER_ROLE", "inputs": [], "outputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "stateMutability": "view" }, { "type": "function", "name": "REFUND_DELAY", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "RELAYER_ROLE", "inputs": [], "outputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "stateMutability": "view" }, { "type": "function", "name": "bridge", "inputs": [ { "name": "params", "type": "tuple", "internalType": "struct IFastBridge.BridgeParams", "components": [ { "name": "dstChainId", "type": "uint32", "internalType": "uint32" }, { "name": "sender", "type": "address", "internalType": "address" }, { "name": "to", "type": "address", "internalType": "address" }, { "name": "originToken", "type": "address", "internalType": "address" }, { "name": "destToken", "type": "address", "internalType": "address" }, { "name": "originAmount", "type": "uint256", "internalType": "uint256" }, { "name": "destAmount", "type": "uint256", "internalType": "uint256" }, { "name": "sendChainGas", "type": "bool", "internalType": "bool" }, { "name": "deadline", "type": "uint256", "internalType": "uint256" } ] } ], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "bridgeProofs", "inputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [ { "name": "timestamp", "type": "uint96", "internalType": "uint96" }, { "name": "relayer", "type": "address", "internalType": "address" } ], "stateMutability": "view" }, { "type": "function", "name": "bridgeRelays", "inputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [ { "name": "", "type": "bool", "internalType": "bool" } ], "stateMutability": "view" }, { "type": "function", "name": "bridgeStatuses", "inputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [ { "name": "", "type": "uint8", "internalType": "enum FastBridge.BridgeStatus" } ], "stateMutability": "view" }, { "type": "function", "name": "canClaim", "inputs": [ { "name": "transactionId", "type": "bytes32", "internalType": "bytes32" }, { "name": "relayer", "type": "address", "internalType": "address" } ], "outputs": [ { "name": "", "type": "bool", "internalType": "bool" } ], "stateMutability": "view" }, { "type": "function", "name": "chainGasAmount", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "claim", "inputs": [ { "name": "request", "type": "bytes", "internalType": "bytes" }, { "name": "to", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "deployBlock", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "dispute", "inputs": [ { "name": "transactionId", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "getBridgeTransaction", "inputs": [ { "name": "request", "type": "bytes", "internalType": "bytes" } ], "outputs": [ { "name": "", "type": "tuple", "internalType": "struct IFastBridge.BridgeTransaction", "components": [ { "name": "originChainId", "type": "uint32", "internalType": "uint32" }, { "name": "destChainId", "type": "uint32", "internalType": "uint32" }, { "name": "originSender", "type": "address", "internalType": "address" }, { "name": "destRecipient", "type": "address", "internalType": "address" }, { "name": "originToken", "type": "address", "internalType": "address" }, { "name": "destToken", "type": "address", "internalType": "address" }, { "name": "originAmount", "type": "uint256", "internalType": "uint256" }, { "name": "destAmount", "type": "uint256", "internalType": "uint256" }, { "name": "originFeeAmount", "type": "uint256", "internalType": "uint256" }, { "name": "sendChainGas", "type": "bool", "internalType": "bool" }, { "name": "deadline", "type": "uint256", "internalType": "uint256" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" } ] } ], "stateMutability": "pure" }, { "type": "function", "name": "getRoleAdmin", "inputs": [ { "name": "role", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [ { "name": "", "type": "bytes32", "internalType": "bytes32" } ], "stateMutability": "view" }, { "type": "function", "name": "getRoleMember", "inputs": [ { "name": "role", "type": "bytes32", "internalType": "bytes32" }, { "name": "index", "type": "uint256", "internalType": "uint256" } ], "outputs": [ { "name": "", "type": "address", "internalType": "address" } ], "stateMutability": "view" }, { "type": "function", "name": "getRoleMemberCount", "inputs": [ { "name": "role", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "grantRole", "inputs": [ { "name": "role", "type": "bytes32", "internalType": "bytes32" }, { "name": "account", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "hasRole", "inputs": [ { "name": "role", "type": "bytes32", "internalType": "bytes32" }, { "name": "account", "type": "address", "internalType": "address" } ], "outputs": [ { "name": "", "type": "bool", "internalType": "bool" } ], "stateMutability": "view" }, { "type": "function", "name": "nonce", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "protocolFeeRate", "inputs": [], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "protocolFees", "inputs": [ { "name": "", "type": "address", "internalType": "address" } ], "outputs": [ { "name": "", "type": "uint256", "internalType": "uint256" } ], "stateMutability": "view" }, { "type": "function", "name": "prove", "inputs": [ { "name": "request", "type": "bytes", "internalType": "bytes" }, { "name": "destTxHash", "type": "bytes32", "internalType": "bytes32" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "refund", "inputs": [ { "name": "request", "type": "bytes", "internalType": "bytes" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "relay", "inputs": [ { "name": "request", "type": "bytes", "internalType": "bytes" } ], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "renounceRole", "inputs": [ { "name": "role", "type": "bytes32", "internalType": "bytes32" }, { "name": "callerConfirmation", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "revokeRole", "inputs": [ { "name": "role", "type": "bytes32", "internalType": "bytes32" }, { "name": "account", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "setChainGasAmount", "inputs": [ { "name": "newChainGasAmount", "type": "uint256", "internalType": "uint256" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "setProtocolFeeRate", "inputs": [ { "name": "newFeeRate", "type": "uint256", "internalType": "uint256" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "supportsInterface", "inputs": [ { "name": "interfaceId", "type": "bytes4", "internalType": "bytes4" } ], "outputs": [ { "name": "", "type": "bool", "internalType": "bool" } ], "stateMutability": "view" }, { "type": "function", "name": "sweepProtocolFees", "inputs": [ { "name": "token", "type": "address", "internalType": "address" }, { "name": "recipient", "type": "address", "internalType": "address" } ], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "BridgeDepositClaimed", "inputs": [ { "name": "transactionId", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "relayer", "type": "address", "indexed": true, "internalType": "address" }, { "name": "to", "type": "address", "indexed": true, "internalType": "address" }, { "name": "token", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "BridgeDepositRefunded", "inputs": [ { "name": "transactionId", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "to", "type": "address", "indexed": true, "internalType": "address" }, { "name": "token", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "BridgeProofDisputed", "inputs": [ { "name": "transactionId", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "relayer", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "BridgeProofProvided", "inputs": [ { "name": "transactionId", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "relayer", "type": "address", "indexed": true, "internalType": "address" }, { "name": "transactionHash", "type": "bytes32", "indexed": false, "internalType": "bytes32" } ], "anonymous": false }, { "type": "event", "name": "BridgeRelayed", "inputs": [ { "name": "transactionId", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "relayer", "type": "address", "indexed": true, "internalType": "address" }, { "name": "to", "type": "address", "indexed": true, "internalType": "address" }, { "name": "originChainId", "type": "uint32", "indexed": false, "internalType": "uint32" }, { "name": "originToken", "type": "address", "indexed": false, "internalType": "address" }, { "name": "destToken", "type": "address", "indexed": false, "internalType": "address" }, { "name": "originAmount", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "destAmount", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "chainGasAmount", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "BridgeRequested", "inputs": [ { "name": "transactionId", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" }, { "name": "request", "type": "bytes", "indexed": false, "internalType": "bytes" }, { "name": "destChainId", "type": "uint32", "indexed": false, "internalType": "uint32" }, { "name": "originToken", "type": "address", "indexed": false, "internalType": "address" }, { "name": "destToken", "type": "address", "indexed": false, "internalType": "address" }, { "name": "originAmount", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "destAmount", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "sendChainGas", "type": "bool", "indexed": false, "internalType": "bool" } ], "anonymous": false }, { "type": "event", "name": "ChainGasAmountUpdated", "inputs": [ { "name": "oldChainGasAmount", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "newChainGasAmount", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "FeeRateUpdated", "inputs": [ { "name": "oldFeeRate", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "newFeeRate", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "FeesSwept", "inputs": [ { "name": "token", "type": "address", "indexed": false, "internalType": "address" }, { "name": "recipient", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" } ], "anonymous": false }, { "type": "event", "name": "RoleAdminChanged", "inputs": [ { "name": "role", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "previousAdminRole", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "newAdminRole", "type": "bytes32", "indexed": true, "internalType": "bytes32" } ], "anonymous": false }, { "type": "event", "name": "RoleGranted", "inputs": [ { "name": "role", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "event", "name": "RoleRevoked", "inputs": [ { "name": "role", "type": "bytes32", "indexed": true, "internalType": "bytes32" }, { "name": "account", "type": "address", "indexed": true, "internalType": "address" }, { "name": "sender", "type": "address", "indexed": true, "internalType": "address" } ], "anonymous": false }, { "type": "error", "name": "AccessControlBadConfirmation", "inputs": [] }, { "type": "error", "name": "AccessControlUnauthorizedAccount", "inputs": [ { "name": "account", "type": "address", "internalType": "address" }, { "name": "neededRole", "type": "bytes32", "internalType": "bytes32" } ] }, { "type": "error", "name": "AddressEmptyCode", "inputs": [ { "name": "target", "type": "address", "internalType": "address" } ] }, { "type": "error", "name": "AddressInsufficientBalance", "inputs": [ { "name": "account", "type": "address", "internalType": "address" } ] }, { "type": "error", "name": "AmountIncorrect", "inputs": [] }, { "type": "error", "name": "ChainIncorrect", "inputs": [] }, { "type": "error", "name": "DeadlineExceeded", "inputs": [] }, { "type": "error", "name": "DeadlineNotExceeded", "inputs": [] }, { "type": "error", "name": "DeadlineTooShort", "inputs": [] }, { "type": "error", "name": "DisputePeriodNotPassed", "inputs": [] }, { "type": "error", "name": "DisputePeriodPassed", "inputs": [] }, { "type": "error", "name": "FailedInnerCall", "inputs": [] }, { "type": "error", "name": "MsgValueIncorrect", "inputs": [] }, { "type": "error", "name": "SafeERC20FailedOperation", "inputs": [ { "name": "token", "type": "address", "internalType": "address" } ] }, { "type": "error", "name": "SenderIncorrect", "inputs": [] }, { "type": "error", "name": "StatusIncorrect", "inputs": [] }, { "type": "error", "name": "TokenNotContract", "inputs": [] }, { "type": "error", "name": "TransactionRelayed", "inputs": [] }, { "type": "error", "name": "ZeroAddress", "inputs": [] } ] }