@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
64 lines • 4.35 kB
TypeScript
import { CChainRpcSchema } from "src/methods/cChain/cChainRpcSchema.js";
import { PChainRpcSchema } from "src/methods/pChain/pChainRpcSchema.js";
import { XChainRpcSchema } from "src/methods/xChain/xChainRpcSchema.js";
import { Account, Chain, Client, CreatePublicClientErrorType, Prettify, PublicActions, PublicRpcSchema, RpcSchema, Transport, WalletActions, WalletRpcSchema } from "viem";
import { XPAccount } from "../accounts/avalancheAccount.js";
import { AvalanchePublicRpcSchema } from "../methods/public/avalanchePublicRpcSchema.js";
import { AvalancheWalletRpcSchema } from "../methods/wallet/avalancheWalletRPCSchema.js";
import { AvalancheCoreClient } from "./createAvalancheCoreClient.js";
import { AvalancheWalletCoreClient, AvalancheWalletCoreClientConfig } from "./createAvalancheWalletCoreClient.js";
import { AvalanchePublicActions } from "./decorators/avalanchePublic.js";
import { AvalancheWalletActions } from "./decorators/avalancheWallet.js";
import { CChainActions } from "./decorators/cChain.js";
import { CChainWalletActions } from "./decorators/cChainWallet.js";
import { PChainActions } from "./decorators/pChain.js";
import { PChainWalletActions } from "./decorators/pChainWallet.js";
import { XChainActions } from "./decorators/xChain.js";
import { XChainWalletActions } from "./decorators/xChainWallet.js";
export type AvalancheWalletClientConfig<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = undefined, rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = Prettify<AvalancheWalletCoreClientConfig<transport, chain, account, rpcSchema, raw>>;
export type AvalancheWalletClient<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = undefined, rpcSchema extends RpcSchema | undefined = undefined> = Prettify<Client<transport, chain, account, rpcSchema extends RpcSchema ? [
...WalletRpcSchema,
...AvalancheWalletRpcSchema,
...PublicRpcSchema,
...AvalanchePublicRpcSchema,
...rpcSchema
] : [
...WalletRpcSchema,
...AvalancheWalletRpcSchema,
...PublicRpcSchema,
...AvalanchePublicRpcSchema
], WalletActions<chain, account> & AvalancheWalletActions & AvalanchePublicActions & PublicActions> & {
xpAccount?: XPAccount;
pChainClient: AvalancheCoreClient;
cChainClient: AvalancheCoreClient;
xChainClient: AvalancheCoreClient;
} & {
cChain: AvalancheWalletCoreClient<transport, chain, account, rpcSchema extends RpcSchema ? [...CChainRpcSchema, ...rpcSchema] : [...CChainRpcSchema], CChainWalletActions & CChainActions>;
pChain: AvalancheWalletCoreClient<transport, chain, account, rpcSchema extends RpcSchema ? [...PChainRpcSchema, ...rpcSchema] : [...PChainRpcSchema], PChainWalletActions & PChainActions>;
xChain: AvalancheWalletCoreClient<transport, chain, account, rpcSchema extends RpcSchema ? [...XChainRpcSchema, ...rpcSchema] : [...XChainRpcSchema], XChainWalletActions & XChainActions>;
}>;
export type CreateAvalancheWalletClientErrorType = CreatePublicClientErrorType;
/**
* Creates an Avalanche Wallet Client with a given transport configured for a Chain.
*
* The Avalanche Wallet Client is an interface to interact with the Core Wallet API through Avalanche-specific JSON-RPC API methods.
* @see https://docs.core.app/docs/reference/json-rpc-api
*
* @param parameters - {@link AvalancheWalletClientConfig}
* @returns A Avalanche Wallet Client. {@link AvalancheWalletClient}
*
* @example
* ```ts
* import { createAvalancheWalletClient } from '@avalanche-sdk/client'
* import { avalanche } from '@avalanche-sdk/client/chains'
*
* const client = createAvalancheWalletClient({
* chain: avalanche,
* transport: { type: "http" },
* })
*
* const pubKey = await client.getAccountPubKey()
* ```
*/
export declare function createAvalancheWalletClient<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = undefined, rpcSchema extends RpcSchema | undefined = undefined>(parameters: AvalancheWalletClientConfig<transport, chain, account, rpcSchema>): AvalancheWalletClient<transport, chain, account, rpcSchema>;
//# sourceMappingURL=createAvalancheWalletClient.d.ts.map