UNPKG

@axelar-network/interchain-token-service

Version:

Interchain token service for EVM chains to faciliate interchain token transfers and contract calls

1,954 lines 135 kB
{ "_format": "hh-sol-artifact-1", "contractName": "InterchainTokenService", "sourceName": "contracts/InterchainTokenService.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "tokenManagerDeployer_", "type": "address" }, { "internalType": "address", "name": "interchainTokenDeployer_", "type": "address" }, { "internalType": "address", "name": "gateway_", "type": "address" }, { "internalType": "address", "name": "gasService_", "type": "address" }, { "internalType": "address", "name": "interchainTokenFactory_", "type": "address" }, { "internalType": "string", "name": "chainName_", "type": "string" }, { "internalType": "address", "name": "tokenManagerImplementation_", "type": "address" }, { "internalType": "address", "name": "tokenHandler_", "type": "address" }, { "internalType": "address", "name": "gatewayCaller_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyExecuted", "type": "error" }, { "inputs": [ { "internalType": "enum ITokenManagerType.TokenManagerType", "name": "", "type": "uint8" } ], "name": "CannotDeploy", "type": "error" }, { "inputs": [], "name": "CannotDeployRemotelyToSelf", "type": "error" }, { "inputs": [], "name": "EmptyData", "type": "error" }, { "inputs": [], "name": "EmptyDestinationAddress", "type": "error" }, { "inputs": [], "name": "EmptyParams", "type": "error" }, { "inputs": [], "name": "EmptyTokenAddress", "type": "error" }, { "inputs": [], "name": "EmptyTokenName", "type": "error" }, { "inputs": [], "name": "EmptyTokenSymbol", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "ExecuteWithInterchainTokenFailed", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "ExpressExecuteWithInterchainTokenFailed", "type": "error" }, { "inputs": [], "name": "ExpressExecutorAlreadySet", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "GatewayCallFailed", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "GiveTokenFailed", "type": "error" }, { "inputs": [], "name": "InsufficientValue", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "error", "type": "bytes" } ], "name": "InterchainTokenDeploymentFailed", "type": "error" }, { "inputs": [], "name": "InvalidAddress", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "bytesAddress", "type": "bytes" } ], "name": "InvalidBytesLength", "type": "error" }, { "inputs": [], "name": "InvalidChainName", "type": "error" }, { "inputs": [], "name": "InvalidCodeHash", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "messageType", "type": "uint256" } ], "name": "InvalidExpressMessageType", "type": "error" }, { "inputs": [], "name": "InvalidImplementation", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "messageType", "type": "uint256" } ], "name": "InvalidMessageType", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "version", "type": "uint32" } ], "name": "InvalidMetadataVersion", "type": "error" }, { "inputs": [], "name": "InvalidOwner", "type": "error" }, { "inputs": [], "name": "InvalidOwnerAddress", "type": "error" }, { "inputs": [], "name": "InvalidPayload", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "fromAccount", "type": "address" }, { "internalType": "address", "name": "toAccount", "type": "address" }, { "internalType": "uint256", "name": "accountRoles", "type": "uint256" } ], "name": "InvalidProposedRoles", "type": "error" }, { "inputs": [], "name": "LengthMismatch", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "accountRoles", "type": "uint256" } ], "name": "MissingAllRoles", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "accountRoles", "type": "uint256" } ], "name": "MissingAnyOfRoles", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint8", "name": "role", "type": "uint8" } ], "name": "MissingRole", "type": "error" }, { "inputs": [], "name": "MulticallFailed", "type": "error" }, { "inputs": [], "name": "NotApprovedByGateway", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "NotInterchainTokenFactory", "type": "error" }, { "inputs": [], "name": "NotOwner", "type": "error" }, { "inputs": [], "name": "NotPaused", "type": "error" }, { "inputs": [], "name": "NotProxy", "type": "error" }, { "inputs": [], "name": "NotRemoteService", "type": "error" }, { "inputs": [], "name": "NotSupported", "type": "error" }, { "inputs": [], "name": "Pause", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "PostDeployFailed", "type": "error" }, { "inputs": [], "name": "SetupFailed", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "TakeTokenFailed", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "TokenHandlerFailed", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "error", "type": "bytes" } ], "name": "TokenManagerDeploymentFailed", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" } ], "name": "TokenManagerDoesNotExist", "type": "error" }, { "inputs": [], "name": "UntrustedChain", "type": "error" }, { "inputs": [], "name": "ZeroAddress", "type": "error" }, { "inputs": [], "name": "ZeroAmount", "type": "error" }, { "inputs": [], "name": "ZeroStringLength", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "commandId", "type": "bytes32" }, { "indexed": false, "internalType": "string", "name": "sourceChain", "type": "string" }, { "indexed": false, "internalType": "string", "name": "sourceAddress", "type": "string" }, { "indexed": false, "internalType": "bytes32", "name": "payloadHash", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "expressExecutor", "type": "address" } ], "name": "ExpressExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "commandId", "type": "bytes32" }, { "indexed": false, "internalType": "string", "name": "sourceChain", "type": "string" }, { "indexed": false, "internalType": "string", "name": "sourceAddress", "type": "string" }, { "indexed": false, "internalType": "bytes32", "name": "payloadHash", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "expressExecutor", "type": "address" } ], "name": "ExpressExecutionFulfilled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "tokenAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "string", "name": "symbol", "type": "string" }, { "indexed": false, "internalType": "uint8", "name": "decimals", "type": "uint8" } ], "name": "InterchainTokenDeployed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "indexed": false, "internalType": "string", "name": "tokenName", "type": "string" }, { "indexed": false, "internalType": "string", "name": "tokenSymbol", "type": "string" }, { "indexed": false, "internalType": "uint8", "name": "tokenDecimals", "type": "uint8" }, { "indexed": false, "internalType": "bytes", "name": "minter", "type": "bytes" }, { "indexed": false, "internalType": "string", "name": "destinationChain", "type": "string" } ], "name": "InterchainTokenDeploymentStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "deployer", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "salt", "type": "bytes32" } ], "name": "InterchainTokenIdClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "sourceAddress", "type": "address" }, { "indexed": false, "internalType": "string", "name": "destinationChain", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "destinationAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "bytes32", "name": "dataHash", "type": "bytes32" } ], "name": "InterchainTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "commandId", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "indexed": false, "internalType": "string", "name": "sourceChain", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "sourceAddress", "type": "bytes" }, { "indexed": true, "internalType": "address", "name": "destinationAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes32", "name": "dataHash", "type": "bytes32" } ], "name": "InterchainTransferReceived", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "indexed": false, "internalType": "string", "name": "destinationChain", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "sourceTokenAddress", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "destinationTokenAddress", "type": "bytes" }, { "indexed": true, "internalType": "enum ITokenManagerType.TokenManagerType", "name": "tokenManagerType", "type": "uint8" }, { "indexed": false, "internalType": "bytes", "name": "params", "type": "bytes" } ], "name": "LinkTokenStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "accountRoles", "type": "uint256" } ], "name": "RolesAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "fromAccount", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toAccount", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "accountRoles", "type": "uint256" } ], "name": "RolesProposed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "accountRoles", "type": "uint256" } ], "name": "RolesRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "tokenManager", "type": "address" }, { "indexed": true, "internalType": "enum ITokenManagerType.TokenManagerType", "name": "tokenManagerType", "type": "uint8" }, { "indexed": false, "internalType": "bytes", "name": "params", "type": "bytes" } ], "name": "TokenManagerDeployed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "tokenAddress", "type": "address" }, { "indexed": false, "internalType": "uint8", "name": "decimals", "type": "uint8" } ], "name": "TokenMetadataRegistered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "chain", "type": "string" } ], "name": "TrustedAddressRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "chain", "type": "string" }, { "indexed": false, "internalType": "string", "name": "address_", "type": "string" } ], "name": "TrustedAddressSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "fromOperator", "type": "address" } ], "name": "acceptOperatorship", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "chainName", "outputs": [ { "internalType": "string", "name": "chainName_", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "chainNameHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "sourceChain", "type": "string" }, { "internalType": "string", "name": "sourceAddress", "type": "string" }, { "internalType": "bytes", "name": "payload", "type": "bytes" } ], "name": "contractCallValue", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractId", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "string", "name": "destinationChain", "type": "string" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "bytes", "name": "minter", "type": "bytes" }, { "internalType": "uint256", "name": "gasValue", "type": "uint256" } ], "name": "deployInterchainToken", "outputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" } ], "name": "deployedTokenManager", "outputs": [ { "internalType": "contract ITokenManager", "name": "tokenManager_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "commandId", "type": "bytes32" }, { "internalType": "string", "name": "sourceChain", "type": "string" }, { "internalType": "string", "name": "sourceAddress", "type": "string" }, { "internalType": "bytes", "name": "payload", "type": "bytes" } ], "name": "execute", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "commandId", "type": "bytes32" }, { "internalType": "string", "name": "sourceChain", "type": "string" }, { "internalType": "string", "name": "sourceAddress", "type": "string" }, { "internalType": "bytes", "name": "payload", "type": "bytes" } ], "name": "expressExecute", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "gasService", "outputs": [ { "internalType": "contract IAxelarGasService", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gateway", "outputs": [ { "internalType": "contract IAxelarGateway", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gatewayCaller", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "commandId", "type": "bytes32" }, { "internalType": "string", "name": "sourceChain", "type": "string" }, { "internalType": "string", "name": "sourceAddress", "type": "string" }, { "internalType": "bytes32", "name": "payloadHash", "type": "bytes32" } ], "name": "getExpressExecutor", "outputs": [ { "internalType": "address", "name": "expressExecutor", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint8", "name": "role", "type": "uint8" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "implementation_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" } ], "name": "interchainTokenAddress", "outputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "interchainTokenDeployer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "interchainTokenFactory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" } ], "name": "interchainTokenId", "outputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "internalType": "string", "name": "destinationChain", "type": "string" }, { "internalType": "bytes", "name": "destinationAddress", "type": "bytes" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "metadata", "type": "bytes" }, { "internalType": "uint256", "name": "gasValue", "type": "uint256" } ], "name": "interchainTransfer", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "isOperator", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "chain", "type": "string" }, { "internalType": "string", "name": "address_", "type": "string" } ], "name": "isTrustedAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "string", "name": "destinationChain", "type": "string" }, { "internalType": "bytes", "name": "destinationTokenAddress", "type": "bytes" }, { "internalType": "enum ITokenManagerType.TokenManagerType", "name": "tokenManagerType", "type": "uint8" }, { "internalType": "bytes", "name": "linkParams", "type": "bytes" }, { "internalType": "uint256", "name": "gasValue", "type": "uint256" } ], "name": "linkToken", "outputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" } ], "name": "migrateInterchainToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "paused_", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOwner", "outputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "proposeOperatorship", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "proposeOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "enum ITokenManagerType.TokenManagerType", "name": "tokenManagerType", "type": "uint8" }, { "internalType": "bytes", "name": "linkParams", "type": "bytes" } ], "name": "registerCustomToken", "outputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "gasValue", "type": "uint256" } ], "name": "registerTokenMetadata", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" } ], "name": "registeredTokenAddress", "outputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "chain", "type": "string" } ], "name": "removeTrustedAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32[]", "name": "tokenIds", "type": "bytes32[]" }, { "internalType": "uint256[]", "name": "flowLimits", "type": "uint256[]" } ], "name": "setFlowLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "paused", "type": "bool" } ], "name": "setPauseStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "chain", "type": "string" }, { "internalType": "string", "name": "address_", "type": "string" } ], "name": "setTrustedAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "setup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "tokenHandler", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" } ], "name": "tokenManagerAddress", "outputs": [ { "internalType": "address", "name": "tokenManagerAddress_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenManagerDeployer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenManagerImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "transferOperatorship", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "tokenId", "type": "bytes32" }, { "internalType": "address", "name": "sourceAddress", "type": "address" }, { "internalType": "string", "name": "destinationChain", "type": "string" }, { "internalType": "bytes", "name": "destinationAddress", "type": "bytes" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "metadata", "type": "bytes" } ], "name": "transmitInterchainTransfer", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "chain", "type": "string" } ], "name": "trustedAddress", "outputs": [ { "internalType": "string", "name": "trustedAddress_", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "chain", "type": "string" } ], "name": "trustedAddressHash", "outputs": [ { "internalType": "bytes32", "name": "trustedAddressHash_", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes32", "name": "newImplementationCodeHash", "type": "bytes32" }, { "internalType": "bytes", "name": "params", "type": "bytes" } ], "name": "upgrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6101c060405234801561001157600080fd5b50604051615dd6380380615dd683398101604081905261003091610239565b600161003b81610164565b50306080526001600160a01b038616158061005d57506001600160a01b038916155b8061006f57506001600160a01b038816155b8061008157506001600160a01b038716155b8061009357506001600160a01b038516155b806100a557506001600160a01b038316155b806100b757506001600160a01b038216155b806100c957506001600160a01b038116155b156100e75760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0380881660a05286811660c0528981166101405288811661012052851660e052835160000361013057604051630470832760e11b815260040160405180910390fd5b8351602090940193909320610100526001600160a01b0391821661016052811661018052166101a0525061038c9350505050565b6001600160a01b03811661018b57604051633649397d60e21b815260040160405180910390fd5b6040516001600160a01b038216907f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616390600090a27f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05560007f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d155565b80516001600160a01b038116811461021e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060008060006101208a8c03121561025857600080fd5b6102618a610207565b985061026f60208b01610207565b975061027d60408b01610207565b965061028b60608b01610207565b955061029960808b01610207565b60a08b01519095506001600160401b038111156102b557600080fd5b8a01601f81018c136102c657600080fd5b80516001600160401b038111156102df576102df610223565b604051601f8201601f19908116603f011681016001600160401b038111828210171561030d5761030d610223565b6040528181528282016020018e101561032557600080fd5b60005b8281101561034457602081850181015183830182015201610328565b5060006020838301015280965050505061036060c08b01610207565b925061036e60e08b01610207565b915061037d6101008b01610207565b90509295985092959850929598565b60805160a05160c05160e05161010051610120516101405161016051610180516101a05161595f610477600039600081816102c0015261277401526000818161035f015281816121ac015281816123af01528181612e9b0152613aff0152600081816103b5015261061501526000818161052d0152612da101526000818161046b0152612c2c0152600081816106bd01528181610a6601528181611c14015261290901526000818161084601528181610aae01528181611b590152611ce7015260006104f901526000818161032b01528181610de00152610f9301526000611498015261595f6000f3fe6080604052600436106102a95760003560e01c806383d2969611610165578063c7e6a3cc116100cc578063e30c397811610085578063e30c3978146108ce578063e82e71f8146108f0578063f2fde38b14610910578063f49c044a14610930578063f6e3a22914610943578063f8c8a82614610963578063ffd5982a1461098357600080fd5b8063c7e6a3cc14610814578063ca58b64414610834578063da081c7314610868578063da4886df1461087b578063dc88dfd11461089b578063e1d40c77146108bb57600080fd5b8063a3499c731161011e578063a3499c7314610754578063a5269ef114610774578063ac9650d814610794578063b90d6afd146107b4578063c38bb537146107d4578063c506bff4146107f457600080fd5b806383d296961461067d578063864a0dcf146106ab5780638da5cb5b146106df57806395a8c58d146106f45780639ded06df146107145780639f409d771461073457600080fd5b80635c975abb1161021457806370756cde116101cd57806370756cde1461058f578063710bf322146105a257806379ba5097146105c25780637e10eb15146105d75780637e151fa6146105f75780637fb53dc9146106375780638291286c1461064a57600080fd5b80635c975abb146104af57806365657636146104d45780636a22d8cc146104e75780636ac0d1121461051b5780636d70f7ae1461054f5780636f3eef621461056f57600080fd5b8063465a09e011610266578063465a09e0146103d7578063477aedc7146103f957806349160658146104195780634a6a42d8146104395780634f9ae608146104595780635c60da1b1461048d57600080fd5b80630af20483146102ae5780630f4433d3146102f8578063116191b6146103195780631b3d6e871461034d5780631c93b03a146103815780632a709b14146103a3575b600080fd5b3480156102ba57600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b6040516102ef9190613db4565b60405180910390f35b61030b610306366004613e16565b6109a3565b6040519081526020016102ef565b34801561032557600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b34801561035957600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b34801561038d57600080fd5b50610396610bfc565b6040516102ef9190613f2d565b3480156103af57600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e357600080fd5b506103f76103f2366004613f84565b610c2c565b005b34801561040557600080fd5b506103966104143660046140b9565b610d43565b34801561042557600080fd5b506103f76104343660046140f5565b610d5c565b34801561044557600080fd5b506103f76104543660046141b7565b610ed3565b34801561046557600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b34801561049957600080fd5b50600080516020615748833981519152546102e2565b3480156104bb57600080fd5b506104c4610f12565b60405190151581526020016102ef565b6103f76104e23660046140f5565b610f25565b3480156104f357600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b34801561052757600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b34801561055b57600080fd5b506104c461056a3660046141b7565b6110b5565b34801561057b57600080fd5b506103f761058a3660046141b7565b6110c2565b6103f761059d3660046141d4565b6110fd565b3480156105ae57600080fd5b506103f76105bd3660046141b7565b611154565b3480156105ce57600080fd5b506103f76111f1565b3480156105e357600080fd5b506102e26105f2366004614297565b611240565b34801561060357600080fd5b506102e2610612366004614297565b507f000000000000000000000000000000000000000000000000000000000000000090565b6103f76106453660046142b0565b61127c565b34801561065657600080fd5b507ff407da03daa7b4243ffb261daad9b01d221ea90ab941948cd48101563654ea8661030b565b34801561068957600080fd5b5061069d6106983660046142dc565b6113db565b6040516102ef92919061437f565b3480156106b757600080fd5b5061030b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106eb57600080fd5b506102e261144e565b34801561070057600080fd5b506104c461070f3660046143b7565b611473565b34801561072057600080fd5b506103f761072f3660046143f0565b611495565b34801561074057600080fd5b506103f761074f366004614431565b6114e8565b34801561076057600080fd5b506103f761076f366004614498565b611522565b34801561078057600080fd5b5061030b61078f3660046142b0565b611787565b6107a76107a23660046144e7565b6117dc565b6040516102ef919061451c565b3480156107c057600080fd5b506102e26107cf366004614297565b611912565b3480156107e057600080fd5b506103f76107ef36600461458f565b61197e565b34801561080057600080fd5b506104c461080f3660046145ac565b6119c4565b34801561082057600080fd5b506102e261082f366004614603565b611a2a565b34801561084057600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b6103f7610876366004614688565b611a45565b34801561088757600080fd5b506103f76108963660046141b7565b611ae1565b3480156108a757600080fd5b506103f76108b63660046140b9565b611aed565b61030b6108c9366004614720565b611b26565b3480156108da57600080fd5b50600080516020615788833981519152546102e2565b3480156108fc57600080fd5b506102e261090b366004614297565b611c6e565b34801561091c57600080fd5b506103f761092b3660046141b7565b611c84565b61030b61093e366004614807565b611cb4565b34801561094f57600080fd5b506103f761095e366004614297565b611ddb565b34801561096f57600080fd5b506102e261097e366004614297565b611ed9565b34801561098f57600080fd5b5061030b61099e3660046140b9565b611ee4565b60006109ad610f12565b156109cb576040516334c2d01160e11b815260040160405180910390fd5b60008690036109ed5760405163c6f4c06f60e01b815260040160405180910390fd5b6000856004811115610a0157610a01614879565b03610a2a5784604051630a7dda8360e01b8152600401610a2191906148a3565b60405180910390fd5b6000889003610a4c57604051630280e1e560e61b815260040160405180910390fd5b8888604051610a5c9291906148b1565b60405180910390207f000000000000000000000000000000000000000000000000000000000000000003610aa357604051633a6aed5960e21b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168103610ad8575060005b610ae2818c611787565b91508a816001600160a01b03168360008051602061576883398151915260405160405180910390a46000610b26610b1884611912565b6001600160a01b0316611ef8565b9050866004811115610b3a57610b3a614879565b837f6d8eb6e760238fe99c48de1a8bec4365cbeead2dbe47669c989722eaaa64a8478d8d858e8e8d8d604051610b7697969594939291906148ea565b60405180910390a3600060058489848d8d8c8c604051602001610ba0989796959493929190614948565b60408051601f198184030181526020601f8f018190048102840181019092528d83529250610bec91908e908e908190840183828082843760009201829052508693509150899050611f26565b5050509998505050505050505050565b6060610c277f0e2c162a1f4b5cff9fdbd6b34678a9bcb9898a0b9fbca695b112d61688d8b2ac611f47565b905090565b6001610c47610c3a33611fda565b600160ff84161b161