Class InterchainTokenServiceClient

InterchainTokenServiceClient

Description

Type-safe contract client for InterchainTokenService

Example

import { sepolia } from "viem/chains";

const client = createInterchainTokenServiceClient({
chain: sepolia,
address: "0x1234..."
});

Hierarchy (view full)

Constructors

Properties

Methods

Constructors

Properties

abi: readonly [{
    inputs: readonly [{
        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";
    }];
    stateMutability: "nonpayable";
    type: "constructor";
}, {
    inputs: readonly [];
    name: "AlreadyExecuted";
    type: "error";
}, {
    inputs: readonly [];
    name: "EmptyData";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "contractAddress";
        type: "address";
    }];
    name: "ExecuteWithInterchainTokenFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "ExecuteWithTokenNotSupported";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "contractAddress";
        type: "address";
    }];
    name: "ExpressExecuteWithInterchainTokenFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "ExpressExecutorAlreadySet";
    type: "error";
}, {
    inputs: readonly [];
    name: "GatewayToken";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "GiveTokenFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "InsufficientValue";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "error";
        type: "bytes";
    }];
    name: "InterchainTokenDeploymentFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidAddress";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "bytesAddress";
        type: "bytes";
    }];
    name: "InvalidBytesLength";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidChainName";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidCodeHash";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "messageType";
        type: "uint256";
    }];
    name: "InvalidExpressMessageType";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidImplementation";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "messageType";
        type: "uint256";
    }];
    name: "InvalidMessageType";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint32";
        name: "version";
        type: "uint32";
    }];
    name: "InvalidMetadataVersion";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidOwner";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidOwnerAddress";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "fromAccount";
        type: "address";
    }, {
        internalType: "address";
        name: "toAccount";
        type: "address";
    }, {
        internalType: "uint256";
        name: "accountRoles";
        type: "uint256";
    }];
    name: "InvalidProposedRoles";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "implementation";
        type: "address";
    }];
    name: "InvalidTokenManagerImplementationType";
    type: "error";
}, {
    inputs: readonly [];
    name: "LengthMismatch";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint256";
        name: "accountRoles";
        type: "uint256";
    }];
    name: "MissingAllRoles";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint256";
        name: "accountRoles";
        type: "uint256";
    }];
    name: "MissingAnyOfRoles";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint8";
        name: "role";
        type: "uint8";
    }];
    name: "MissingRole";
    type: "error";
}, {
    inputs: readonly [];
    name: "MulticallFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotApprovedByGateway";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotOwner";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotPaused";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotProxy";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotRemoteService";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "caller";
        type: "address";
    }, {
        internalType: "address";
        name: "token";
        type: "address";
    }];
    name: "NotToken";
    type: "error";
}, {
    inputs: readonly [];
    name: "Pause";
    type: "error";
}, {
    inputs: readonly [];
    name: "SetupFailed";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "TakeTokenFailed";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "TokenHandlerFailed";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "error";
        type: "bytes";
    }];
    name: "TokenManagerDeploymentFailed";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "TokenManagerDoesNotExist";
    type: "error";
}, {
    inputs: readonly [];
    name: "UntrustedChain";
    type: "error";
}, {
    inputs: readonly [];
    name: "ZeroAddress";
    type: "error";
}, {
    inputs: readonly [];
    name: "ZeroStringLength";
    type: "error";
}, {
    anonymous: false;
    inputs: readonly [{
        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: readonly [{
        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: false;
        internalType: "string";
        name: "symbol";
        type: "string";
    }, {
        indexed: true;
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }, {
        indexed: true;
        internalType: "address";
        name: "expressExecutor";
        type: "address";
    }];
    name: "ExpressExecutedWithToken";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        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: readonly [{
        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: false;
        internalType: "string";
        name: "symbol";
        type: "string";
    }, {
        indexed: true;
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }, {
        indexed: true;
        internalType: "address";
        name: "expressExecutor";
        type: "address";
    }];
    name: "ExpressExecutionWithTokenFulfilled";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        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: readonly [{
        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: readonly [{
        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: readonly [{
        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: readonly [{
        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: readonly [{
        indexed: true;
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "OwnershipTransferStarted";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "OwnershipTransferred";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "account";
        type: "address";
    }];
    name: "Paused";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "accountRoles";
        type: "uint256";
    }];
    name: "RolesAdded";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        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: readonly [{
        indexed: true;
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "accountRoles";
        type: "uint256";
    }];
    name: "RolesRemoved";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        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: readonly [{
        indexed: true;
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }, {
        indexed: false;
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        indexed: true;
        internalType: "enum ITokenManagerType.TokenManagerType";
        name: "tokenManagerType";
        type: "uint8";
    }, {
        indexed: false;
        internalType: "bytes";
        name: "params";
        type: "bytes";
    }];
    name: "TokenManagerDeploymentStarted";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "string";
        name: "chain";
        type: "string";
    }];
    name: "TrustedAddressRemoved";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "string";
        name: "chain";
        type: "string";
    }, {
        indexed: false;
        internalType: "string";
        name: "address_";
        type: "string";
    }];
    name: "TrustedAddressSet";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "account";
        type: "address";
    }];
    name: "Unpaused";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "newImplementation";
        type: "address";
    }];
    name: "Upgraded";
    type: "event";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "fromOperator";
        type: "address";
    }];
    name: "acceptOperatorship";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "acceptOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        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";
    }, {
        internalType: "uint256";
        name: "gasValue";
        type: "uint256";
    }];
    name: "callContractWithInterchainToken";
    outputs: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [];
    name: "chainName";
    outputs: readonly [{
        internalType: "string";
        name: "chainName_";
        type: "string";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "chainNameHash";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "sourceChain";
        type: "string";
    }, {
        internalType: "string";
        name: "sourceAddress";
        type: "string";
    }, {
        internalType: "bytes";
        name: "payload";
        type: "bytes";
    }];
    name: "contractCallValue";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    name: "contractCallWithTokenValue";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "contractId";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }, {
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        internalType: "enum ITokenManagerType.TokenManagerType";
        name: "tokenManagerType";
        type: "uint8";
    }, {
        internalType: "bytes";
        name: "params";
        type: "bytes";
    }, {
        internalType: "uint256";
        name: "gasValue";
        type: "uint256";
    }];
    name: "deployTokenManager";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    name: "executeWithToken";
    outputs: readonly [];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    name: "expressExecuteWithToken";
    outputs: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "flowInAmount";
    outputs: readonly [{
        internalType: "uint256";
        name: "flowInAmount_";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "flowLimit";
    outputs: readonly [{
        internalType: "uint256";
        name: "flowLimit_";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "flowOutAmount";
    outputs: readonly [{
        internalType: "uint256";
        name: "flowOutAmount_";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "gasService";
    outputs: readonly [{
        internalType: "contract IAxelarGasService";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "gateway";
    outputs: readonly [{
        internalType: "contract IAxelarGateway";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [{
        internalType: "address";
        name: "expressExecutor";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "commandId";
        type: "bytes32";
    }, {
        internalType: "string";
        name: "sourceChain";
        type: "string";
    }, {
        internalType: "string";
        name: "sourceAddress";
        type: "string";
    }, {
        internalType: "bytes32";
        name: "payloadHash";
        type: "bytes32";
    }, {
        internalType: "string";
        name: "symbol";
        type: "string";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "getExpressExecutorWithToken";
    outputs: readonly [{
        internalType: "address";
        name: "expressExecutor";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint8";
        name: "role";
        type: "uint8";
    }];
    name: "hasRole";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "implementation";
    outputs: readonly [{
        internalType: "address";
        name: "implementation_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "interchainTokenAddress";
    outputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "interchainTokenDeployer";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "interchainTokenFactory";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "sender";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }];
    name: "interchainTokenId";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "addr";
        type: "address";
    }];
    name: "isOperator";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "chain";
        type: "string";
    }, {
        internalType: "string";
        name: "address_";
        type: "string";
    }];
    name: "isTrustedAddress";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes[]";
        name: "data";
        type: "bytes[]";
    }];
    name: "multicall";
    outputs: readonly [{
        internalType: "bytes[]";
        name: "results";
        type: "bytes[]";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [];
    name: "owner";
    outputs: readonly [{
        internalType: "address";
        name: "owner_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "paused";
    outputs: readonly [{
        internalType: "bool";
        name: "paused_";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "pendingOwner";
    outputs: readonly [{
        internalType: "address";
        name: "owner_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "operator";
        type: "address";
    }];
    name: "proposeOperatorship";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "proposeOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "chain";
        type: "string";
    }];
    name: "removeTrustedAddress";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32[]";
        name: "tokenIds";
        type: "bytes32[]";
    }, {
        internalType: "uint256[]";
        name: "flowLimits";
        type: "uint256[]";
    }];
    name: "setFlowLimits";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bool";
        name: "paused";
        type: "bool";
    }];
    name: "setPauseStatus";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "chain";
        type: "string";
    }, {
        internalType: "string";
        name: "address_";
        type: "string";
    }];
    name: "setTrustedAddress";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "setup";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "tokenHandler";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "tokenManager";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "tokenManagerAddress";
    outputs: readonly [{
        internalType: "address";
        name: "tokenManagerAddress_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "tokenManagerDeployer";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    name: "tokenManagerImplementation";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "operator";
        type: "address";
    }];
    name: "transferOperatorship";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "transferOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "chain";
        type: "string";
    }];
    name: "trustedAddress";
    outputs: readonly [{
        internalType: "string";
        name: "trustedAddress_";
        type: "string";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "chain";
        type: "string";
    }];
    name: "trustedAddressHash";
    outputs: readonly [{
        internalType: "bytes32";
        name: "trustedAddressHash_";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newImplementation";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "newImplementationCodeHash";
        type: "bytes32";
    }, {
        internalType: "bytes";
        name: "params";
        type: "bytes";
    }];
    name: "upgrade";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "validTokenAddress";
    outputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "validTokenManagerAddress";
    outputs: readonly [{
        internalType: "address";
        name: "tokenManagerAddress_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}]
address?: `0x${string}`
chain?: Chain
reads: {
    chainName(): Promise<string>;
    chainNameHash(): Promise<`0x${string}`>;
    contractCallValue(contractCallValueArgs): Promise<readonly [`0x${string}`, bigint]>;
    contractCallWithTokenValue(contractCallWithTokenValueArgs): Promise<readonly [`0x${string}`, bigint]>;
    contractId(): Promise<never>;
    executeWithToken(executeWithTokenArgs): Promise<never>;
    flowInAmount(flowInAmountArgs): Promise<bigint>;
    flowLimit(flowLimitArgs): Promise<bigint>;
    flowOutAmount(flowOutAmountArgs): Promise<bigint>;
    gasService(): Promise<`0x${string}`>;
    gateway(): Promise<`0x${string}`>;
    getExpressExecutor(getExpressExecutorArgs): Promise<`0x${string}`>;
    getExpressExecutorWithToken(getExpressExecutorWithTokenArgs): Promise<`0x${string}`>;
    hasRole(hasRoleArgs): Promise<boolean>;
    implementation(): Promise<`0x${string}`>;
    interchainTokenAddress(interchainTokenAddressArgs): Promise<`0x${string}`>;
    interchainTokenDeployer(): Promise<`0x${string}`>;
    interchainTokenFactory(): Promise<`0x${string}`>;
    interchainTokenId(interchainTokenIdArgs): Promise<never>;
    isOperator(isOperatorArgs): Promise<boolean>;
    isTrustedAddress(isTrustedAddressArgs): Promise<boolean>;
    owner(): Promise<`0x${string}`>;
    paused(): Promise<boolean>;
    pendingOwner(): Promise<`0x${string}`>;
    tokenHandler(): Promise<`0x${string}`>;
    tokenManager(): Promise<`0x${string}`>;
    tokenManagerAddress(tokenManagerAddressArgs): Promise<`0x${string}`>;
    tokenManagerDeployer(): Promise<`0x${string}`>;
    tokenManagerImplementation(tokenManagerImplementationArgs): Promise<`0x${string}`>;
    trustedAddress(trustedAddressArgs): Promise<string>;
    trustedAddressHash(trustedAddressHashArgs): Promise<`0x${string}`>;
    validTokenAddress(validTokenAddressArgs): Promise<`0x${string}`>;
    validTokenManagerAddress(validTokenManagerAddressArgs): Promise<`0x${string}`>;
}

Type declaration

ABI: readonly [{
    inputs: readonly [{
        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";
    }];
    stateMutability: "nonpayable";
    type: "constructor";
}, {
    inputs: readonly [];
    name: "AlreadyExecuted";
    type: "error";
}, {
    inputs: readonly [];
    name: "EmptyData";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "contractAddress";
        type: "address";
    }];
    name: "ExecuteWithInterchainTokenFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "ExecuteWithTokenNotSupported";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "contractAddress";
        type: "address";
    }];
    name: "ExpressExecuteWithInterchainTokenFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "ExpressExecutorAlreadySet";
    type: "error";
}, {
    inputs: readonly [];
    name: "GatewayToken";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "GiveTokenFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "InsufficientValue";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "error";
        type: "bytes";
    }];
    name: "InterchainTokenDeploymentFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidAddress";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "bytesAddress";
        type: "bytes";
    }];
    name: "InvalidBytesLength";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidChainName";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidCodeHash";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "messageType";
        type: "uint256";
    }];
    name: "InvalidExpressMessageType";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidImplementation";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "messageType";
        type: "uint256";
    }];
    name: "InvalidMessageType";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "uint32";
        name: "version";
        type: "uint32";
    }];
    name: "InvalidMetadataVersion";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidOwner";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidOwnerAddress";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "fromAccount";
        type: "address";
    }, {
        internalType: "address";
        name: "toAccount";
        type: "address";
    }, {
        internalType: "uint256";
        name: "accountRoles";
        type: "uint256";
    }];
    name: "InvalidProposedRoles";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "implementation";
        type: "address";
    }];
    name: "InvalidTokenManagerImplementationType";
    type: "error";
}, {
    inputs: readonly [];
    name: "LengthMismatch";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint256";
        name: "accountRoles";
        type: "uint256";
    }];
    name: "MissingAllRoles";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint256";
        name: "accountRoles";
        type: "uint256";
    }];
    name: "MissingAnyOfRoles";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint8";
        name: "role";
        type: "uint8";
    }];
    name: "MissingRole";
    type: "error";
}, {
    inputs: readonly [];
    name: "MulticallFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotApprovedByGateway";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotOwner";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotPaused";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotProxy";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotRemoteService";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "caller";
        type: "address";
    }, {
        internalType: "address";
        name: "token";
        type: "address";
    }];
    name: "NotToken";
    type: "error";
}, {
    inputs: readonly [];
    name: "Pause";
    type: "error";
}, {
    inputs: readonly [];
    name: "SetupFailed";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "TakeTokenFailed";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "TokenHandlerFailed";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "error";
        type: "bytes";
    }];
    name: "TokenManagerDeploymentFailed";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "TokenManagerDoesNotExist";
    type: "error";
}, {
    inputs: readonly [];
    name: "UntrustedChain";
    type: "error";
}, {
    inputs: readonly [];
    name: "ZeroAddress";
    type: "error";
}, {
    inputs: readonly [];
    name: "ZeroStringLength";
    type: "error";
}, {
    anonymous: false;
    inputs: readonly [{
        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: readonly [{
        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: false;
        internalType: "string";
        name: "symbol";
        type: "string";
    }, {
        indexed: true;
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }, {
        indexed: true;
        internalType: "address";
        name: "expressExecutor";
        type: "address";
    }];
    name: "ExpressExecutedWithToken";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        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: readonly [{
        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: false;
        internalType: "string";
        name: "symbol";
        type: "string";
    }, {
        indexed: true;
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }, {
        indexed: true;
        internalType: "address";
        name: "expressExecutor";
        type: "address";
    }];
    name: "ExpressExecutionWithTokenFulfilled";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        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: readonly [{
        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: readonly [{
        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: readonly [{
        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: readonly [{
        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: readonly [{
        indexed: true;
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "OwnershipTransferStarted";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "OwnershipTransferred";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "account";
        type: "address";
    }];
    name: "Paused";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "accountRoles";
        type: "uint256";
    }];
    name: "RolesAdded";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        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: readonly [{
        indexed: true;
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "accountRoles";
        type: "uint256";
    }];
    name: "RolesRemoved";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        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: readonly [{
        indexed: true;
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }, {
        indexed: false;
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        indexed: true;
        internalType: "enum ITokenManagerType.TokenManagerType";
        name: "tokenManagerType";
        type: "uint8";
    }, {
        indexed: false;
        internalType: "bytes";
        name: "params";
        type: "bytes";
    }];
    name: "TokenManagerDeploymentStarted";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "string";
        name: "chain";
        type: "string";
    }];
    name: "TrustedAddressRemoved";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: false;
        internalType: "string";
        name: "chain";
        type: "string";
    }, {
        indexed: false;
        internalType: "string";
        name: "address_";
        type: "string";
    }];
    name: "TrustedAddressSet";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "account";
        type: "address";
    }];
    name: "Unpaused";
    type: "event";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "newImplementation";
        type: "address";
    }];
    name: "Upgraded";
    type: "event";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "fromOperator";
        type: "address";
    }];
    name: "acceptOperatorship";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "acceptOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        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";
    }, {
        internalType: "uint256";
        name: "gasValue";
        type: "uint256";
    }];
    name: "callContractWithInterchainToken";
    outputs: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [];
    name: "chainName";
    outputs: readonly [{
        internalType: "string";
        name: "chainName_";
        type: "string";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "chainNameHash";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "sourceChain";
        type: "string";
    }, {
        internalType: "string";
        name: "sourceAddress";
        type: "string";
    }, {
        internalType: "bytes";
        name: "payload";
        type: "bytes";
    }];
    name: "contractCallValue";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    name: "contractCallWithTokenValue";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "contractId";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }, {
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        internalType: "enum ITokenManagerType.TokenManagerType";
        name: "tokenManagerType";
        type: "uint8";
    }, {
        internalType: "bytes";
        name: "params";
        type: "bytes";
    }, {
        internalType: "uint256";
        name: "gasValue";
        type: "uint256";
    }];
    name: "deployTokenManager";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    name: "executeWithToken";
    outputs: readonly [];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "bytes";
        name: "";
        type: "bytes";
    }, {
        internalType: "string";
        name: "";
        type: "string";
    }, {
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    name: "expressExecuteWithToken";
    outputs: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "flowInAmount";
    outputs: readonly [{
        internalType: "uint256";
        name: "flowInAmount_";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "flowLimit";
    outputs: readonly [{
        internalType: "uint256";
        name: "flowLimit_";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "flowOutAmount";
    outputs: readonly [{
        internalType: "uint256";
        name: "flowOutAmount_";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "gasService";
    outputs: readonly [{
        internalType: "contract IAxelarGasService";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "gateway";
    outputs: readonly [{
        internalType: "contract IAxelarGateway";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [{
        internalType: "address";
        name: "expressExecutor";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "commandId";
        type: "bytes32";
    }, {
        internalType: "string";
        name: "sourceChain";
        type: "string";
    }, {
        internalType: "string";
        name: "sourceAddress";
        type: "string";
    }, {
        internalType: "bytes32";
        name: "payloadHash";
        type: "bytes32";
    }, {
        internalType: "string";
        name: "symbol";
        type: "string";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "getExpressExecutorWithToken";
    outputs: readonly [{
        internalType: "address";
        name: "expressExecutor";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint8";
        name: "role";
        type: "uint8";
    }];
    name: "hasRole";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "implementation";
    outputs: readonly [{
        internalType: "address";
        name: "implementation_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "interchainTokenAddress";
    outputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "interchainTokenDeployer";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "interchainTokenFactory";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "sender";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }];
    name: "interchainTokenId";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "addr";
        type: "address";
    }];
    name: "isOperator";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "chain";
        type: "string";
    }, {
        internalType: "string";
        name: "address_";
        type: "string";
    }];
    name: "isTrustedAddress";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes[]";
        name: "data";
        type: "bytes[]";
    }];
    name: "multicall";
    outputs: readonly [{
        internalType: "bytes[]";
        name: "results";
        type: "bytes[]";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [];
    name: "owner";
    outputs: readonly [{
        internalType: "address";
        name: "owner_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "paused";
    outputs: readonly [{
        internalType: "bool";
        name: "paused_";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "pendingOwner";
    outputs: readonly [{
        internalType: "address";
        name: "owner_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "operator";
        type: "address";
    }];
    name: "proposeOperatorship";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "proposeOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "chain";
        type: "string";
    }];
    name: "removeTrustedAddress";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32[]";
        name: "tokenIds";
        type: "bytes32[]";
    }, {
        internalType: "uint256[]";
        name: "flowLimits";
        type: "uint256[]";
    }];
    name: "setFlowLimits";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bool";
        name: "paused";
        type: "bool";
    }];
    name: "setPauseStatus";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "chain";
        type: "string";
    }, {
        internalType: "string";
        name: "address_";
        type: "string";
    }];
    name: "setTrustedAddress";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "setup";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "tokenHandler";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "tokenManager";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "tokenManagerAddress";
    outputs: readonly [{
        internalType: "address";
        name: "tokenManagerAddress_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "tokenManagerDeployer";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    name: "tokenManagerImplementation";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "operator";
        type: "address";
    }];
    name: "transferOperatorship";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "transferOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        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: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "chain";
        type: "string";
    }];
    name: "trustedAddress";
    outputs: readonly [{
        internalType: "string";
        name: "trustedAddress_";
        type: "string";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "chain";
        type: "string";
    }];
    name: "trustedAddressHash";
    outputs: readonly [{
        internalType: "bytes32";
        name: "trustedAddressHash_";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newImplementation";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "newImplementationCodeHash";
        type: "bytes32";
    }, {
        internalType: "bytes";
        name: "params";
        type: "bytes";
    }];
    name: "upgrade";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "validTokenAddress";
    outputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    name: "validTokenManagerAddress";
    outputs: readonly [{
        internalType: "address";
        name: "tokenManagerAddress_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}] = ABI_FILE.abi
contractName: "InterchainTokenService" = ABI_FILE.contractName

Methods

  • Type Parameters

    • TFunctionName extends "owner" | "pendingOwner" | "hasRole" | "interchainTokenId" | "implementation" | "tokenManager" | "chainName" | "chainNameHash" | "contractCallValue" | "contractCallWithTokenValue" | "contractId" | "executeWithToken" | "flowInAmount" | "flowLimit" | "flowOutAmount" | "gasService" | "gateway" | "getExpressExecutor" | "getExpressExecutorWithToken" | "interchainTokenAddress" | "interchainTokenDeployer" | "interchainTokenFactory" | "isOperator" | "isTrustedAddress" | "paused" | "tokenHandler" | "tokenManagerAddress" | "tokenManagerDeployer" | "tokenManagerImplementation" | "trustedAddress" | "trustedAddressHash" | "validTokenAddress" | "validTokenManagerAddress"

    Parameters

    • functionName: TFunctionName
    • Optional params: Omit<ReadContractParameters<readonly [{
          inputs: readonly [{
              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";
          }];
          stateMutability: "nonpayable";
          type: "constructor";
      }, {
          inputs: readonly [];
          name: "AlreadyExecuted";
          type: "error";
      }, {
          inputs: readonly [];
          name: "EmptyData";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "contractAddress";
              type: "address";
          }];
          name: "ExecuteWithInterchainTokenFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "ExecuteWithTokenNotSupported";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "contractAddress";
              type: "address";
          }];
          name: "ExpressExecuteWithInterchainTokenFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "ExpressExecutorAlreadySet";
          type: "error";
      }, {
          inputs: readonly [];
          name: "GatewayToken";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "data";
              type: "bytes";
          }];
          name: "GiveTokenFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InsufficientValue";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "error";
              type: "bytes";
          }];
          name: "InterchainTokenDeploymentFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidAddress";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "bytesAddress";
              type: "bytes";
          }];
          name: "InvalidBytesLength";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidChainName";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidCodeHash";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "uint256";
              name: "messageType";
              type: "uint256";
          }];
          name: "InvalidExpressMessageType";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidImplementation";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "uint256";
              name: "messageType";
              type: "uint256";
          }];
          name: "InvalidMessageType";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "uint32";
              name: "version";
              type: "uint32";
          }];
          name: "InvalidMetadataVersion";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidOwner";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidOwnerAddress";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "fromAccount";
              type: "address";
          }, {
              internalType: "address";
              name: "toAccount";
              type: "address";
          }, {
              internalType: "uint256";
              name: "accountRoles";
              type: "uint256";
          }];
          name: "InvalidProposedRoles";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "implementation";
              type: "address";
          }];
          name: "InvalidTokenManagerImplementationType";
          type: "error";
      }, {
          inputs: readonly [];
          name: "LengthMismatch";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint256";
              name: "accountRoles";
              type: "uint256";
          }];
          name: "MissingAllRoles";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint256";
              name: "accountRoles";
              type: "uint256";
          }];
          name: "MissingAnyOfRoles";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint8";
              name: "role";
              type: "uint8";
          }];
          name: "MissingRole";
          type: "error";
      }, {
          inputs: readonly [];
          name: "MulticallFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotApprovedByGateway";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotOwner";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotPaused";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotProxy";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotRemoteService";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "caller";
              type: "address";
          }, {
              internalType: "address";
              name: "token";
              type: "address";
          }];
          name: "NotToken";
          type: "error";
      }, {
          inputs: readonly [];
          name: "Pause";
          type: "error";
      }, {
          inputs: readonly [];
          name: "SetupFailed";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "data";
              type: "bytes";
          }];
          name: "TakeTokenFailed";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "data";
              type: "bytes";
          }];
          name: "TokenHandlerFailed";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "error";
              type: "bytes";
          }];
          name: "TokenManagerDeploymentFailed";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "TokenManagerDoesNotExist";
          type: "error";
      }, {
          inputs: readonly [];
          name: "UntrustedChain";
          type: "error";
      }, {
          inputs: readonly [];
          name: "ZeroAddress";
          type: "error";
      }, {
          inputs: readonly [];
          name: "ZeroStringLength";
          type: "error";
      }, {
          anonymous: false;
          inputs: readonly [{
              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: readonly [{
              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: false;
              internalType: "string";
              name: "symbol";
              type: "string";
          }, {
              indexed: true;
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }, {
              indexed: true;
              internalType: "address";
              name: "expressExecutor";
              type: "address";
          }];
          name: "ExpressExecutedWithToken";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              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: readonly [{
              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: false;
              internalType: "string";
              name: "symbol";
              type: "string";
          }, {
              indexed: true;
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }, {
              indexed: true;
              internalType: "address";
              name: "expressExecutor";
              type: "address";
          }];
          name: "ExpressExecutionWithTokenFulfilled";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              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: readonly [{
              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: readonly [{
              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: readonly [{
              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: readonly [{
              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: readonly [{
              indexed: true;
              internalType: "address";
              name: "newOwner";
              type: "address";
          }];
          name: "OwnershipTransferStarted";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "newOwner";
              type: "address";
          }];
          name: "OwnershipTransferred";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "account";
              type: "address";
          }];
          name: "Paused";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              indexed: false;
              internalType: "uint256";
              name: "accountRoles";
              type: "uint256";
          }];
          name: "RolesAdded";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              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: readonly [{
              indexed: true;
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              indexed: false;
              internalType: "uint256";
              name: "accountRoles";
              type: "uint256";
          }];
          name: "RolesRemoved";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              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: readonly [{
              indexed: true;
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }, {
              indexed: false;
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              indexed: true;
              internalType: "enum ITokenManagerType.TokenManagerType";
              name: "tokenManagerType";
              type: "uint8";
          }, {
              indexed: false;
              internalType: "bytes";
              name: "params";
              type: "bytes";
          }];
          name: "TokenManagerDeploymentStarted";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: false;
              internalType: "string";
              name: "chain";
              type: "string";
          }];
          name: "TrustedAddressRemoved";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: false;
              internalType: "string";
              name: "chain";
              type: "string";
          }, {
              indexed: false;
              internalType: "string";
              name: "address_";
              type: "string";
          }];
          name: "TrustedAddressSet";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "account";
              type: "address";
          }];
          name: "Unpaused";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "newImplementation";
              type: "address";
          }];
          name: "Upgraded";
          type: "event";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "fromOperator";
              type: "address";
          }];
          name: "acceptOperatorship";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "acceptOwnership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              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";
          }, {
              internalType: "uint256";
              name: "gasValue";
              type: "uint256";
          }];
          name: "callContractWithInterchainToken";
          outputs: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "chainName";
          outputs: readonly [{
              internalType: "string";
              name: "chainName_";
              type: "string";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "chainNameHash";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "sourceChain";
              type: "string";
          }, {
              internalType: "string";
              name: "sourceAddress";
              type: "string";
          }, {
              internalType: "bytes";
              name: "payload";
              type: "bytes";
          }];
          name: "contractCallValue";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }, {
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "bytes";
              name: "";
              type: "bytes";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          name: "contractCallWithTokenValue";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }, {
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "contractId";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "pure";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }, {
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              internalType: "enum ITokenManagerType.TokenManagerType";
              name: "tokenManagerType";
              type: "uint8";
          }, {
              internalType: "bytes";
              name: "params";
              type: "bytes";
          }, {
              internalType: "uint256";
              name: "gasValue";
              type: "uint256";
          }];
          name: "deployTokenManager";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "bytes";
              name: "";
              type: "bytes";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          name: "executeWithToken";
          outputs: readonly [];
          stateMutability: "pure";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "bytes";
              name: "";
              type: "bytes";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          name: "expressExecuteWithToken";
          outputs: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "flowInAmount";
          outputs: readonly [{
              internalType: "uint256";
              name: "flowInAmount_";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "flowLimit";
          outputs: readonly [{
              internalType: "uint256";
              name: "flowLimit_";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "flowOutAmount";
          outputs: readonly [{
              internalType: "uint256";
              name: "flowOutAmount_";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "gasService";
          outputs: readonly [{
              internalType: "contract IAxelarGasService";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "gateway";
          outputs: readonly [{
              internalType: "contract IAxelarGateway";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [{
              internalType: "address";
              name: "expressExecutor";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "commandId";
              type: "bytes32";
          }, {
              internalType: "string";
              name: "sourceChain";
              type: "string";
          }, {
              internalType: "string";
              name: "sourceAddress";
              type: "string";
          }, {
              internalType: "bytes32";
              name: "payloadHash";
              type: "bytes32";
          }, {
              internalType: "string";
              name: "symbol";
              type: "string";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "getExpressExecutorWithToken";
          outputs: readonly [{
              internalType: "address";
              name: "expressExecutor";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint8";
              name: "role";
              type: "uint8";
          }];
          name: "hasRole";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "implementation";
          outputs: readonly [{
              internalType: "address";
              name: "implementation_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "interchainTokenAddress";
          outputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "interchainTokenDeployer";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "interchainTokenFactory";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "sender";
              type: "address";
          }, {
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }];
          name: "interchainTokenId";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "pure";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "addr";
              type: "address";
          }];
          name: "isOperator";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "chain";
              type: "string";
          }, {
              internalType: "string";
              name: "address_";
              type: "string";
          }];
          name: "isTrustedAddress";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes[]";
              name: "data";
              type: "bytes[]";
          }];
          name: "multicall";
          outputs: readonly [{
              internalType: "bytes[]";
              name: "results";
              type: "bytes[]";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              internalType: "address";
              name: "owner_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "paused";
          outputs: readonly [{
              internalType: "bool";
              name: "paused_";
              type: "bool";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "pendingOwner";
          outputs: readonly [{
              internalType: "address";
              name: "owner_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "operator";
              type: "address";
          }];
          name: "proposeOperatorship";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "newOwner";
              type: "address";
          }];
          name: "proposeOwnership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "chain";
              type: "string";
          }];
          name: "removeTrustedAddress";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32[]";
              name: "tokenIds";
              type: "bytes32[]";
          }, {
              internalType: "uint256[]";
              name: "flowLimits";
              type: "uint256[]";
          }];
          name: "setFlowLimits";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bool";
              name: "paused";
              type: "bool";
          }];
          name: "setPauseStatus";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "chain";
              type: "string";
          }, {
              internalType: "string";
              name: "address_";
              type: "string";
          }];
          name: "setTrustedAddress";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "data";
              type: "bytes";
          }];
          name: "setup";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "tokenHandler";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "tokenManager";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "tokenManagerAddress";
          outputs: readonly [{
              internalType: "address";
              name: "tokenManagerAddress_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "tokenManagerDeployer";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          name: "tokenManagerImplementation";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "operator";
              type: "address";
          }];
          name: "transferOperatorship";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "newOwner";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "chain";
              type: "string";
          }];
          name: "trustedAddress";
          outputs: readonly [{
              internalType: "string";
              name: "trustedAddress_";
              type: "string";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "chain";
              type: "string";
          }];
          name: "trustedAddressHash";
          outputs: readonly [{
              internalType: "bytes32";
              name: "trustedAddressHash_";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "newImplementation";
              type: "address";
          }, {
              internalType: "bytes32";
              name: "newImplementationCodeHash";
              type: "bytes32";
          }, {
              internalType: "bytes";
              name: "params";
              type: "bytes";
          }];
          name: "upgrade";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "validTokenAddress";
          outputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "validTokenManagerAddress";
          outputs: readonly [{
              internalType: "address";
              name: "tokenManagerAddress_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }], TFunctionName>, "address" | "abi" | "functionName"> & {
          address?: `0x${string}`;
      }

    Returns Promise<{
            [K in string | number | symbol]: {
                [K in string | number | symbol]: AbiParameterToPrimitiveType<ExtractAbiFunctionForArgs<readonly [{
                    inputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    anonymous: ...;
                    inputs: ...;
                    name: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }, {
                    inputs: ...;
                    name: ...;
                    outputs: ...;
                    stateMutability: ...;
                    type: ...;
                }], "view", TFunctionName, ContractFunctionArgs<readonly [(...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...), (...)], "view", TFunctionName>>["outputs"][K], AbiParameterKind>
            }[K]
        } extends types
        ? types extends readonly []
            ? void
            : types extends readonly [type]
                ? type
                : types
        : never>

  • Type Parameters

    • TFunctionName extends "multicall" | "acceptOwnership" | "setup" | "transferOwnership" | "interchainTransfer" | "acceptOperatorship" | "callContractWithInterchainToken" | "deployInterchainToken" | "deployTokenManager" | "execute" | "expressExecute" | "expressExecuteWithToken" | "proposeOperatorship" | "proposeOwnership" | "removeTrustedAddress" | "setFlowLimits" | "setPauseStatus" | "setTrustedAddress" | "transferOperatorship" | "transmitInterchainTransfer" | "upgrade"

    Parameters

    • functionName: TFunctionName
    • Optional params: Omit<WriteContractParameters<readonly [{
          inputs: readonly [{
              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";
          }];
          stateMutability: "nonpayable";
          type: "constructor";
      }, {
          inputs: readonly [];
          name: "AlreadyExecuted";
          type: "error";
      }, {
          inputs: readonly [];
          name: "EmptyData";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "contractAddress";
              type: "address";
          }];
          name: "ExecuteWithInterchainTokenFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "ExecuteWithTokenNotSupported";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "contractAddress";
              type: "address";
          }];
          name: "ExpressExecuteWithInterchainTokenFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "ExpressExecutorAlreadySet";
          type: "error";
      }, {
          inputs: readonly [];
          name: "GatewayToken";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "data";
              type: "bytes";
          }];
          name: "GiveTokenFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InsufficientValue";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "error";
              type: "bytes";
          }];
          name: "InterchainTokenDeploymentFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidAddress";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "bytesAddress";
              type: "bytes";
          }];
          name: "InvalidBytesLength";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidChainName";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidCodeHash";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "uint256";
              name: "messageType";
              type: "uint256";
          }];
          name: "InvalidExpressMessageType";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidImplementation";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "uint256";
              name: "messageType";
              type: "uint256";
          }];
          name: "InvalidMessageType";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "uint32";
              name: "version";
              type: "uint32";
          }];
          name: "InvalidMetadataVersion";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidOwner";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidOwnerAddress";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "fromAccount";
              type: "address";
          }, {
              internalType: "address";
              name: "toAccount";
              type: "address";
          }, {
              internalType: "uint256";
              name: "accountRoles";
              type: "uint256";
          }];
          name: "InvalidProposedRoles";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "implementation";
              type: "address";
          }];
          name: "InvalidTokenManagerImplementationType";
          type: "error";
      }, {
          inputs: readonly [];
          name: "LengthMismatch";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint256";
              name: "accountRoles";
              type: "uint256";
          }];
          name: "MissingAllRoles";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint256";
              name: "accountRoles";
              type: "uint256";
          }];
          name: "MissingAnyOfRoles";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint8";
              name: "role";
              type: "uint8";
          }];
          name: "MissingRole";
          type: "error";
      }, {
          inputs: readonly [];
          name: "MulticallFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotApprovedByGateway";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotOwner";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotPaused";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotProxy";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotRemoteService";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "caller";
              type: "address";
          }, {
              internalType: "address";
              name: "token";
              type: "address";
          }];
          name: "NotToken";
          type: "error";
      }, {
          inputs: readonly [];
          name: "Pause";
          type: "error";
      }, {
          inputs: readonly [];
          name: "SetupFailed";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "data";
              type: "bytes";
          }];
          name: "TakeTokenFailed";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "data";
              type: "bytes";
          }];
          name: "TokenHandlerFailed";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "error";
              type: "bytes";
          }];
          name: "TokenManagerDeploymentFailed";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "TokenManagerDoesNotExist";
          type: "error";
      }, {
          inputs: readonly [];
          name: "UntrustedChain";
          type: "error";
      }, {
          inputs: readonly [];
          name: "ZeroAddress";
          type: "error";
      }, {
          inputs: readonly [];
          name: "ZeroStringLength";
          type: "error";
      }, {
          anonymous: false;
          inputs: readonly [{
              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: readonly [{
              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: false;
              internalType: "string";
              name: "symbol";
              type: "string";
          }, {
              indexed: true;
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }, {
              indexed: true;
              internalType: "address";
              name: "expressExecutor";
              type: "address";
          }];
          name: "ExpressExecutedWithToken";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              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: readonly [{
              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: false;
              internalType: "string";
              name: "symbol";
              type: "string";
          }, {
              indexed: true;
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }, {
              indexed: true;
              internalType: "address";
              name: "expressExecutor";
              type: "address";
          }];
          name: "ExpressExecutionWithTokenFulfilled";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              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: readonly [{
              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: readonly [{
              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: readonly [{
              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: readonly [{
              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: readonly [{
              indexed: true;
              internalType: "address";
              name: "newOwner";
              type: "address";
          }];
          name: "OwnershipTransferStarted";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "newOwner";
              type: "address";
          }];
          name: "OwnershipTransferred";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "account";
              type: "address";
          }];
          name: "Paused";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              indexed: false;
              internalType: "uint256";
              name: "accountRoles";
              type: "uint256";
          }];
          name: "RolesAdded";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              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: readonly [{
              indexed: true;
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              indexed: false;
              internalType: "uint256";
              name: "accountRoles";
              type: "uint256";
          }];
          name: "RolesRemoved";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              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: readonly [{
              indexed: true;
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }, {
              indexed: false;
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              indexed: true;
              internalType: "enum ITokenManagerType.TokenManagerType";
              name: "tokenManagerType";
              type: "uint8";
          }, {
              indexed: false;
              internalType: "bytes";
              name: "params";
              type: "bytes";
          }];
          name: "TokenManagerDeploymentStarted";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: false;
              internalType: "string";
              name: "chain";
              type: "string";
          }];
          name: "TrustedAddressRemoved";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: false;
              internalType: "string";
              name: "chain";
              type: "string";
          }, {
              indexed: false;
              internalType: "string";
              name: "address_";
              type: "string";
          }];
          name: "TrustedAddressSet";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "account";
              type: "address";
          }];
          name: "Unpaused";
          type: "event";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "newImplementation";
              type: "address";
          }];
          name: "Upgraded";
          type: "event";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "fromOperator";
              type: "address";
          }];
          name: "acceptOperatorship";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "acceptOwnership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              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";
          }, {
              internalType: "uint256";
              name: "gasValue";
              type: "uint256";
          }];
          name: "callContractWithInterchainToken";
          outputs: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "chainName";
          outputs: readonly [{
              internalType: "string";
              name: "chainName_";
              type: "string";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "chainNameHash";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "sourceChain";
              type: "string";
          }, {
              internalType: "string";
              name: "sourceAddress";
              type: "string";
          }, {
              internalType: "bytes";
              name: "payload";
              type: "bytes";
          }];
          name: "contractCallValue";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }, {
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "bytes";
              name: "";
              type: "bytes";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          name: "contractCallWithTokenValue";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }, {
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "contractId";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "pure";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }, {
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              internalType: "enum ITokenManagerType.TokenManagerType";
              name: "tokenManagerType";
              type: "uint8";
          }, {
              internalType: "bytes";
              name: "params";
              type: "bytes";
          }, {
              internalType: "uint256";
              name: "gasValue";
              type: "uint256";
          }];
          name: "deployTokenManager";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "bytes";
              name: "";
              type: "bytes";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          name: "executeWithToken";
          outputs: readonly [];
          stateMutability: "pure";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "bytes";
              name: "";
              type: "bytes";
          }, {
              internalType: "string";
              name: "";
              type: "string";
          }, {
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          name: "expressExecuteWithToken";
          outputs: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "flowInAmount";
          outputs: readonly [{
              internalType: "uint256";
              name: "flowInAmount_";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "flowLimit";
          outputs: readonly [{
              internalType: "uint256";
              name: "flowLimit_";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "flowOutAmount";
          outputs: readonly [{
              internalType: "uint256";
              name: "flowOutAmount_";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "gasService";
          outputs: readonly [{
              internalType: "contract IAxelarGasService";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "gateway";
          outputs: readonly [{
              internalType: "contract IAxelarGateway";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [{
              internalType: "address";
              name: "expressExecutor";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "commandId";
              type: "bytes32";
          }, {
              internalType: "string";
              name: "sourceChain";
              type: "string";
          }, {
              internalType: "string";
              name: "sourceAddress";
              type: "string";
          }, {
              internalType: "bytes32";
              name: "payloadHash";
              type: "bytes32";
          }, {
              internalType: "string";
              name: "symbol";
              type: "string";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "getExpressExecutorWithToken";
          outputs: readonly [{
              internalType: "address";
              name: "expressExecutor";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint8";
              name: "role";
              type: "uint8";
          }];
          name: "hasRole";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "implementation";
          outputs: readonly [{
              internalType: "address";
              name: "implementation_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "interchainTokenAddress";
          outputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "interchainTokenDeployer";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "interchainTokenFactory";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "sender";
              type: "address";
          }, {
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }];
          name: "interchainTokenId";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "pure";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "addr";
              type: "address";
          }];
          name: "isOperator";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "chain";
              type: "string";
          }, {
              internalType: "string";
              name: "address_";
              type: "string";
          }];
          name: "isTrustedAddress";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes[]";
              name: "data";
              type: "bytes[]";
          }];
          name: "multicall";
          outputs: readonly [{
              internalType: "bytes[]";
              name: "results";
              type: "bytes[]";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              internalType: "address";
              name: "owner_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "paused";
          outputs: readonly [{
              internalType: "bool";
              name: "paused_";
              type: "bool";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "pendingOwner";
          outputs: readonly [{
              internalType: "address";
              name: "owner_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "operator";
              type: "address";
          }];
          name: "proposeOperatorship";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "newOwner";
              type: "address";
          }];
          name: "proposeOwnership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "chain";
              type: "string";
          }];
          name: "removeTrustedAddress";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32[]";
              name: "tokenIds";
              type: "bytes32[]";
          }, {
              internalType: "uint256[]";
              name: "flowLimits";
              type: "uint256[]";
          }];
          name: "setFlowLimits";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bool";
              name: "paused";
              type: "bool";
          }];
          name: "setPauseStatus";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "chain";
              type: "string";
          }, {
              internalType: "string";
              name: "address_";
              type: "string";
          }];
          name: "setTrustedAddress";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "data";
              type: "bytes";
          }];
          name: "setup";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "tokenHandler";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "tokenManager";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "tokenManagerAddress";
          outputs: readonly [{
              internalType: "address";
              name: "tokenManagerAddress_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "tokenManagerDeployer";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          name: "tokenManagerImplementation";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "operator";
              type: "address";
          }];
          name: "transferOperatorship";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "newOwner";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              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: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "chain";
              type: "string";
          }];
          name: "trustedAddress";
          outputs: readonly [{
              internalType: "string";
              name: "trustedAddress_";
              type: "string";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "chain";
              type: "string";
          }];
          name: "trustedAddressHash";
          outputs: readonly [{
              internalType: "bytes32";
              name: "trustedAddressHash_";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "newImplementation";
              type: "address";
          }, {
              internalType: "bytes32";
              name: "newImplementationCodeHash";
              type: "bytes32";
          }, {
              internalType: "bytes";
              name: "params";
              type: "bytes";
          }];
          name: "upgrade";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "validTokenAddress";
          outputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          name: "validTokenManagerAddress";
          outputs: readonly [{
              internalType: "address";
              name: "tokenManagerAddress_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }], TFunctionName>, "address" | "abi" | "functionName"> & {
          address?: `0x${string}`;
      }

    Returns Promise<`0x${string}`>

Generated using TypeDoc