@avalanche-sdk/client
Version:
A TypeScript SDK for interacting with the Avalanche network through JSON-RPC APIs. This SDK provides a comprehensive set of tools to interact with all Avalanche chains (P-Chain, X-Chain, C-Chain) and various APIs, including wallet functionality for transa
345 lines • 12.3 kB
TypeScript
import { Chain, Transport } from "viem";
import { GetTxParameters } from "../../methods/pChain/index.js";
import { BuildGenesisParameters, BuildGenesisReturnType } from "../../methods/xChain/types/buildGenesis.js";
import { GetAllBalancesParameters, GetAllBalancesReturnType } from "../../methods/xChain/types/getAllBalances.js";
import { GetAssetDescriptionParameters, GetAssetDescriptionReturnType } from "../../methods/xChain/types/getAssetDescription.js";
import { GetBalanceParameters, GetBalanceReturnType } from "../../methods/xChain/types/getBalance.js";
import { GetBlockParameters, GetBlockReturnType } from "../../methods/xChain/types/getBlock.js";
import { GetBlockByHeightParameters, GetBlockByHeightReturnType } from "../../methods/xChain/types/getBlockByHeight.js";
import { GetHeightReturnType } from "../../methods/xChain/types/getHeight.js";
import { GetTxReturnType } from "../../methods/xChain/types/getTx.js";
import { GetTxFeeReturnType } from "../../methods/xChain/types/getTxFee.js";
import { GetTxStatusParameters, GetTxStatusReturnType } from "../../methods/xChain/types/getTxStatus.js";
import { GetUTXOsParameters, GetUTXOsReturnType } from "../../methods/xChain/types/getUTXOs.js";
import { IssueTxParameters, IssueTxReturnType } from "../../methods/xChain/types/issueTx.js";
import { AvalancheCoreClient } from "../createAvalancheCoreClient.js";
export type XChainActions = {
/**
* Given a JSON representation of this Virtual Machine's genesis state, create the byte representation of that state.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmbuildgenesis
*
* @param args - {@link BuildGenesisParameters} The network ID and genesis data
* @returns The genesis bytes. {@link BuildGenesisReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const genesis = await client.xChain.buildGenesis({
* networkID: 16,
* genesisData: {
* asset1: {
* name: "myFixedCapAsset",
* symbol: "MFCA",
* initialState: {
* fixedCap: [
* {
* amount: 100000,
* address: "avax13ery2kvdrkd2nkquvs892gl8hg7mq4a6ufnrn6"
* }
* ]
* }
* }
* }
* })
* ```
*/
buildGenesis: (args: BuildGenesisParameters) => Promise<BuildGenesisReturnType>;
/**
* Get the balances of all assets controlled by given addresses.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmgetallbalances
*
* @param args - {@link GetAllBalancesParameters} The addresses to get balances for
* @returns The balances of all assets. {@link GetAllBalancesReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const balances = await client.xChain.getAllBalances({
* addresses: ["X-avax18jma8ppw3nhx5r4ap8clazz0dps7rv5ukulre5"]
* })
* ```
*/
getAllBalances: (args: GetAllBalancesParameters) => Promise<GetAllBalancesReturnType>;
/**
* Get information about an asset.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmgetassetdescription
*
* @param args - {@link GetAssetDescriptionParameters} The asset ID
* @returns The asset description. {@link GetAssetDescriptionReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const asset = await client.xChain.getAssetDescription({
* assetID: "FvwEAhmxKfeiG8SnEvq42hc6whRyY3EFYAvebMqDNDGCgxN5Z"
* })
* ```
*/
getAssetDescription: (args: GetAssetDescriptionParameters) => Promise<GetAssetDescriptionReturnType>;
/**
* Get the balance of an asset controlled by given addresses.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmgetbalance
*
* @param args - {@link GetBalanceParameters} The addresses and asset ID
* @returns The balance of the asset. {@link GetBalanceReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const balance = await client.xChain.getBalance({
* addresses: ["X-avax18jma8ppw3nhx5r4ap8clazz0dps7rv5ukulre5"],
* assetID: "FvwEAhmxKfeiG8SnEvq42hc6whRyY3EFYAvebMqDNDGCgxN5Z"
* })
* ```
*/
getBalance: (args: GetBalanceParameters) => Promise<GetBalanceReturnType>;
/**
* Get a block by its ID.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmgetblock
*
* @param args - {@link GetBlockParameters} The block ID and encoding format
* @returns The block data. {@link GetBlockReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const block = await client.xChain.getBlock({
* blockID: "d7WYmb8VeZNHsny3EJCwMm6QA37s1EHwMxw1Y71V3FqPZ5EFG",
* encoding: "hex"
* })
* ```
*/
getBlock: (args: GetBlockParameters) => Promise<GetBlockReturnType>;
/**
* Get a block by its height.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmgetblockbyheight
*
* @param args - {@link GetBlockByHeightParameters} The block height and encoding format
* @returns The block data. {@link GetBlockByHeightReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const block = await client.xChain.getBlockByHeight({
* height: 1000001,
* encoding: "hex"
* })
* ```
*/
getBlockByHeight: (args: GetBlockByHeightParameters) => Promise<GetBlockByHeightReturnType>;
/**
* Get the height of the last accepted block.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmgetheight
*
* @returns The current height. {@link GetHeightReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const height = await client.xChain.getHeight()
* ```
*/
getHeight: () => Promise<GetHeightReturnType>;
/**
* Get a transaction by its ID.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmgettx
*
* @param args - {@link GetTxParameters} The transaction ID and encoding
* @returns The transaction data. {@link GetTxReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const tx = await client.xChain.getTx({
* txID: "11111111111111111111111111111111LpoYY",
* encoding: "hex"
* })
* ```
*/
getTx: (args: GetTxParameters) => Promise<GetTxReturnType>;
/**
* Get the transaction fee for this node.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmgettxfee
*
* @returns The transaction fee. {@link GetTxFeeReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const txFee = await client.xChain.getTxFee()
* ```
*/
getTxFee: () => Promise<GetTxFeeReturnType>;
/**
* Get the status of a transaction.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmgettxstatus
*
* @param args - {@link GetTxStatusParameters} The transaction ID
* @returns The transaction status. {@link GetTxStatusReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const status = await client.xChain.getTxStatus({
* txID: "11111111111111111111111111111111LpoYY"
* })
* ```
*/
getTxStatus: (args: GetTxStatusParameters) => Promise<GetTxStatusReturnType>;
/**
* Get the UTXOs for a set of addresses.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmgetutxos
*
* @param args - {@link GetUTXOsParameters} The addresses and source chain
* @returns The UTXOs. {@link GetUTXOsReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const utxos = await client.xChain.getUTXOs({
* addresses: ["X-avax18jma8ppw3nhx5r4ap8clazz0dps7rv5ukulre5"],
* sourceChain: "P"
* })
* ```
*/
getUTXOs: (args: GetUTXOsParameters) => Promise<GetUTXOsReturnType>;
/**
* Send a signed transaction to the network.
*
* - Docs: https://build.avax.network/docs/api-reference/x-chain/api#avmissuetx
*
* @param args - {@link IssueTxParameters} The transaction bytes and encoding
* @returns The transaction ID. {@link IssueTxReturnType}
*
* @example
* ```ts
* import { createAvalancheClient} from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheClient({
* chain: avalanche,
* transport: {
* type: "http",
* },
* })
*
* const txID = await client.xChain.issueTx({
* tx: "0x00000009de31b4d8b22991d51aa6aa1fc733f23a851a8c9400000000000186a0000000005f041280000000005f9ca900000030390000000000000001fceda8f90fcb5d30614b99d79fc4baa29307762668f16eb0259a57c2d3b78c875c86ec2045792d4df2d926c40f829196e0bb97ee697af71f5b0a966dabff749634c8b729855e937715b0e44303fd1014daedc752006011b730",
* encoding: "hex"
* })
* ```
*/
issueTx: (args: IssueTxParameters) => Promise<IssueTxReturnType>;
};
export declare function xChainActions<chain extends Chain | undefined = Chain | undefined>(client: AvalancheCoreClient<Transport, chain>): XChainActions;
//# sourceMappingURL=xChain.d.ts.map