Class InterchainTokenFactoryClient

InterchainTokenFactoryClient

Description

Type-safe contract client for InterchainTokenFactory

Example

import { sepolia } from "viem/chains";

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

Hierarchy (view full)

Constructors

Properties

Methods

Constructors

Properties

abi: readonly [{
    inputs: readonly [{
        internalType: "address";
        name: "interchainTokenService_";
        type: "address";
    }];
    stateMutability: "nonpayable";
    type: "constructor";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    name: "GatewayToken";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidChainName";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidCodeHash";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidImplementation";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidOwner";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidOwnerAddress";
    type: "error";
}, {
    inputs: readonly [];
    name: "MulticallFailed";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "minter";
        type: "address";
    }];
    name: "NotMinter";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "operator";
        type: "address";
    }];
    name: "NotOperator";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotOwner";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotProxy";
    type: "error";
}, {
    inputs: readonly [];
    name: "SetupFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "ZeroAddress";
    type: "error";
}, {
    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: "newImplementation";
        type: "address";
    }];
    name: "Upgraded";
    type: "event";
}, {
    inputs: readonly [];
    name: "acceptOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    name: "canonicalInterchainTokenId";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "chainNameHash_";
        type: "bytes32";
    }, {
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    name: "canonicalInterchainTokenSalt";
    outputs: readonly [{
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [];
    name: "chainNameHash";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    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: "name";
        type: "string";
    }, {
        internalType: "string";
        name: "symbol";
        type: "string";
    }, {
        internalType: "uint8";
        name: "decimals";
        type: "uint8";
    }, {
        internalType: "uint256";
        name: "initialSupply";
        type: "uint256";
    }, {
        internalType: "address";
        name: "minter";
        type: "address";
    }];
    name: "deployInterchainToken";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "originalChain";
        type: "string";
    }, {
        internalType: "address";
        name: "originalTokenAddress";
        type: "address";
    }, {
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        internalType: "uint256";
        name: "gasValue";
        type: "uint256";
    }];
    name: "deployRemoteCanonicalInterchainToken";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "originalChainName";
        type: "string";
    }, {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }, {
        internalType: "address";
        name: "minter";
        type: "address";
    }, {
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        internalType: "uint256";
        name: "gasValue";
        type: "uint256";
    }];
    name: "deployRemoteInterchainToken";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [];
    name: "gateway";
    outputs: readonly [{
        internalType: "contract IAxelarGateway";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "implementation";
    outputs: readonly [{
        internalType: "address";
        name: "implementation_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "deployer";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }];
    name: "interchainTokenAddress";
    outputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "deployer";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }];
    name: "interchainTokenId";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "chainNameHash_";
        type: "bytes32";
    }, {
        internalType: "address";
        name: "deployer";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }];
    name: "interchainTokenSalt";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [];
    name: "interchainTokenService";
    outputs: readonly [{
        internalType: "contract IInterchainTokenService";
        name: "";
        type: "address";
    }];
    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: "pendingOwner";
    outputs: readonly [{
        internalType: "address";
        name: "owner_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "proposeOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    name: "registerCanonicalInterchainToken";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "setup";
    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: "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";
}]
address?: `0x${string}`
chain?: Chain
reads: {
    canonicalInterchainTokenId(canonicalInterchainTokenIdArgs): Promise<`0x${string}`>;
    canonicalInterchainTokenSalt(canonicalInterchainTokenSaltArgs): Promise<never>;
    chainNameHash(): Promise<`0x${string}`>;
    contractId(): Promise<never>;
    gateway(): Promise<`0x${string}`>;
    implementation(): Promise<`0x${string}`>;
    interchainTokenAddress(interchainTokenAddressArgs): Promise<`0x${string}`>;
    interchainTokenId(interchainTokenIdArgs): Promise<`0x${string}`>;
    interchainTokenSalt(interchainTokenSaltArgs): Promise<never>;
    interchainTokenService(): Promise<`0x${string}`>;
    owner(): Promise<`0x${string}`>;
    pendingOwner(): Promise<`0x${string}`>;
}

Type declaration

