@axelar-network/interchain-token-service
Version:
Interchain token service for EVM chains to faciliate interchain token transfers and contract calls
2,116 lines • 140 kB
JSON
{
"_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": "string",
"name": "itsHubAddress_",
"type": "string"
},
{
"internalType": "address",
"name": "tokenManagerImplementation_",
"type": "address"
},
{
"internalType": "address",
"name": "tokenHandler_",
"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": "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": "InvalidHubAddress",
"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": "NotItsHub",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "NotOperatorOrOwner",
"type": "error"
},
{
"inputs": [],
"name": "NotOwner",
"type": "error"
},
{
"inputs": [],
"name": "NotPaused",
"type": "error"
},
{
"inputs": [],
"name": "NotProxy",
"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": "sourceChain",
"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": "LinkTokenReceived",
"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": false,
"internalType": "string",
"name": "chainName",
"type": "string"
}
],
"name": "TrustedChainRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "chainName",
"type": "string"
}
],
"name": "TrustedChainSet",
"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": [
{
"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": "data",
"type": "bytes"
}
],
"name": "callContractWithInterchainToken",
"outputs": [],
"stateMutability": "payable",
"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": [
{
"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": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "string",
"name": "destinationChain",
"type": "string"
},
{
"internalType": "bytes",
"name": "destinationAddress",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "amount",
"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": "string",
"name": "chainName",
"type": "string"
}
],
"name": "isTrustedChain",
"outputs": [
{
"internalType": "bool",
"name": "trusted",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "itsHubAddress",
"outputs": [
{
"internalType": "string",
"name": "hubAddress",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "itsHubAddressHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"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": "chainName",
"type": "string"
}
],
"name": "removeTrustedChain",
"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": "chainName",
"type": "string"
}
],
"name": "setTrustedChain",
"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": "0x61022060405234801561001157600080fd5b50604051615f73380380615f7383398101604081905261003091610314565b82600161003c8161019c565b503060805280516041146100635760405163935461d160e01b815260040160405180910390fd5b6020810180516040830151604184015160c09290925260e05260ff16610100529051902060a0526001600160a01b03861615806100a757506001600160a01b038916155b806100b957506001600160a01b038816155b806100cb57506001600160a01b038716155b806100dd57506001600160a01b038516155b806100ef57506001600160a01b038216155b8061010157506001600160a01b038116155b1561011f5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0380881661012052868116610140528981166101c0528881166101a052851661016052835160000361016b57604051630470832760e11b815260040160405180910390fd5b8351602090940193909320610180526001600160a01b039081166101e05290911661020052506103f3945050505050565b6001600160a01b0381166101c357604051633649397d60e21b815260040160405180910390fd5b6040516001600160a01b038216907f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616390600090a27f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c05560007f9855384122b55936fbfb8ca5120e63c6537a1ac40caf6ae33502b3c5da8c87d155565b80516001600160a01b038116811461025657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261028257600080fd5b81516001600160401b0381111561029b5761029b61025b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102c9576102c961025b565b6040528181528382016020018510156102e157600080fd5b60005b82811015610300576020818601810151838301820152016102e4565b506000918101602001919091529392505050565b60008060008060008060008060006101208a8c03121561033357600080fd5b61033c8a61023f565b985061034a60208b0161023f565b975061035860408b0161023f565b965061036660608b0161023f565b955061037460808b0161023f565b60a08b01519095506001600160401b0381111561039057600080fd5b61039c8c828d01610271565b60c08c015190955090506001600160401b038111156103ba57600080fd5b6103c68c828d01610271565b9350506103d560e08b0161023f565b91506103e46101008b0161023f565b90509295985092959850929598565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051615a5f61051460003960008181610353015281816125bc015281816127ba015281816131950152613be60152600081816103a90152610629015260008181610541015261309b01526000818161045f0152612f260152600081816106d101528181610ae901528181611e8c0152612cd001526000818161088101528181610b3101528181611dd10152611fac01526000818161050d0152613a3201526000818161031201528181610ef60152818161110f0152612b7a01526000611caf01526000611c8d01526000611c6b01526000818161076d01528181610e470152611540015260006116b20152615a5f6000f3fe6080604052600436106102d55760003560e01c80638da5cb5b1161017b578063caca8dbe116100d7578063e30c397811610085578063e30c397814610951578063e82e71f814610973578063f2fde38b14610993578063f49c044a146109b3578063f6e3a229146109c6578063f8c8a826146109e6578063ffd5982a14610a0657600080fd5b8063caca8dbe146108a3578063d25bf0b5146108c3578063da081c73146108d8578063da4886df146108eb578063db4b878c1461090b578063e1d40c771461092b578063e24a240b1461093e57600080fd5b8063a5269ef111610134578063a5269ef1146107af578063ac9650d8146107cf578063b90d6afd146107ef578063c38bb5371461080f578063c506bff41461082f578063c7e6a3cc1461084f578063ca58b6441461086f57600080fd5b80638da5cb5b146106f357806395109d5c1461070857806395a8c58d1461071b5780639ded06df1461073b578063a0ad06941461075b578063a3499c731461078f57600080fd5b8063656576361161023557806379ba5097116101e357806379ba5097146105d65780637e10eb15146105eb5780637e151fa61461060b5780637fb53dc91461064b5780638291286c1461065e57806383d2969614610691578063864a0dcf146106bf57600080fd5b806365657636146104e85780636a22d8cc146104fb5780636ac0d1121461052f5780636d70f7ae146105635780636f3eef621461058357806370756cde146105a3578063710bf322146105b657600080fd5b8063477aedc711610292578063477aedc7146103ed578063491606581461040d5780634a6a42d81461042d5780634f9ae6081461044d5780635b7523b3146104815780635c60da1b146104a15780635c975abb146104c357600080fd5b80630f4433d3146102da578063116191b6146103005780631b3d6e87146103415780631c93b03a146103755780632a709b1414610397578063465a09e0146103cb575b600080fd5b6102ed6102e8366004613f06565b610a26565b6040519081526020015b60405180910390f35b34801561030c57600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b6040516102f79190613fcd565b34801561034d57600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b34801561038157600080fd5b5061038a610c80565b6040516102f79190614031565b3480156103a357600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d757600080fd5b506103eb6103e6366004614088565b610cb0565b005b3480156103f957600080fd5b5061038a6104083660046141bd565b610dc7565b34801561041957600080fd5b506103eb6104283660046141f9565b610de0565b34801561043957600080fd5b506103eb6104483660046142bb565b610fe9565b34801561045957600080fd5b506103347f000000000000000000000000000000000000000000000000000000000000000081565b34801561048d57600080fd5b506103eb61049c3660046141bd565b611028565b3480156104ad57600080fd