@coinbase/agentkit
Version:
Coinbase AgentKit core primitives
50 lines (49 loc) • 2.03 kB
TypeScript
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 {};