@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
69 lines (64 loc) • 2.75 kB
text/typescript
import { Chain, Transport } from "viem";
import { prepareBaseTxn } from "../../methods/wallet/xChain/prepareBaseTxn.js";
import { prepareExportTxn } from "../../methods/wallet/xChain/prepareExportTxn.js";
import { prepareImportTxn } from "../../methods/wallet/xChain/prepareImportTxn.js";
import {
PrepareBaseTxnParameters,
PrepareBaseTxnReturnType,
} from "../../methods/wallet/xChain/types/prepareBaseTxn";
import {
PrepareExportTxnParameters,
PrepareExportTxnReturnType,
} from "../../methods/wallet/xChain/types/prepareExportTxn";
import {
PrepareImportTxnParameters,
PrepareImportTxnReturnType,
} from "../../methods/wallet/xChain/types/prepareImportTxn";
import { AvalancheWalletCoreClient } from "../createAvalancheWalletCoreClient.js";
export type XChainWalletActions = {
/**
* Prepares a base transaction for the X-chain.
*
* @see https://build.avax.network/docs/api-reference/x-chain/txn-format#unsigned-basetx
*
* @param client - The client to use for the transaction. {@link AvalancheWalletCoreClient}
* @param params - The parameters for the transaction. {@link PrepareBaseTxnParameters}
* @returns The unsigned transaction. {@link PrepareBaseTxnReturnType}
*/
prepareBaseTxn: (
args: PrepareBaseTxnParameters
) => Promise<PrepareBaseTxnReturnType>;
/**
* Prepares an export transaction for the X-chain.
*
* @see https://build.avax.network/docs/api-reference/x-chain/txn-format#unsigned-exporttx
*
* @param client - The client to use for the transaction. {@link AvalancheWalletCoreClient}
* @param params - The parameters for the transaction. {@link PrepareExportTxnParameters}
* @returns The unsigned transaction. {@link PrepareExportTxnReturnType}
*/
prepareExportTxn: (
args: PrepareExportTxnParameters
) => Promise<PrepareExportTxnReturnType>;
/**
* Prepares an import transaction for the X-chain.
*
* @see https://build.avax.network/docs/api-reference/x-chain/txn-format#unsigned-importtx
*
* @param client - The client to use for the transaction. {@link AvalancheWalletCoreClient}
* @param params - The parameters for the transaction. {@link PrepareImportTxnParameters}
* @returns The unsigned transaction. {@link PrepareImportTxnReturnType}
*/
prepareImportTxn: (
args: PrepareImportTxnParameters
) => Promise<PrepareImportTxnReturnType>;
};
export function xChainWalletActions<
chain extends Chain | undefined = Chain | undefined
>(client: AvalancheWalletCoreClient<Transport, chain>): XChainWalletActions {
return {
prepareBaseTxn: (args) => prepareBaseTxn(client, args),
prepareExportTxn: (args) => prepareExportTxn(client, args),
prepareImportTxn: (args) => prepareImportTxn(client, args),
};
}