Class InterchainTokenClient

InterchainTokenClient

Description

Type-safe contract client for InterchainToken

Example

import { sepolia } from "viem/chains";

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

Hierarchy (view full)

Constructors

Properties

Methods

Constructors

Properties

abi: readonly [{
    inputs: readonly [{
        internalType: "address";
        name: "interchainTokenServiceAddress";
        type: "address";
    }];
    stateMutability: "nonpayable";
    type: "constructor";
}, {
    inputs: readonly [];
    name: "AlreadyInitialized";
    type: "error";
}, {
    inputs: readonly [];
    name: "InterchainTokenServiceAddressZero";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidAccount";
    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 [];
    name: "InvalidS";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidSignature";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidV";
    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: "PermitExpired";
    type: "error";
}, {
    inputs: readonly [];
    name: "TokenIdZero";
    type: "error";
}, {
    inputs: readonly [];
    name: "TokenNameEmpty";
    type: "error";
}, {
    inputs: readonly [];
    name: "TokenSymbolEmpty";
    type: "error";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "owner";
        type: "address";
    }, {
        indexed: true;
        internalType: "address";
        name: "spender";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "value";
        type: "uint256";
    }];
    name: "Approval";
    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: "address";
        name: "from";
        type: "address";
    }, {
        indexed: true;
        internalType: "address";
        name: "to";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "value";
        type: "uint256";
    }];
    name: "Transfer";
    type: "event";
}, {
    inputs: readonly [];
    name: "DOMAIN_SEPARATOR";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "fromMinter";
        type: "address";
    }];
    name: "acceptMintership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }, {
        internalType: "address";
        name: "";
        type: "address";
    }];
    name: "allowance";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "spender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "approve";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    name: "balanceOf";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "burn";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "decimals";
    outputs: readonly [{
        internalType: "uint8";
        name: "";
        type: "uint8";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "spender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "subtractedValue";
        type: "uint256";
    }];
    name: "decreaseAllowance";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    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 [{
        internalType: "address";
        name: "spender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "addedValue";
        type: "uint256";
    }];
    name: "increaseAllowance";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId_";
        type: "bytes32";
    }, {
        internalType: "address";
        name: "minter";
        type: "address";
    }, {
        internalType: "string";
        name: "tokenName";
        type: "string";
    }, {
        internalType: "string";
        name: "tokenSymbol";
        type: "string";
    }, {
        internalType: "uint8";
        name: "tokenDecimals";
        type: "uint8";
    }];
    name: "init";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "interchainTokenId";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "interchainTokenService";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        internalType: "bytes";
        name: "recipient";
        type: "bytes";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }, {
        internalType: "bytes";
        name: "metadata";
        type: "bytes";
    }];
    name: "interchainTransfer";
    outputs: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "sender";
        type: "address";
    }, {
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        internalType: "bytes";
        name: "recipient";
        type: "bytes";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }, {
        internalType: "bytes";
        name: "metadata";
        type: "bytes";
    }];
    name: "interchainTransferFrom";
    outputs: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "addr";
        type: "address";
    }];
    name: "isMinter";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "mint";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "name";
    outputs: readonly [{
        internalType: "string";
        name: "";
        type: "string";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "nameHash";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    name: "nonces";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "issuer";
        type: "address";
    }, {
        internalType: "address";
        name: "spender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "value";
        type: "uint256";
    }, {
        internalType: "uint256";
        name: "deadline";
        type: "uint256";
    }, {
        internalType: "uint8";
        name: "v";
        type: "uint8";
    }, {
        internalType: "bytes32";
        name: "r";
        type: "bytes32";
    }, {
        internalType: "bytes32";
        name: "s";
        type: "bytes32";
    }];
    name: "permit";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "minter_";
        type: "address";
    }];
    name: "proposeMintership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "symbol";
    outputs: readonly [{
        internalType: "string";
        name: "";
        type: "string";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "totalSupply";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "recipient";
        type: "address";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "transfer";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "sender";
        type: "address";
    }, {
        internalType: "address";
        name: "recipient";
        type: "address";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "transferFrom";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "minter_";
        type: "address";
    }];
    name: "transferMintership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}]
