UNPKG

@coinbase/agentkit

Version:

Coinbase AgentKit core primitives

50 lines (49 loc) 2.03 kB
import { PrivyEvmWalletProvider, PrivyEvmWalletConfig } from "./privyEvmWalletProvider"; import { PrivySvmWalletProvider, PrivySvmWalletConfig } from "./privySvmWalletProvider"; import { PrivyEvmDelegatedEmbeddedWalletProvider, PrivyEvmDelegatedEmbeddedWalletConfig } from "./privyEvmDelegatedEmbeddedWalletProvider"; type PrivyWalletConfig = (PrivyEvmWalletConfig | PrivySvmWalletConfig | PrivyEvmDelegatedEmbeddedWalletConfig) & { chainType?: "ethereum" | "solana"; walletType?: "server" | "embedded"; }; export type PrivyWalletProviderVariant<T> = T extends { walletType: "embedded"; } ? PrivyEvmDelegatedEmbeddedWalletProvider : T extends { chainType: "solana"; } ? PrivySvmWalletProvider : PrivyEvmWalletProvider; /** * Factory class for creating chain-specific Privy wallet providers */ export declare class PrivyWalletProvider { /** * Creates and configures a new wallet provider instance based on the chain type and wallet type. * * @param config - The configuration options for the Privy wallet * @returns A configured WalletProvider instance for the specified chain and wallet type * * @example * ```typescript * // For EVM server wallets (default) * const evmWallet = await PrivyWalletProvider.configureWithWallet({ * appId: "your-app-id", * appSecret: "your-app-secret" * }); * * // For Solana server wallets * const solanaWallet = await PrivyWalletProvider.configureWithWallet({ * appId: "your-app-id", * appSecret: "your-app-secret", * chainType: "solana" * }); * * // For Ethereum embedded wallets * const embeddedWallet = await PrivyWalletProvider.configureWithWallet({ * appId: "your-app-id", * appSecret: "your-app-secret", * walletId: "delegated-wallet-id", * walletType: "embedded" * }); * ``` */ static configureWithWallet<T extends PrivyWalletConfig>(config: T): Promise<PrivyWalletProviderVariant<T>>; } export {};