ABI: readonly [{
    inputs: readonly [{
        internalType: "address";
        name: "interchainTokenService_";
        type: "address";
    }];
    stateMutability: "nonpayable";
    type: "constructor";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    name: "GatewayToken";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidChainName";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidCodeHash";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidImplementation";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidOwner";
    type: "error";
}, {
    inputs: readonly [];
    name: "InvalidOwnerAddress";
    type: "error";
}, {
    inputs: readonly [];
    name: "MulticallFailed";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "minter";
        type: "address";
    }];
    name: "NotMinter";
    type: "error";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "operator";
        type: "address";
    }];
    name: "NotOperator";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotOwner";
    type: "error";
}, {
    inputs: readonly [];
    name: "NotProxy";
    type: "error";
}, {
    inputs: readonly [];
    name: "SetupFailed";
    type: "error";
}, {
    inputs: readonly [];
    name: "ZeroAddress";
    type: "error";
}, {
    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: "newImplementation";
        type: "address";
    }];
    name: "Upgraded";
    type: "event";
}, {
    inputs: readonly [];
    name: "acceptOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    name: "canonicalInterchainTokenId";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "chainNameHash_";
        type: "bytes32";
    }, {
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    name: "canonicalInterchainTokenSalt";
    outputs: readonly [{
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [];
    name: "chainNameHash";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    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: "name";
        type: "string";
    }, {
        internalType: "string";
        name: "symbol";
        type: "string";
    }, {
        internalType: "uint8";
        name: "decimals";
        type: "uint8";
    }, {
        internalType: "uint256";
        name: "initialSupply";
        type: "uint256";
    }, {
        internalType: "address";
        name: "minter";
        type: "address";
    }];
    name: "deployInterchainToken";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "originalChain";
        type: "string";
    }, {
        internalType: "address";
        name: "originalTokenAddress";
        type: "address";
    }, {
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        internalType: "uint256";
        name: "gasValue";
        type: "uint256";
    }];
    name: "deployRemoteCanonicalInterchainToken";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "string";
        name: "originalChainName";
        type: "string";
    }, {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }, {
        internalType: "address";
        name: "minter";
        type: "address";
    }, {
        internalType: "string";
        name: "destinationChain";
        type: "string";
    }, {
        internalType: "uint256";
        name: "gasValue";
        type: "uint256";
    }];
    name: "deployRemoteInterchainToken";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [];
    name: "gateway";
    outputs: readonly [{
        internalType: "contract IAxelarGateway";
        name: "";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [];
    name: "implementation";
    outputs: readonly [{
        internalType: "address";
        name: "implementation_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "deployer";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }];
    name: "interchainTokenAddress";
    outputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "deployer";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }];
    name: "interchainTokenId";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes32";
        name: "chainNameHash_";
        type: "bytes32";
    }, {
        internalType: "address";
        name: "deployer";
        type: "address";
    }, {
        internalType: "bytes32";
        name: "salt";
        type: "bytes32";
    }];
    name: "interchainTokenSalt";
    outputs: readonly [{
        internalType: "bytes32";
        name: "";
        type: "bytes32";
    }];
    stateMutability: "pure";
    type: "function";
}, {
    inputs: readonly [];
    name: "interchainTokenService";
    outputs: readonly [{
        internalType: "contract IInterchainTokenService";
        name: "";
        type: "address";
    }];
    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: "pendingOwner";
    outputs: readonly [{
        internalType: "address";
        name: "owner_";
        type: "address";
    }];
    stateMutability: "view";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "newOwner";
        type: "address";
    }];
    name: "proposeOwnership";
    outputs: readonly [];
    stateMutability: "nonpayable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "address";
        name: "tokenAddress";
        type: "address";
    }];
    name: "registerCanonicalInterchainToken";
    outputs: readonly [{
        internalType: "bytes32";
        name: "tokenId";
        type: "bytes32";
    }];
    stateMutability: "payable";
    type: "function";
}, {
    inputs: readonly [{
        internalType: "bytes";
        name: "data";
        type: "bytes";
    }];
    name: "setup";
    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: "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";
}] = ABI_FILE.abi
contractName: "InterchainTokenFactory" = ABI_FILE.contractName