address?: `0x${string}`
chain?: Chain
reads: {
    DOMAIN_SEPARATOR(): Promise<`0x${string}`>;
    allowance(allowanceArgs): Promise<bigint>;
    balanceOf(balanceOfArgs): Promise<bigint>;
    decimals(): Promise<number>;
    hasRole(hasRoleArgs): Promise<boolean>;
    interchainTokenId(): Promise<`0x${string}`>;
    interchainTokenService(): Promise<`0x${string}`>;
    isMinter(isMinterArgs): Promise<boolean>;
    name(): Promise<string>;
    nameHash(): Promise<`0x${string}`>;
    nonces(noncesArgs): Promise<bigint>;
    symbol(): Promise<string>;
    totalSupply(): Promise<bigint>;
}

Type declaration

ABI: readonly [{
    inputs: readonly [{
        internalType: "address";
        name: "interchainTokenServiceAddress";
        type: "address";
    }];
    stateMutability: "nonpayable";
    type: "constructor";
}, {
    inputs: readonly [];
    name: "AlreadyInitialized";
    type: "error";
}, {
    inputs: readonly [];
    name: "InterchainTokenServiceAddressZero";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidAccount";
    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 [];
    name: "InvalidS";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidSignature";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidV";
    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: "PermitExpired";
    type: "error";
}, {
    inputs: readonly [];
    name: "TokenIdZero";
    type: "error";
}, {
    inputs: readonly [];
    name: "TokenNameEmpty";
    type: "error";
}, {
    inputs: readonly [];
    name: "TokenSymbolEmpty";
    type: "error";
}, {
    anonymous: false;
    inputs: readonly [{
        indexed: true;
        internalType: "address";
        name: "owner";
        type: "address";
    }, {
        indexed: true;
        internalType: "address";
        name: "spender";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "value";
        type: "uint256";
    }];
    name: "Approval";
    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: "address";
        name: "from";
        type: "address";
    }, {
        indexed: true;
        internalType: "address";
        name: "to";
        type: "address";
    }, {
        indexed: false;
        internalType: "uint256";
        name: "value";
        type: "uint256";
    }];
    name: "Transfer";
    type: "event";
}, {
    inputs: readonly [];
    name: "DOMAIN_SEPARATOR";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "fromMinter";
        type: "address";
    }];
    name: "acceptMintership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }, {
        internalType: "address";
        name: "";
        type: "address";
    }];
    name: "allowance";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "spender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "approve";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    name: "balanceOf";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "burn";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "decimals";
    outputs: readonly [{
        internalType: "uint8";
        name: "";
        type: "uint8";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "spender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "subtractedValue";
        type: "uint256";
    }];
    name: "decreaseAllowance";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    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 [{
        internalType: "address";
        name: "spender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "addedValue";
        type: "uint256";
    }];
    name: "increaseAllowance";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "tokenId_";
        type: "bytes32";
    }, {
        internalType: "address";
        name: "minter";
        type: "address";
    }, {
        internalType: "string";
        name: "tokenName";
        type: "string";
    }, {
        internalType: "string";
        name: "tokenSymbol";
        type: "string";
    }, {
        internalType: "uint8";
        name: "tokenDecimals";
        type: "uint8";
    }];
    name: "init";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "interchainTokenId";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "interchainTokenService";
    outputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        internalType: "bytes";
        name: "recipient";
        type: "bytes";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }, {
        internalType: "bytes";
        name: "metadata";
        type: "bytes";
    }];
    name: "interchainTransfer";
    outputs: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "sender";
        type: "address";
    }, {
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        internalType: "bytes";
        name: "recipient";
        type: "bytes";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }, {
        internalType: "bytes";
        name: "metadata";
        type: "bytes";
    }];
    name: "interchainTransferFrom";
    outputs: readonly [];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "addr";
        type: "address";
    }];
    name: "isMinter";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "account";
        type: "address";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "mint";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "name";
    outputs: readonly [{
        internalType: "string";
        name: "";
        type: "string";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "nameHash";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "";
        type: "address";
    }];
    name: "nonces";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "issuer";
        type: "address";
    }, {
        internalType: "address";
        name: "spender";
        type: "address";
    }, {
        internalType: "uint256";
        name: "value";
        type: "uint256";
    }, {
        internalType: "uint256";
        name: "deadline";
        type: "uint256";
    }, {
        internalType: "uint8";
        name: "v";
        type: "uint8";
    }, {
        internalType: "bytes32";
        name: "r";
        type: "bytes32";
    }, {
        internalType: "bytes32";
        name: "s";
        type: "bytes32";
    }];
    name: "permit";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "minter_";
        type: "address";
    }];
    name: "proposeMintership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [];
    name: "symbol";
    outputs: readonly [{
        internalType: "string";
        name: "";
        type: "string";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "totalSupply";
    outputs: readonly [{
        internalType: "uint256";
        name: "";
        type: "uint256";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "recipient";
        type: "address";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "transfer";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "sender";
        type: "address";
    }, {
        internalType: "address";
        name: "recipient";
        type: "address";
    }, {
        internalType: "uint256";
        name: "amount";
        type: "uint256";
    }];
    name: "transferFrom";
    outputs: readonly [{
        internalType: "bool";
        name: "";
        type: "bool";
    }];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "minter_";
        type: "address";
    }];
    name: "transferMintership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}] = ABI_FILE.abi
