@axelar-network/interchain-token-service
Version:
Interchain token service for EVM chains to faciliate interchain token transfers and contract calls
1,287 lines (1,161 loc) • 38.5 kB
text/typescript
/* eslint-disable @typescript-eslint/no-explicit-any */
/**
* This file was generated by scripts/codegen.ts
*
* Original abi file:
* - artifacts/contracts/InterchainTokenService.sol/InterchainTokenService.json
*
* DO NOT EDIT MANUALLY
*/
import { encodeFunctionData } from "viem";
import type { PublicContractClient } from "@axelarjs/evm";
import ABI_FILE from "./InterchainTokenService.abi";
export type InterchainTokenServiceAcceptOperatorshipArgs = {
fromOperator: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.acceptOperatorship function args
*/
export const encodeInterchainTokenServiceAcceptOperatorshipArgs = ({
fromOperator,
}: InterchainTokenServiceAcceptOperatorshipArgs) => [fromOperator] as const;
/**
* Encoder function for InterchainTokenService.acceptOperatorship function data
*/
export const encodeInterchainTokenServiceAcceptOperatorshipData = ({
fromOperator,
}: InterchainTokenServiceAcceptOperatorshipArgs): `0x${string}` =>
encodeFunctionData({
functionName: "acceptOperatorship",
abi: ABI_FILE.abi,
args: [fromOperator],
});
export type InterchainTokenServiceCallContractWithInterchainTokenArgs = {
tokenId: `0x${string}`;
destinationChain: string;
destinationAddress: `0x${string}`;
amount: bigint;
data: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.callContractWithInterchainToken function args
*/
export const encodeInterchainTokenServiceCallContractWithInterchainTokenArgs =
({
tokenId,
destinationChain,
destinationAddress,
amount,
data,
}: InterchainTokenServiceCallContractWithInterchainTokenArgs) =>
[tokenId, destinationChain, destinationAddress, amount, data] as const;
/**
* Encoder function for InterchainTokenService.callContractWithInterchainToken function data
*/
export const encodeInterchainTokenServiceCallContractWithInterchainTokenData =
({
tokenId,
destinationChain,
destinationAddress,
amount,
data,
}: InterchainTokenServiceCallContractWithInterchainTokenArgs): `0x${string}` =>
encodeFunctionData({
functionName: "callContractWithInterchainToken",
abi: ABI_FILE.abi,
args: [tokenId, destinationChain, destinationAddress, amount, data],
});
export type InterchainTokenServiceContractCallValueArgs = {
sourceChain: string;
sourceAddress: string;
payload: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.contractCallValue function args
*/
export const encodeInterchainTokenServiceContractCallValueArgs = ({
sourceChain,
sourceAddress,
payload,
}: InterchainTokenServiceContractCallValueArgs) =>
[sourceChain, sourceAddress, payload] as const;
/**
* Encoder function for InterchainTokenService.contractCallValue function data
*/
export const encodeInterchainTokenServiceContractCallValueData = ({
sourceChain,
sourceAddress,
payload,
}: InterchainTokenServiceContractCallValueArgs): `0x${string}` =>
encodeFunctionData({
functionName: "contractCallValue",
abi: ABI_FILE.abi,
args: [sourceChain, sourceAddress, payload],
});
export type InterchainTokenServiceDeployInterchainTokenArgs = {
salt: `0x${string}`;
destinationChain: string;
name: string;
symbol: string;
decimals: number;
minter: `0x${string}`;
gasValue: bigint;
};
/**
* Factory function for InterchainTokenService.deployInterchainToken function args
*/
export const encodeInterchainTokenServiceDeployInterchainTokenArgs = ({
salt,
destinationChain,
name,
symbol,
decimals,
minter,
gasValue,
}: InterchainTokenServiceDeployInterchainTokenArgs) =>
[salt, destinationChain, name, symbol, decimals, minter, gasValue] as const;
/**
* Encoder function for InterchainTokenService.deployInterchainToken function data
*/
export const encodeInterchainTokenServiceDeployInterchainTokenData = ({
salt,
destinationChain,
name,
symbol,
decimals,
minter,
gasValue,
}: InterchainTokenServiceDeployInterchainTokenArgs): `0x${string}` =>
encodeFunctionData({
functionName: "deployInterchainToken",
abi: ABI_FILE.abi,
args: [salt, destinationChain, name, symbol, decimals, minter, gasValue],
});
export type InterchainTokenServiceDeployedTokenManagerArgs = {
tokenId: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.deployedTokenManager function args
*/
export const encodeInterchainTokenServiceDeployedTokenManagerArgs = ({
tokenId,
}: InterchainTokenServiceDeployedTokenManagerArgs) => [tokenId] as const;
/**
* Encoder function for InterchainTokenService.deployedTokenManager function data
*/
export const encodeInterchainTokenServiceDeployedTokenManagerData = ({
tokenId,
}: InterchainTokenServiceDeployedTokenManagerArgs): `0x${string}` =>
encodeFunctionData({
functionName: "deployedTokenManager",
abi: ABI_FILE.abi,
args: [tokenId],
});
export type InterchainTokenServiceExecuteArgs = {
commandId: `0x${string}`;
sourceChain: string;
sourceAddress: string;
payload: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.execute function args
*/
export const encodeInterchainTokenServiceExecuteArgs = ({
commandId,
sourceChain,
sourceAddress,
payload,
}: InterchainTokenServiceExecuteArgs) =>
[commandId, sourceChain, sourceAddress, payload] as const;
/**
* Encoder function for InterchainTokenService.execute function data
*/
export const encodeInterchainTokenServiceExecuteData = ({
commandId,
sourceChain,
sourceAddress,
payload,
}: InterchainTokenServiceExecuteArgs): `0x${string}` =>
encodeFunctionData({
functionName: "execute",
abi: ABI_FILE.abi,
args: [commandId, sourceChain, sourceAddress, payload],
});
export type InterchainTokenServiceExpressExecuteArgs = {
commandId: `0x${string}`;
sourceChain: string;
sourceAddress: string;
payload: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.expressExecute function args
*/
export const encodeInterchainTokenServiceExpressExecuteArgs = ({
commandId,
sourceChain,
sourceAddress,
payload,
}: InterchainTokenServiceExpressExecuteArgs) =>
[commandId, sourceChain, sourceAddress, payload] as const;
/**
* Encoder function for InterchainTokenService.expressExecute function data
*/
export const encodeInterchainTokenServiceExpressExecuteData = ({
commandId,
sourceChain,
sourceAddress,
payload,
}: InterchainTokenServiceExpressExecuteArgs): `0x${string}` =>
encodeFunctionData({
functionName: "expressExecute",
abi: ABI_FILE.abi,
args: [commandId, sourceChain, sourceAddress, payload],
});
export type InterchainTokenServiceGetExpressExecutorArgs = {
commandId: `0x${string}`;
sourceChain: string;
sourceAddress: string;
payloadHash: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.getExpressExecutor function args
*/
export const encodeInterchainTokenServiceGetExpressExecutorArgs = ({
commandId,
sourceChain,
sourceAddress,
payloadHash,
}: InterchainTokenServiceGetExpressExecutorArgs) =>
[commandId, sourceChain, sourceAddress, payloadHash] as const;
/**
* Encoder function for InterchainTokenService.getExpressExecutor function data
*/
export const encodeInterchainTokenServiceGetExpressExecutorData = ({
commandId,
sourceChain,
sourceAddress,
payloadHash,
}: InterchainTokenServiceGetExpressExecutorArgs): `0x${string}` =>
encodeFunctionData({
functionName: "getExpressExecutor",
abi: ABI_FILE.abi,
args: [commandId, sourceChain, sourceAddress, payloadHash],
});
export type InterchainTokenServiceHasRoleArgs = {
account: `0x${string}`;
role: number;
};
/**
* Factory function for InterchainTokenService.hasRole function args
*/
export const encodeInterchainTokenServiceHasRoleArgs = ({
account,
role,
}: InterchainTokenServiceHasRoleArgs) => [account, role] as const;
/**
* Encoder function for InterchainTokenService.hasRole function data
*/
export const encodeInterchainTokenServiceHasRoleData = ({
account,
role,
}: InterchainTokenServiceHasRoleArgs): `0x${string}` =>
encodeFunctionData({
functionName: "hasRole",
abi: ABI_FILE.abi,
args: [account, role],
});
export type InterchainTokenServiceInterchainTokenAddressArgs = {
tokenId: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.interchainTokenAddress function args
*/
export const encodeInterchainTokenServiceInterchainTokenAddressArgs = ({
tokenId,
}: InterchainTokenServiceInterchainTokenAddressArgs) => [tokenId] as const;
/**
* Encoder function for InterchainTokenService.interchainTokenAddress function data
*/
export const encodeInterchainTokenServiceInterchainTokenAddressData = ({
tokenId,
}: InterchainTokenServiceInterchainTokenAddressArgs): `0x${string}` =>
encodeFunctionData({
functionName: "interchainTokenAddress",
abi: ABI_FILE.abi,
args: [tokenId],
});
export type InterchainTokenServiceInterchainTokenIdArgs = {
sender: `0x${string}`;
salt: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.interchainTokenId function args
*/
export const encodeInterchainTokenServiceInterchainTokenIdArgs = ({
sender,
salt,
}: InterchainTokenServiceInterchainTokenIdArgs) => [sender, salt] as const;
/**
* Encoder function for InterchainTokenService.interchainTokenId function data
*/
export const encodeInterchainTokenServiceInterchainTokenIdData = ({
sender,
salt,
}: InterchainTokenServiceInterchainTokenIdArgs): `0x${string}` =>
encodeFunctionData({
functionName: "interchainTokenId",
abi: ABI_FILE.abi,
args: [sender, salt],
});
export type InterchainTokenServiceInterchainTransferArgs = {
tokenId: `0x${string}`;
destinationChain: string;
destinationAddress: `0x${string}`;
amount: bigint;
metadata: `0x${string}`;
gasValue: bigint;
};
/**
* Factory function for InterchainTokenService.interchainTransfer function args
*/
export const encodeInterchainTokenServiceInterchainTransferArgs = ({
tokenId,
destinationChain,
destinationAddress,
amount,
metadata,
gasValue,
}: InterchainTokenServiceInterchainTransferArgs) =>
[
tokenId,
destinationChain,
destinationAddress,
amount,
metadata,
gasValue,
] as const;
/**
* Encoder function for InterchainTokenService.interchainTransfer function data
*/
export const encodeInterchainTokenServiceInterchainTransferData = ({
tokenId,
destinationChain,
destinationAddress,
amount,
metadata,
gasValue,
}: InterchainTokenServiceInterchainTransferArgs): `0x${string}` =>
encodeFunctionData({
functionName: "interchainTransfer",
abi: ABI_FILE.abi,
args: [
tokenId,
destinationChain,
destinationAddress,
amount,
metadata,
gasValue,
],
});
export type InterchainTokenServiceInterchainTransferArgs = {
tokenId: `0x${string}`;
destinationChain: string;
destinationAddress: `0x${string}`;
amount: bigint;
};
/**
* Factory function for InterchainTokenService.interchainTransfer function args
*/
export const encodeInterchainTokenServiceInterchainTransferArgs = ({
tokenId,
destinationChain,
destinationAddress,
amount,
}: InterchainTokenServiceInterchainTransferArgs) =>
[tokenId, destinationChain, destinationAddress, amount] as const;
/**
* Encoder function for InterchainTokenService.interchainTransfer function data
*/
export const encodeInterchainTokenServiceInterchainTransferData = ({
tokenId,
destinationChain,
destinationAddress,
amount,
}: InterchainTokenServiceInterchainTransferArgs): `0x${string}` =>
encodeFunctionData({
functionName: "interchainTransfer",
abi: ABI_FILE.abi,
args: [tokenId, destinationChain, destinationAddress, amount],
});
export type InterchainTokenServiceIsOperatorArgs = { addr: `0x${string}` };
/**
* Factory function for InterchainTokenService.isOperator function args
*/
export const encodeInterchainTokenServiceIsOperatorArgs = ({
addr,
}: InterchainTokenServiceIsOperatorArgs) => [addr] as const;
/**
* Encoder function for InterchainTokenService.isOperator function data
*/
export const encodeInterchainTokenServiceIsOperatorData = ({
addr,
}: InterchainTokenServiceIsOperatorArgs): `0x${string}` =>
encodeFunctionData({
functionName: "isOperator",
abi: ABI_FILE.abi,
args: [addr],
});
export type InterchainTokenServiceIsTrustedAddressArgs = {
chain: string;
address_: string;
};
/**
* Factory function for InterchainTokenService.isTrustedAddress function args
*/
export const encodeInterchainTokenServiceIsTrustedAddressArgs = ({
chain,
address_,
}: InterchainTokenServiceIsTrustedAddressArgs) => [chain, address_] as const;
/**
* Encoder function for InterchainTokenService.isTrustedAddress function data
*/
export const encodeInterchainTokenServiceIsTrustedAddressData = ({
chain,
address_,
}: InterchainTokenServiceIsTrustedAddressArgs): `0x${string}` =>
encodeFunctionData({
functionName: "isTrustedAddress",
abi: ABI_FILE.abi,
args: [chain, address_],
});
export type InterchainTokenServiceIsTrustedChainArgs = { chainName: string };
/**
* Factory function for InterchainTokenService.isTrustedChain function args
*/
export const encodeInterchainTokenServiceIsTrustedChainArgs = ({
chainName,
}: InterchainTokenServiceIsTrustedChainArgs) => [chainName] as const;
/**
* Encoder function for InterchainTokenService.isTrustedChain function data
*/
export const encodeInterchainTokenServiceIsTrustedChainData = ({
chainName,
}: InterchainTokenServiceIsTrustedChainArgs): `0x${string}` =>
encodeFunctionData({
functionName: "isTrustedChain",
abi: ABI_FILE.abi,
args: [chainName],
});
export type InterchainTokenServiceLinkTokenArgs = {
salt: `0x${string}`;
destinationChain: string;
destinationTokenAddress: `0x${string}`;
tokenManagerType: number;
linkParams: `0x${string}`;
gasValue: bigint;
};
/**
* Factory function for InterchainTokenService.linkToken function args
*/
export const encodeInterchainTokenServiceLinkTokenArgs = ({
salt,
destinationChain,
destinationTokenAddress,
tokenManagerType,
linkParams,
gasValue,
}: InterchainTokenServiceLinkTokenArgs) =>
[
salt,
destinationChain,
destinationTokenAddress,
tokenManagerType,
linkParams,
gasValue,
] as const;
/**
* Encoder function for InterchainTokenService.linkToken function data
*/
export const encodeInterchainTokenServiceLinkTokenData = ({
salt,
destinationChain,
destinationTokenAddress,
tokenManagerType,
linkParams,
gasValue,
}: InterchainTokenServiceLinkTokenArgs): `0x${string}` =>
encodeFunctionData({
functionName: "linkToken",
abi: ABI_FILE.abi,
args: [
salt,
destinationChain,
destinationTokenAddress,
tokenManagerType,
linkParams,
gasValue,
],
});
export type InterchainTokenServiceMigrateInterchainTokenArgs = {
tokenId: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.migrateInterchainToken function args
*/
export const encodeInterchainTokenServiceMigrateInterchainTokenArgs = ({
tokenId,
}: InterchainTokenServiceMigrateInterchainTokenArgs) => [tokenId] as const;
/**
* Encoder function for InterchainTokenService.migrateInterchainToken function data
*/
export const encodeInterchainTokenServiceMigrateInterchainTokenData = ({
tokenId,
}: InterchainTokenServiceMigrateInterchainTokenArgs): `0x${string}` =>
encodeFunctionData({
functionName: "migrateInterchainToken",
abi: ABI_FILE.abi,
args: [tokenId],
});
export type InterchainTokenServiceMulticallArgs = { data: any };
/**
* Factory function for InterchainTokenService.multicall function args
*/
export const encodeInterchainTokenServiceMulticallArgs = ({
data,
}: InterchainTokenServiceMulticallArgs) => [data] as const;
/**
* Encoder function for InterchainTokenService.multicall function data
*/
export const encodeInterchainTokenServiceMulticallData = ({
data,
}: InterchainTokenServiceMulticallArgs): `0x${string}` =>
encodeFunctionData({
functionName: "multicall",
abi: ABI_FILE.abi,
args: [data],
});
export type InterchainTokenServiceProposeOperatorshipArgs = {
operator: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.proposeOperatorship function args
*/
export const encodeInterchainTokenServiceProposeOperatorshipArgs = ({
operator,
}: InterchainTokenServiceProposeOperatorshipArgs) => [operator] as const;
/**
* Encoder function for InterchainTokenService.proposeOperatorship function data
*/
export const encodeInterchainTokenServiceProposeOperatorshipData = ({
operator,
}: InterchainTokenServiceProposeOperatorshipArgs): `0x${string}` =>
encodeFunctionData({
functionName: "proposeOperatorship",
abi: ABI_FILE.abi,
args: [operator],
});
export type InterchainTokenServiceProposeOwnershipArgs = {
newOwner: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.proposeOwnership function args
*/
export const encodeInterchainTokenServiceProposeOwnershipArgs = ({
newOwner,
}: InterchainTokenServiceProposeOwnershipArgs) => [newOwner] as const;
/**
* Encoder function for InterchainTokenService.proposeOwnership function data
*/
export const encodeInterchainTokenServiceProposeOwnershipData = ({
newOwner,
}: InterchainTokenServiceProposeOwnershipArgs): `0x${string}` =>
encodeFunctionData({
functionName: "proposeOwnership",
abi: ABI_FILE.abi,
args: [newOwner],
});
export type InterchainTokenServiceRegisterCustomTokenArgs = {
salt: `0x${string}`;
tokenAddress: `0x${string}`;
tokenManagerType: number;
linkParams: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.registerCustomToken function args
*/
export const encodeInterchainTokenServiceRegisterCustomTokenArgs = ({
salt,
tokenAddress,
tokenManagerType,
linkParams,
}: InterchainTokenServiceRegisterCustomTokenArgs) =>
[salt, tokenAddress, tokenManagerType, linkParams] as const;
/**
* Encoder function for InterchainTokenService.registerCustomToken function data
*/
export const encodeInterchainTokenServiceRegisterCustomTokenData = ({
salt,
tokenAddress,
tokenManagerType,
linkParams,
}: InterchainTokenServiceRegisterCustomTokenArgs): `0x${string}` =>
encodeFunctionData({
functionName: "registerCustomToken",
abi: ABI_FILE.abi,
args: [salt, tokenAddress, tokenManagerType, linkParams],
});
export type InterchainTokenServiceRegisterTokenMetadataArgs = {
tokenAddress: `0x${string}`;
gasValue: bigint;
};
/**
* Factory function for InterchainTokenService.registerTokenMetadata function args
*/
export const encodeInterchainTokenServiceRegisterTokenMetadataArgs = ({
tokenAddress,
gasValue,
}: InterchainTokenServiceRegisterTokenMetadataArgs) =>
[tokenAddress, gasValue] as const;
/**
* Encoder function for InterchainTokenService.registerTokenMetadata function data
*/
export const encodeInterchainTokenServiceRegisterTokenMetadataData = ({
tokenAddress,
gasValue,
}: InterchainTokenServiceRegisterTokenMetadataArgs): `0x${string}` =>
encodeFunctionData({
functionName: "registerTokenMetadata",
abi: ABI_FILE.abi,
args: [tokenAddress, gasValue],
});
export type InterchainTokenServiceRegisteredTokenAddressArgs = {
tokenId: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.registeredTokenAddress function args
*/
export const encodeInterchainTokenServiceRegisteredTokenAddressArgs = ({
tokenId,
}: InterchainTokenServiceRegisteredTokenAddressArgs) => [tokenId] as const;
/**
* Encoder function for InterchainTokenService.registeredTokenAddress function data
*/
export const encodeInterchainTokenServiceRegisteredTokenAddressData = ({
tokenId,
}: InterchainTokenServiceRegisteredTokenAddressArgs): `0x${string}` =>
encodeFunctionData({
functionName: "registeredTokenAddress",
abi: ABI_FILE.abi,
args: [tokenId],
});
export type InterchainTokenServiceRemoveTrustedChainArgs = {
chainName: string;
};
/**
* Factory function for InterchainTokenService.removeTrustedChain function args
*/
export const encodeInterchainTokenServiceRemoveTrustedChainArgs = ({
chainName,
}: InterchainTokenServiceRemoveTrustedChainArgs) => [chainName] as const;
/**
* Encoder function for InterchainTokenService.removeTrustedChain function data
*/
export const encodeInterchainTokenServiceRemoveTrustedChainData = ({
chainName,
}: InterchainTokenServiceRemoveTrustedChainArgs): `0x${string}` =>
encodeFunctionData({
functionName: "removeTrustedChain",
abi: ABI_FILE.abi,
args: [chainName],
});
export type InterchainTokenServiceSetFlowLimitsArgs = {
tokenIds: any;
flowLimits: any;
};
/**
* Factory function for InterchainTokenService.setFlowLimits function args
*/
export const encodeInterchainTokenServiceSetFlowLimitsArgs = ({
tokenIds,
flowLimits,
}: InterchainTokenServiceSetFlowLimitsArgs) => [tokenIds, flowLimits] as const;
/**
* Encoder function for InterchainTokenService.setFlowLimits function data
*/
export const encodeInterchainTokenServiceSetFlowLimitsData = ({
tokenIds,
flowLimits,
}: InterchainTokenServiceSetFlowLimitsArgs): `0x${string}` =>
encodeFunctionData({
functionName: "setFlowLimits",
abi: ABI_FILE.abi,
args: [tokenIds, flowLimits],
});
export type InterchainTokenServiceSetPauseStatusArgs = { paused: boolean };
/**
* Factory function for InterchainTokenService.setPauseStatus function args
*/
export const encodeInterchainTokenServiceSetPauseStatusArgs = ({
paused,
}: InterchainTokenServiceSetPauseStatusArgs) => [paused] as const;
/**
* Encoder function for InterchainTokenService.setPauseStatus function data
*/
export const encodeInterchainTokenServiceSetPauseStatusData = ({
paused,
}: InterchainTokenServiceSetPauseStatusArgs): `0x${string}` =>
encodeFunctionData({
functionName: "setPauseStatus",
abi: ABI_FILE.abi,
args: [paused],
});
export type InterchainTokenServiceSetTrustedChainArgs = { chainName: string };
/**
* Factory function for InterchainTokenService.setTrustedChain function args
*/
export const encodeInterchainTokenServiceSetTrustedChainArgs = ({
chainName,
}: InterchainTokenServiceSetTrustedChainArgs) => [chainName] as const;
/**
* Encoder function for InterchainTokenService.setTrustedChain function data
*/
export const encodeInterchainTokenServiceSetTrustedChainData = ({
chainName,
}: InterchainTokenServiceSetTrustedChainArgs): `0x${string}` =>
encodeFunctionData({
functionName: "setTrustedChain",
abi: ABI_FILE.abi,
args: [chainName],
});
export type InterchainTokenServiceSetupArgs = { data: `0x${string}` };
/**
* Factory function for InterchainTokenService.setup function args
*/
export const encodeInterchainTokenServiceSetupArgs = ({
data,
}: InterchainTokenServiceSetupArgs) => [data] as const;
/**
* Encoder function for InterchainTokenService.setup function data
*/
export const encodeInterchainTokenServiceSetupData = ({
data,
}: InterchainTokenServiceSetupArgs): `0x${string}` =>
encodeFunctionData({
functionName: "setup",
abi: ABI_FILE.abi,
args: [data],
});
export type InterchainTokenServiceTokenManagerAddressArgs = {
tokenId: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.tokenManagerAddress function args
*/
export const encodeInterchainTokenServiceTokenManagerAddressArgs = ({
tokenId,
}: InterchainTokenServiceTokenManagerAddressArgs) => [tokenId] as const;
/**
* Encoder function for InterchainTokenService.tokenManagerAddress function data
*/
export const encodeInterchainTokenServiceTokenManagerAddressData = ({
tokenId,
}: InterchainTokenServiceTokenManagerAddressArgs): `0x${string}` =>
encodeFunctionData({
functionName: "tokenManagerAddress",
abi: ABI_FILE.abi,
args: [tokenId],
});
export type InterchainTokenServiceTransferOperatorshipArgs = {
operator: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.transferOperatorship function args
*/
export const encodeInterchainTokenServiceTransferOperatorshipArgs = ({
operator,
}: InterchainTokenServiceTransferOperatorshipArgs) => [operator] as const;
/**
* Encoder function for InterchainTokenService.transferOperatorship function data
*/
export const encodeInterchainTokenServiceTransferOperatorshipData = ({
operator,
}: InterchainTokenServiceTransferOperatorshipArgs): `0x${string}` =>
encodeFunctionData({
functionName: "transferOperatorship",
abi: ABI_FILE.abi,
args: [operator],
});
export type InterchainTokenServiceTransferOwnershipArgs = {
newOwner: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.transferOwnership function args
*/
export const encodeInterchainTokenServiceTransferOwnershipArgs = ({
newOwner,
}: InterchainTokenServiceTransferOwnershipArgs) => [newOwner] as const;
/**
* Encoder function for InterchainTokenService.transferOwnership function data
*/
export const encodeInterchainTokenServiceTransferOwnershipData = ({
newOwner,
}: InterchainTokenServiceTransferOwnershipArgs): `0x${string}` =>
encodeFunctionData({
functionName: "transferOwnership",
abi: ABI_FILE.abi,
args: [newOwner],
});
export type InterchainTokenServiceTransmitInterchainTransferArgs = {
tokenId: `0x${string}`;
sourceAddress: `0x${string}`;
destinationChain: string;
destinationAddress: `0x${string}`;
amount: bigint;
metadata: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.transmitInterchainTransfer function args
*/
export const encodeInterchainTokenServiceTransmitInterchainTransferArgs = ({
tokenId,
sourceAddress,
destinationChain,
destinationAddress,
amount,
metadata,
}: InterchainTokenServiceTransmitInterchainTransferArgs) =>
[
tokenId,
sourceAddress,
destinationChain,
destinationAddress,
amount,
metadata,
] as const;
/**
* Encoder function for InterchainTokenService.transmitInterchainTransfer function data
*/
export const encodeInterchainTokenServiceTransmitInterchainTransferData = ({
tokenId,
sourceAddress,
destinationChain,
destinationAddress,
amount,
metadata,
}: InterchainTokenServiceTransmitInterchainTransferArgs): `0x${string}` =>
encodeFunctionData({
functionName: "transmitInterchainTransfer",
abi: ABI_FILE.abi,
args: [
tokenId,
sourceAddress,
destinationChain,
destinationAddress,
amount,
metadata,
],
});
export type InterchainTokenServiceTrustedAddressArgs = { chain: string };
/**
* Factory function for InterchainTokenService.trustedAddress function args
*/
export const encodeInterchainTokenServiceTrustedAddressArgs = ({
chain,
}: InterchainTokenServiceTrustedAddressArgs) => [chain] as const;
/**
* Encoder function for InterchainTokenService.trustedAddress function data
*/
export const encodeInterchainTokenServiceTrustedAddressData = ({
chain,
}: InterchainTokenServiceTrustedAddressArgs): `0x${string}` =>
encodeFunctionData({
functionName: "trustedAddress",
abi: ABI_FILE.abi,
args: [chain],
});
export type InterchainTokenServiceTrustedAddressHashArgs = { chain: string };
/**
* Factory function for InterchainTokenService.trustedAddressHash function args
*/
export const encodeInterchainTokenServiceTrustedAddressHashArgs = ({
chain,
}: InterchainTokenServiceTrustedAddressHashArgs) => [chain] as const;
/**
* Encoder function for InterchainTokenService.trustedAddressHash function data
*/
export const encodeInterchainTokenServiceTrustedAddressHashData = ({
chain,
}: InterchainTokenServiceTrustedAddressHashArgs): `0x${string}` =>
encodeFunctionData({
functionName: "trustedAddressHash",
abi: ABI_FILE.abi,
args: [chain],
});
export type InterchainTokenServiceUpgradeArgs = {
newImplementation: `0x${string}`;
newImplementationCodeHash: `0x${string}`;
params: `0x${string}`;
};
/**
* Factory function for InterchainTokenService.upgrade function args
*/
export const encodeInterchainTokenServiceUpgradeArgs = ({
newImplementation,
newImplementationCodeHash,
params,
}: InterchainTokenServiceUpgradeArgs) =>
[newImplementation, newImplementationCodeHash, params] as const;
/**
* Encoder function for InterchainTokenService.upgrade function data
*/
export const encodeInterchainTokenServiceUpgradeData = ({
newImplementation,
newImplementationCodeHash,
params,
}: InterchainTokenServiceUpgradeArgs): `0x${string}` =>
encodeFunctionData({
functionName: "upgrade",
abi: ABI_FILE.abi,
args: [newImplementation, newImplementationCodeHash, params],
});
export const INTERCHAIN_TOKEN_SERVICE_ENCODERS = {
acceptOperatorship: {
args: encodeInterchainTokenServiceAcceptOperatorshipArgs,
data: encodeInterchainTokenServiceAcceptOperatorshipData,
},
callContractWithInterchainToken: {
args: encodeInterchainTokenServiceCallContractWithInterchainTokenArgs,
data: encodeInterchainTokenServiceCallContractWithInterchainTokenData,
},
contractCallValue: {
args: encodeInterchainTokenServiceContractCallValueArgs,
data: encodeInterchainTokenServiceContractCallValueData,
},
deployInterchainToken: {
args: encodeInterchainTokenServiceDeployInterchainTokenArgs,
data: encodeInterchainTokenServiceDeployInterchainTokenData,
},
deployedTokenManager: {
args: encodeInterchainTokenServiceDeployedTokenManagerArgs,
data: encodeInterchainTokenServiceDeployedTokenManagerData,
},
execute: {
args: encodeInterchainTokenServiceExecuteArgs,
data: encodeInterchainTokenServiceExecuteData,
},
expressExecute: {
args: encodeInterchainTokenServiceExpressExecuteArgs,
data: encodeInterchainTokenServiceExpressExecuteData,
},
getExpressExecutor: {
args: encodeInterchainTokenServiceGetExpressExecutorArgs,
data: encodeInterchainTokenServiceGetExpressExecutorData,
},
hasRole: {
args: encodeInterchainTokenServiceHasRoleArgs,
data: encodeInterchainTokenServiceHasRoleData,
},
interchainTokenAddress: {
args: encodeInterchainTokenServiceInterchainTokenAddressArgs,
data: encodeInterchainTokenServiceInterchainTokenAddressData,
},
interchainTokenId: {
args: encodeInterchainTokenServiceInterchainTokenIdArgs,
data: encodeInterchainTokenServiceInterchainTokenIdData,
},
interchainTransfer: {
args: encodeInterchainTokenServiceInterchainTransferArgs,
data: encodeInterchainTokenServiceInterchainTransferData,
},
interchainTransfer: {
args: encodeInterchainTokenServiceInterchainTransferArgs,
data: encodeInterchainTokenServiceInterchainTransferData,
},
isOperator: {
args: encodeInterchainTokenServiceIsOperatorArgs,
data: encodeInterchainTokenServiceIsOperatorData,
},
isTrustedAddress: {
args: encodeInterchainTokenServiceIsTrustedAddressArgs,
data: encodeInterchainTokenServiceIsTrustedAddressData,
},
isTrustedChain: {
args: encodeInterchainTokenServiceIsTrustedChainArgs,
data: encodeInterchainTokenServiceIsTrustedChainData,
},
linkToken: {
args: encodeInterchainTokenServiceLinkTokenArgs,
data: encodeInterchainTokenServiceLinkTokenData,
},
migrateInterchainToken: {
args: encodeInterchainTokenServiceMigrateInterchainTokenArgs,
data: encodeInterchainTokenServiceMigrateInterchainTokenData,
},
multicall: {
args: encodeInterchainTokenServiceMulticallArgs,
data: encodeInterchainTokenServiceMulticallData,
},
proposeOperatorship: {
args: encodeInterchainTokenServiceProposeOperatorshipArgs,
data: encodeInterchainTokenServiceProposeOperatorshipData,
},
proposeOwnership: {
args: encodeInterchainTokenServiceProposeOwnershipArgs,
data: encodeInterchainTokenServiceProposeOwnershipData,
},
registerCustomToken: {
args: encodeInterchainTokenServiceRegisterCustomTokenArgs,
data: encodeInterchainTokenServiceRegisterCustomTokenData,
},
registerTokenMetadata: {
args: encodeInterchainTokenServiceRegisterTokenMetadataArgs,
data: encodeInterchainTokenServiceRegisterTokenMetadataData,
},
registeredTokenAddress: {
args: encodeInterchainTokenServiceRegisteredTokenAddressArgs,
data: encodeInterchainTokenServiceRegisteredTokenAddressData,
},
removeTrustedChain: {
args: encodeInterchainTokenServiceRemoveTrustedChainArgs,
data: encodeInterchainTokenServiceRemoveTrustedChainData,
},
setFlowLimits: {
args: encodeInterchainTokenServiceSetFlowLimitsArgs,
data: encodeInterchainTokenServiceSetFlowLimitsData,
},
setPauseStatus: {
args: encodeInterchainTokenServiceSetPauseStatusArgs,
data: encodeInterchainTokenServiceSetPauseStatusData,
},
setTrustedChain: {
args: encodeInterchainTokenServiceSetTrustedChainArgs,
data: encodeInterchainTokenServiceSetTrustedChainData,
},
setup: {
args: encodeInterchainTokenServiceSetupArgs,
data: encodeInterchainTokenServiceSetupData,
},
tokenManagerAddress: {
args: encodeInterchainTokenServiceTokenManagerAddressArgs,
data: encodeInterchainTokenServiceTokenManagerAddressData,
},
transferOperatorship: {
args: encodeInterchainTokenServiceTransferOperatorshipArgs,
data: encodeInterchainTokenServiceTransferOperatorshipData,
},
transferOwnership: {
args: encodeInterchainTokenServiceTransferOwnershipArgs,
data: encodeInterchainTokenServiceTransferOwnershipData,
},
transmitInterchainTransfer: {
args: encodeInterchainTokenServiceTransmitInterchainTransferArgs,
data: encodeInterchainTokenServiceTransmitInterchainTransferData,
},
trustedAddress: {
args: encodeInterchainTokenServiceTrustedAddressArgs,
data: encodeInterchainTokenServiceTrustedAddressData,
},
trustedAddressHash: {
args: encodeInterchainTokenServiceTrustedAddressHashArgs,
data: encodeInterchainTokenServiceTrustedAddressHashData,
},
upgrade: {
args: encodeInterchainTokenServiceUpgradeArgs,
data: encodeInterchainTokenServiceUpgradeData,
},
};
export function createInterchainTokenServiceReadClient(
publicClient: PublicContractClient<typeof ABI_FILE.abi>
) {
return {
contractCallValue(
contractCallValueArgs: InterchainTokenServiceContractCallValueArgs
) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["contractCallValue"];
const encodedArgs = encoder.args(contractCallValueArgs);
return publicClient.read("contractCallValue", { args: encodedArgs });
},
deployedTokenManager(
deployedTokenManagerArgs: InterchainTokenServiceDeployedTokenManagerArgs
) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["deployedTokenManager"];
const encodedArgs = encoder.args(deployedTokenManagerArgs);
return publicClient.read("deployedTokenManager", { args: encodedArgs });
},
getExpressExecutor(
getExpressExecutorArgs: InterchainTokenServiceGetExpressExecutorArgs
) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["getExpressExecutor"];
const encodedArgs = encoder.args(getExpressExecutorArgs);
return publicClient.read("getExpressExecutor", { args: encodedArgs });
},
hasRole(hasRoleArgs: InterchainTokenServiceHasRoleArgs) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["hasRole"];
const encodedArgs = encoder.args(hasRoleArgs);
return publicClient.read("hasRole", { args: encodedArgs });
},
interchainTokenAddress(
interchainTokenAddressArgs: InterchainTokenServiceInterchainTokenAddressArgs
) {
const encoder =
INTERCHAIN_TOKEN_SERVICE_ENCODERS["interchainTokenAddress"];
const encodedArgs = encoder.args(interchainTokenAddressArgs);
return publicClient.read("interchainTokenAddress", { args: encodedArgs });
},
interchainTokenId(
interchainTokenIdArgs: InterchainTokenServiceInterchainTokenIdArgs
) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["interchainTokenId"];
const encodedArgs = encoder.args(interchainTokenIdArgs);
return publicClient.read("interchainTokenId", { args: encodedArgs });
},
isOperator(isOperatorArgs: InterchainTokenServiceIsOperatorArgs) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["isOperator"];
const encodedArgs = encoder.args(isOperatorArgs);
return publicClient.read("isOperator", { args: encodedArgs });
},
isTrustedAddress(
isTrustedAddressArgs: InterchainTokenServiceIsTrustedAddressArgs
) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["isTrustedAddress"];
const encodedArgs = encoder.args(isTrustedAddressArgs);
return publicClient.read("isTrustedAddress", { args: encodedArgs });
},
isTrustedChain(
isTrustedChainArgs: InterchainTokenServiceIsTrustedChainArgs
) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["isTrustedChain"];
const encodedArgs = encoder.args(isTrustedChainArgs);
return publicClient.read("isTrustedChain", { args: encodedArgs });
},
registeredTokenAddress(
registeredTokenAddressArgs: InterchainTokenServiceRegisteredTokenAddressArgs
) {
const encoder =
INTERCHAIN_TOKEN_SERVICE_ENCODERS["registeredTokenAddress"];
const encodedArgs = encoder.args(registeredTokenAddressArgs);
return publicClient.read("registeredTokenAddress", { args: encodedArgs });
},
tokenManagerAddress(
tokenManagerAddressArgs: InterchainTokenServiceTokenManagerAddressArgs
) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["tokenManagerAddress"];
const encodedArgs = encoder.args(tokenManagerAddressArgs);
return publicClient.read("tokenManagerAddress", { args: encodedArgs });
},
trustedAddress(
trustedAddressArgs: InterchainTokenServiceTrustedAddressArgs
) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["trustedAddress"];
const encodedArgs = encoder.args(trustedAddressArgs);
return publicClient.read("trustedAddress", { args: encodedArgs });
},
trustedAddressHash(
trustedAddressHashArgs: InterchainTokenServiceTrustedAddressHashArgs
) {
const encoder = INTERCHAIN_TOKEN_SERVICE_ENCODERS["trustedAddressHash"];
const encodedArgs = encoder.args(trustedAddressHashArgs);
return publicClient.read("trustedAddressHash", { args: encodedArgs });
},
};
}