Methods

  • Type Parameters

    • TFunctionName extends "owner" | "pendingOwner" | "interchainTokenId" | "interchainTokenService" | "implementation" | "chainNameHash" | "contractId" | "gateway" | "interchainTokenAddress" | "canonicalInterchainTokenId" | "canonicalInterchainTokenSalt" | "interchainTokenSalt"

    Parameters

    • functionName: TFunctionName
    • Optional params: Omit<ReadContractParameters<readonly [{
          inputs: readonly [{
              internalType: "address";
              name: "interchainTokenService_";
              type: "address";
          }];
          stateMutability: "nonpayable";
          type: "constructor";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          name: "GatewayToken";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidChainName";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidCodeHash";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidImplementation";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidOwner";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidOwnerAddress";
          type: "error";
      }, {
          inputs: readonly [];
          name: "MulticallFailed";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "minter";
              type: "address";
          }];
          name: "NotMinter";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "operator";
              type: "address";
          }];
          name: "NotOperator";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotOwner";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotProxy";
          type: "error";
      }, {
          inputs: readonly [];
          name: "SetupFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "ZeroAddress";
          type: "error";
      }, {
          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: "newImplementation";
              type: "address";
          }];
          name: "Upgraded";
          type: "event";
      }, {
          inputs: readonly [];
          name: "acceptOwnership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          name: "canonicalInterchainTokenId";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "chainNameHash_";
              type: "bytes32";
          }, {
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          name: "canonicalInterchainTokenSalt";
          outputs: readonly [{
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }];
          stateMutability: "pure";
          type: "function";
      }, {
          inputs: readonly [];
          name: "chainNameHash";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          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: "name";
              type: "string";
          }, {
              internalType: "string";
              name: "symbol";
              type: "string";
          }, {
              internalType: "uint8";
              name: "decimals";
              type: "uint8";
          }, {
              internalType: "uint256";
              name: "initialSupply";
              type: "uint256";
          }, {
              internalType: "address";
              name: "minter";
              type: "address";
          }];
          name: "deployInterchainToken";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "originalChain";
              type: "string";
          }, {
              internalType: "address";
              name: "originalTokenAddress";
              type: "address";
          }, {
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              internalType: "uint256";
              name: "gasValue";
              type: "uint256";
          }];
          name: "deployRemoteCanonicalInterchainToken";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "originalChainName";
              type: "string";
          }, {
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }, {
              internalType: "address";
              name: "minter";
              type: "address";
          }, {
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              internalType: "uint256";
              name: "gasValue";
              type: "uint256";
          }];
          name: "deployRemoteInterchainToken";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "gateway";
          outputs: readonly [{
              internalType: "contract IAxelarGateway";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "implementation";
          outputs: readonly [{
              internalType: "address";
              name: "implementation_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "deployer";
              type: "address";
          }, {
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }];
          name: "interchainTokenAddress";
          outputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "deployer";
              type: "address";
          }, {
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }];
          name: "interchainTokenId";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "chainNameHash_";
              type: "bytes32";
          }, {
              internalType: "address";
              name: "deployer";
              type: "address";
          }, {
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }];
          name: "interchainTokenSalt";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "pure";
          type: "function";
      }, {
          inputs: readonly [];
          name: "interchainTokenService";
          outputs: readonly [{
              internalType: "contract IInterchainTokenService";
              name: "";
              type: "address";
          }];
          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: "pendingOwner";
          outputs: readonly [{
              internalType: "address";
              name: "owner_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "newOwner";
              type: "address";
          }];
          name: "proposeOwnership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          name: "registerCanonicalInterchainToken";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "data";
              type: "bytes";
          }];
          name: "setup";
          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: "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";
      }], 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: ...;
                }, {
                    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: ...;
                }], "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" | "deployInterchainToken" | "proposeOwnership" | "upgrade" | "deployRemoteCanonicalInterchainToken" | "deployRemoteInterchainToken" | "registerCanonicalInterchainToken"

    Parameters

    • functionName: TFunctionName
    • Optional params: Omit<WriteContractParameters<readonly [{
          inputs: readonly [{
              internalType: "address";
              name: "interchainTokenService_";
              type: "address";
          }];
          stateMutability: "nonpayable";
          type: "constructor";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          name: "GatewayToken";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidChainName";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidCodeHash";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidImplementation";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidOwner";
          type: "error";
      }, {
          inputs: readonly [];
          name: "InvalidOwnerAddress";
          type: "error";
      }, {
          inputs: readonly [];
          name: "MulticallFailed";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "minter";
              type: "address";
          }];
          name: "NotMinter";
          type: "error";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "operator";
              type: "address";
          }];
          name: "NotOperator";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotOwner";
          type: "error";
      }, {
          inputs: readonly [];
          name: "NotProxy";
          type: "error";
      }, {
          inputs: readonly [];
          name: "SetupFailed";
          type: "error";
      }, {
          inputs: readonly [];
          name: "ZeroAddress";
          type: "error";
      }, {
          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: "newImplementation";
              type: "address";
          }];
          name: "Upgraded";
          type: "event";
      }, {
          inputs: readonly [];
          name: "acceptOwnership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          name: "canonicalInterchainTokenId";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "chainNameHash_";
              type: "bytes32";
          }, {
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          name: "canonicalInterchainTokenSalt";
          outputs: readonly [{
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }];
          stateMutability: "pure";
          type: "function";
      }, {
          inputs: readonly [];
          name: "chainNameHash";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          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: "name";
              type: "string";
          }, {
              internalType: "string";
              name: "symbol";
              type: "string";
          }, {
              internalType: "uint8";
              name: "decimals";
              type: "uint8";
          }, {
              internalType: "uint256";
              name: "initialSupply";
              type: "uint256";
          }, {
              internalType: "address";
              name: "minter";
              type: "address";
          }];
          name: "deployInterchainToken";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "originalChain";
              type: "string";
          }, {
              internalType: "address";
              name: "originalTokenAddress";
              type: "address";
          }, {
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              internalType: "uint256";
              name: "gasValue";
              type: "uint256";
          }];
          name: "deployRemoteCanonicalInterchainToken";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "string";
              name: "originalChainName";
              type: "string";
          }, {
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }, {
              internalType: "address";
              name: "minter";
              type: "address";
          }, {
              internalType: "string";
              name: "destinationChain";
              type: "string";
          }, {
              internalType: "uint256";
              name: "gasValue";
              type: "uint256";
          }];
          name: "deployRemoteInterchainToken";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [];
          name: "gateway";
          outputs: readonly [{
              internalType: "contract IAxelarGateway";
              name: "";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [];
          name: "implementation";
          outputs: readonly [{
              internalType: "address";
              name: "implementation_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "deployer";
              type: "address";
          }, {
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }];
          name: "interchainTokenAddress";
          outputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "deployer";
              type: "address";
          }, {
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }];
          name: "interchainTokenId";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes32";
              name: "chainNameHash_";
              type: "bytes32";
          }, {
              internalType: "address";
              name: "deployer";
              type: "address";
          }, {
              internalType: "bytes32";
              name: "salt";
              type: "bytes32";
          }];
          name: "interchainTokenSalt";
          outputs: readonly [{
              internalType: "bytes32";
              name: "";
              type: "bytes32";
          }];
          stateMutability: "pure";
          type: "function";
      }, {
          inputs: readonly [];
          name: "interchainTokenService";
          outputs: readonly [{
              internalType: "contract IInterchainTokenService";
              name: "";
              type: "address";
          }];
          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: "pendingOwner";
          outputs: readonly [{
              internalType: "address";
              name: "owner_";
              type: "address";
          }];
          stateMutability: "view";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "newOwner";
              type: "address";
          }];
          name: "proposeOwnership";
          outputs: readonly [];
          stateMutability: "nonpayable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "address";
              name: "tokenAddress";
              type: "address";
          }];
          name: "registerCanonicalInterchainToken";
          outputs: readonly [{
              internalType: "bytes32";
              name: "tokenId";
              type: "bytes32";
          }];
          stateMutability: "payable";
          type: "function";
      }, {
          inputs: readonly [{
              internalType: "bytes";
              name: "data";
              type: "bytes";
          }];
          name: "setup";
          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: "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";
      }], TFunctionName>, "address" | "abi" | "functionName"> & {
          address?: `0x${string}`;
      }

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

Generated using TypeDoc