contractName: "InterchainToken" = ABI_FILE.contractName

Methods

  • Type Parameters

    • TFunctionName extends "symbol" | "name" | "allowance" | "balanceOf" | "decimals" | "totalSupply" | "DOMAIN_SEPARATOR" | "hasRole" | "interchainTokenId" | "interchainTokenService" | "isMinter" | "nameHash" | "nonces"

    Parameters

    • functionName: TFunctionName
    • Optional params: Omit<ReadContractParameters<readonly [{
          inputs: readonly [{
              internalType: "address";
              name: "interchainTokenServiceAddress";
              type: "address";
          }];
          stateMutability: "nonpayable";
          type: "constructor";
      }, {
          inputs: readonly [];
          name: "AlreadyInitialized";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InterchainTokenServiceAddressZero";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidAccount";
          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 [];
          name: "InvalidS";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidSignature";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidV";
          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: "PermitExpired";
          type: "error";
      }, {
          inputs: readonly [];
          name: "TokenIdZero";
          type: "error";
      }, {
          inputs: readonly [];
          name: "TokenNameEmpty";
          type: "error";
      }, {
          inputs: readonly [];
          name: "TokenSymbolEmpty";
          type: "error";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "owner";
              type: "address";
          }, {
              indexed: true;
              internalType: "address";
              name: "spender";
              type: "address";
          }, {
              indexed: false;
              internalType: "uint256";
              name: "value";
              type: "uint256";
          }];
          name: "Approval";
          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: "address";
              name: "from";
              type: "address";
          }, {
              indexed: true;
              internalType: "address";
              name: "to";
              type: "address";
          }, {
              indexed: false;
              internalType: "uint256";
              name: "value";
              type: "uint256";
          }];
          name: "Transfer";
          type: "event";
      }, {
          inputs: readonly [];
          name: "DOMAIN_SEPARATOR";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "fromMinter";
              type: "address";
          }];
          name: "acceptMintership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }, {
              internalType: "address";
              name: "";
              type: "address";
          }];
          name: "allowance";
          outputs: readonly [{
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "spender";
              type: "address";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "approve";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          name: "balanceOf";
          outputs: readonly [{
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "burn";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "decimals";
          outputs: readonly [{
              internalType: "uint8";
              name: "";
              type: "uint8";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "spender";
              type: "address";
          }, {
              internalType: "uint256";
              name: "subtractedValue";
              type: "uint256";
          }];
          name: "decreaseAllowance";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "nonpayable";
          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 [{
              internalType: "address";
              name: "spender";
              type: "address";
          }, {
              internalType: "uint256";
              name: "addedValue";
              type: "uint256";
          }];
          name: "increaseAllowance";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId_";
              type: "bytes32";
          }, {
              internalType: "address";
              name: "minter";
              type: "address";
          }, {
              internalType: "string";
              name: "tokenName";
              type: "string";
          }, {
              internalType: "string";
              name: "tokenSymbol";
              type: "string";
          }, {
              internalType: "uint8";
              name: "tokenDecimals";
              type: "uint8";
          }];
          name: "init";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "interchainTokenId";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "interchainTokenService";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              internalType: "bytes";
              name: "recipient";
              type: "bytes";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }, {
              internalType: "bytes";
              name: "metadata";
              type: "bytes";
          }];
          name: "interchainTransfer";
          outputs: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "sender";
              type: "address";
          }, {
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              internalType: "bytes";
              name: "recipient";
              type: "bytes";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }, {
              internalType: "bytes";
              name: "metadata";
              type: "bytes";
          }];
          name: "interchainTransferFrom";
          outputs: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "addr";
              type: "address";
          }];
          name: "isMinter";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "mint";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "name";
          outputs: readonly [{
              internalType: "string";
              name: "";
              type: "string";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "nameHash";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          name: "nonces";
          outputs: readonly [{
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "issuer";
              type: "address";
          }, {
              internalType: "address";
              name: "spender";
              type: "address";
          }, {
              internalType: "uint256";
              name: "value";
              type: "uint256";
          }, {
              internalType: "uint256";
              name: "deadline";
              type: "uint256";
          }, {
              internalType: "uint8";
              name: "v";
              type: "uint8";
          }, {
              internalType: "bytes32";
              name: "r";
              type: "bytes32";
          }, {
              internalType: "bytes32";
              name: "s";
              type: "bytes32";
          }];
          name: "permit";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "minter_";
              type: "address";
          }];
          name: "proposeMintership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "symbol";
          outputs: readonly [{
              internalType: "string";
              name: "";
              type: "string";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "totalSupply";
          outputs: readonly [{
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "recipient";
              type: "address";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "transfer";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "sender";
              type: "address";
          }, {
              internalType: "address";
              name: "recipient";
              type: "address";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "transferFrom";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "minter_";
              type: "address";
          }];
          name: "transferMintership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          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: ...;
                }, {
                    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: ...;
                }], "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 "approve" | "mint" | "transfer" | "transferFrom" | "decreaseAllowance" | "increaseAllowance" | "burn" | "acceptMintership" | "init" | "interchainTransfer" | "interchainTransferFrom" | "permit" | "proposeMintership" | "transferMintership"

    Parameters

    • functionName: TFunctionName
    • Optional params: Omit<WriteContractParameters<readonly [{
          inputs: readonly [{
              internalType: "address";
              name: "interchainTokenServiceAddress";
              type: "address";
          }];
          stateMutability: "nonpayable";
          type: "constructor";
      }, {
          inputs: readonly [];
          name: "AlreadyInitialized";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InterchainTokenServiceAddressZero";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidAccount";
          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 [];
          name: "InvalidS";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidSignature";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidV";
          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: "PermitExpired";
          type: "error";
      }, {
          inputs: readonly [];
          name: "TokenIdZero";
          type: "error";
      }, {
          inputs: readonly [];
          name: "TokenNameEmpty";
          type: "error";
      }, {
          inputs: readonly [];
          name: "TokenSymbolEmpty";
          type: "error";
      }, {
          anonymous: false;
          inputs: readonly [{
              indexed: true;
              internalType: "address";
              name: "owner";
              type: "address";
          }, {
              indexed: true;
              internalType: "address";
              name: "spender";
              type: "address";
          }, {
              indexed: false;
              internalType: "uint256";
              name: "value";
              type: "uint256";
          }];
          name: "Approval";
          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: "address";
              name: "from";
              type: "address";
          }, {
              indexed: true;
              internalType: "address";
              name: "to";
              type: "address";
          }, {
              indexed: false;
              internalType: "uint256";
              name: "value";
              type: "uint256";
          }];
          name: "Transfer";
          type: "event";
      }, {
          inputs: readonly [];
          name: "DOMAIN_SEPARATOR";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "fromMinter";
              type: "address";
          }];
          name: "acceptMintership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }, {
              internalType: "address";
              name: "";
              type: "address";
          }];
          name: "allowance";
          outputs: readonly [{
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "spender";
              type: "address";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "approve";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          name: "balanceOf";
          outputs: readonly [{
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "burn";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "decimals";
          outputs: readonly [{
              internalType: "uint8";
              name: "";
              type: "uint8";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "spender";
              type: "address";
          }, {
              internalType: "uint256";
              name: "subtractedValue";
              type: "uint256";
          }];
          name: "decreaseAllowance";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "nonpayable";
          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 [{
              internalType: "address";
              name: "spender";
              type: "address";
          }, {
              internalType: "uint256";
              name: "addedValue";
              type: "uint256";
          }];
          name: "increaseAllowance";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "tokenId_";
              type: "bytes32";
          }, {
              internalType: "address";
              name: "minter";
              type: "address";
          }, {
              internalType: "string";
              name: "tokenName";
              type: "string";
          }, {
              internalType: "string";
              name: "tokenSymbol";
              type: "string";
          }, {
              internalType: "uint8";
              name: "tokenDecimals";
              type: "uint8";
          }];
          name: "init";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "interchainTokenId";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "interchainTokenService";
          outputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              internalType: "bytes";
              name: "recipient";
              type: "bytes";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }, {
              internalType: "bytes";
              name: "metadata";
              type: "bytes";
          }];
          name: "interchainTransfer";
          outputs: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "sender";
              type: "address";
          }, {
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              internalType: "bytes";
              name: "recipient";
              type: "bytes";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }, {
              internalType: "bytes";
              name: "metadata";
              type: "bytes";
          }];
          name: "interchainTransferFrom";
          outputs: readonly [];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "addr";
              type: "address";
          }];
          name: "isMinter";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "account";
              type: "address";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "mint";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "name";
          outputs: readonly [{
              internalType: "string";
              name: "";
              type: "string";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "nameHash";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "";
              type: "address";
          }];
          name: "nonces";
          outputs: readonly [{
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "issuer";
              type: "address";
          }, {
              internalType: "address";
              name: "spender";
              type: "address";
          }, {
              internalType: "uint256";
              name: "value";
              type: "uint256";
          }, {
              internalType: "uint256";
              name: "deadline";
              type: "uint256";
          }, {
              internalType: "uint8";
              name: "v";
              type: "uint8";
          }, {
              internalType: "bytes32";
              name: "r";
              type: "bytes32";
          }, {
              internalType: "bytes32";
              name: "s";
              type: "bytes32";
          }];
          name: "permit";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "minter_";
              type: "address";
          }];
          name: "proposeMintership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "symbol";
          outputs: readonly [{
              internalType: "string";
              name: "";
              type: "string";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "totalSupply";
          outputs: readonly [{
              internalType: "uint256";
              name: "";
              type: "uint256";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "recipient";
              type: "address";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "transfer";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "sender";
              type: "address";
          }, {
              internalType: "address";
              name: "recipient";
              type: "address";
          }, {
              internalType: "uint256";
              name: "amount";
              type: "uint256";
          }];
          name: "transferFrom";
          outputs: readonly [{
              internalType: "bool";
              name: "";
              type: "bool";
          }];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "minter_";
              type: "address";
          }];
          name: "transferMintership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }], TFunctionName>, "address" | "abi" | "functionName"> & {
          address?: `0x${string}`;
      }

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

Generated using TypeDoc