@zetachain/toolkit / ZetaChainClient
Class: ZetaChainClient
Constructors
new ZetaChainClient()
new ZetaChainClient(
params):ZetaChainClient
Initializes ZetaChainClient instance.
new ZetaChainClient({
network: "testnet"
})With an Ethers.js wallet:
const client = new ZetaChainClient({
network: "testnet",
wallet: ethers.Wallet.fromMnemonic(process.env.MNEMONIC as string),
});With a signer:
const client = new ZetaChainClient({
network: "testnet",
signer: await ethers.getSigners(),
});Use a custom RPC endpoint for ZetaChain or any connected chain:
const client = new ZetaChainClient({
network: "testnet",
chains: {
zeta_testnet: {
api: {
url: "https://zetachain-testnet-archive.allthatnode.com:8545/${process.env.KEY}",
type: "evm",
},
},
},
});Parameters
• params: ZetaChainClientParams
Returns
Defined in
client.ts:87 (opens in a new tab)
Properties
chains
chains:
object
Index Signature
[key: string]: any
Defined in
client.ts:37 (opens in a new tab)
deposit()
deposit: (
this,options) =>Promise<any>
Initiates a deposit transaction of native gas or ERC-20 assets as ZRC-20 from a connected chain to ZetaChain.
Parameters
• this: ZetaChainClient
ZetaChainClient instance.
• options
Deposit options.
• options.amount: string
Amount to be deposited in human readable form. For example, 1.5 ETH is "1.5".
• options.chain: string
Label of the connected chain from which the deposit is made.
• options.erc20?: string
If an ERC-20 token is being deposited, the address of the ERC-20 token contract. If not provided, the deposit is assumed to be in native gas token.
• options.message?: [string[], string[]]
If a message is specified, ZetaChain will deposit
tokens into the recipient contract and call with with the message as an argument.
• options.recipient: string
Recipient address for the deposit. If not provided, the deposit is made to the signer's address.
Returns
Promise<any>
A promise that resolves with the transaction details upon success.
Defined in
client.ts:120 (opens in a new tab)
getBalances()
getBalances: (
this,__namedParameters) =>Promise<TokenBalance[]>
Get token balances of all tokens on all chains connected to ZetaChain.
Parameters
• this: ZetaChainClient
ZetaChainClient instance.
• __namedParameters
• __namedParameters.btcAddress?: string
• __namedParameters.evmAddress: string
Returns
Promise<TokenBalance[]>
Defined in
client.ts:114 (opens in a new tab)
getChainId()
getChainId: (
this,chainNameOrAlias) =>null|number
Get chain ID from a chain label.
Parameters
• this: ZetaChainClient
ZetaChainClient instance.
• chainNameOrAlias: string
Chain label like goerli_testnet
Returns
null | number
Defined in
client.ts:123 (opens in a new tab)
getEndpoint()
getEndpoint: (
this,type,network) =>any
Parameters
• this: ZetaChainClient
• type: any
• network: any
Returns
any
Defined in
client.ts:113 (opens in a new tab)
getFees()
getFees: (
this,gas) =>Promise<Fees>
Parameters
• this: ZetaChainClient
• gas: Number
Returns
Promise<Fees>
Defined in
client.ts:117 (opens in a new tab)
getForeignCoins()
getForeignCoins: (
this) =>Promise<any>
Parameters
• this: ZetaChainClient
Returns
Promise<any>
Defined in
client.ts:115 (opens in a new tab)
getPools()
getPools: (
this) =>Promise<any[]>
Parameters
• this: ZetaChainClient
Returns
Promise<any[]>
Defined in
client.ts:118 (opens in a new tab)
getQuote()
getQuote: (
this,inputAmount,inputToken,outputToken) =>Promise<object>
Retrieves a quote for swapping input ZRC20 token to output ZRC20 token.
Parameters
• this: ZetaChainClient
• inputAmount: string
The amount of input ZRC20 token.
• inputToken: string
• outputToken: string
Returns
Promise<object>
- An object containing the output amount and its decimals.
amount
amount:
any
decimals
decimals:
any=outputDecimals
Defined in
client.ts:124 (opens in a new tab)
getRefundFee()
getRefundFee: (
this,inputZRC20) =>Promise<object>
Calculates the refund fee in the input ZRC20 token.
Parameters
• this: ZetaChainClient
• inputZRC20: string
The input ZRC20 token address.
Returns
Promise<object>
- An object containing the refund fee amount and its decimals.
amount
amount:
any=withdrawFee
decimals
decimals:
any=inputDecimals
Defined in
client.ts:126 (opens in a new tab)
getSupportedChains()
getSupportedChains: (
this) =>Promise<any>
Parameters
• this: ZetaChainClient
Returns
Promise<any>
Defined in
client.ts:116 (opens in a new tab)
getWithdrawFeeInInputToken()
getWithdrawFeeInInputToken: (
this,inputZRC20,outputZRC20) =>Promise<object>
Calculates the withdraw fee in the input ZRC20 token for a given output ZRC20 token.
Parameters
• this: ZetaChainClient
• inputZRC20: string
The input ZRC20 token address.
• outputZRC20: string
The output ZRC20 token address.
Returns
Promise<object>
- An object containing the withdraw fee amount and its decimals.
amount
amount:
any
decimals
decimals:
any=inputDecimals
Defined in
client.ts:125 (opens in a new tab)
getZRC20FromERC20()
getZRC20FromERC20: (
this,erc20) =>Promise<any>
Retrieves the ZRC20 contract address for a given ERC20 token.
Parameters
• this: ZetaChainClient
• erc20: string
The ERC20 token address.
Returns
Promise<any>
- The ZRC20 contract address.
Throws
Will throw an error if the ERC-20 token is not supported.
Defined in
client.ts:127 (opens in a new tab)
getZRC20GasToken()
getZRC20GasToken: (
this,network) =>Promise<any>
Retrieves the ZRC20 contract address for the gas token of a given network.
Parameters
• this: ZetaChainClient
• network: string
The network name.
Returns
Promise<any>
- The ZRC20 contract address for the gas token.
Defined in
client.ts:128 (opens in a new tab)
network
network:
string
Defined in
client.ts:38 (opens in a new tab)
sendZeta()
sendZeta: (
this,options) =>Promise<any>
Initiates a cross-chain transfer of ZETA tokens from the source chain to the destination chain.
Parameters
• this: ZetaChainClient
ZetaChainClient instance.
• options
Send ZETA options.
• options.amount: string
Amount of ZETA tokens to be sent in human readable form.
• options.chain: string
Source chain label.
• options.destination: string
Destination chain label.
• options.gasLimit?: Number = 500000
Optional gas limit on the destination chain.
• options.recipient: string
Optional recipient address for the token transfer. If not provided, the token transfer is made to the signer's address.
Returns
Promise<any>
A promise that resolves with the transaction details upon success.
Defined in
client.ts:122 (opens in a new tab)
signer
signer:
any
Defined in
client.ts:40 (opens in a new tab)
trackCCTX()
trackCCTX: (
this,__namedParameters) =>Promise<void>
Parameters
• this: ZetaChainClient
• __namedParameters
• __namedParameters.emitter: any = null
• __namedParameters.hash: string
• __namedParameters.json: Boolean = false
Returns
Promise<void>
Defined in
client.ts:119 (opens in a new tab)
wallet
wallet:
undefined|Wallet
Defined in
client.ts:39 (opens in a new tab)
withdraw()
withdraw: (
this,options) =>Promise<any>
Initiates a withdraw transaction of a ZRC-20 token from ZetaChain to a connected chain as a native gas or ERC-20 token.
Parameters
• this: ZetaChainClient
ZetaChainClient instance.
• options
Withdrawal options.
• options.amount: string
Amount to be withdrawn in human readable form.
• options.recipient: string
Recipient address for the withdrawal. If not provided, the withdrawal is made to the signer's address.
• options.zrc20: string
ZRC-20 token contract address.
Returns
Promise<any>
A promise that resolves with the transaction details upon success.
Defined in
client.ts:121 (opens in a new tab)
Methods
getChains()
getChains():
object
Returns
object