@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
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": "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