UNPKG

cdp-wallet-onramp-kit

Version:

Complete toolkit for Coinbase Developer Platform (CDP) Embedded Wallets and Onramp integration with reusable components, utilities, and documentation

133 lines (132 loc) 3.38 kB
/** * Configuration for JWT generation */ export interface JWTConfig { method?: string; host?: string; path?: string; expiresIn?: number; } /** * Address configuration for session tokens */ export interface AddressConfig { address: string; blockchains: string[]; } /** * Session token request parameters */ export interface SessionTokenParams { addresses: AddressConfig[]; assets?: string[]; } /** * Onramp URL generation parameters */ export interface OnrampUrlParams { addresses: AddressConfig[]; assets?: string[]; defaultAsset?: string; defaultNetwork?: string; presetFiatAmount?: number; presetCryptoAmount?: number; redirectUrl?: string; partnerUserId?: string; } /** * Generate a JSON Web Token (JWT) for CDP API authentication. * Uses the CDP SDK to handle all key formats automatically. * * @param config - JWT configuration options * @returns Promise<string> - The generated JWT token * * @example * ```typescript * const jwt = await generateJWT({ * method: 'POST', * path: '/onramp/v1/token' * }); * ``` */ export declare function generateJWT(config?: JWTConfig): Promise<string>; /** * Create a session token for initializing the onramp widget. * Session tokens are single-use and expire after 5 minutes. * * @param jwt - The JWT token for authentication * @param params - Session token parameters * @returns Promise<string> - The session token * * @example * ```typescript * const jwt = await generateJWT(); * const sessionToken = await createSessionToken(jwt, { * addresses: [{ * address: '0x1234...5678', * blockchains: ['base', 'ethereum'] * }], * assets: ['USDC', 'ETH'] * }); * ``` */ export declare function createSessionToken(jwt: string, params: SessionTokenParams): Promise<string>; /** * Generate a complete onramp URL with session token and parameters. * This is a convenience function that combines JWT generation, session token creation, and URL building. * * @param params - Onramp URL parameters * @returns Promise<string> - The complete onramp URL * * @example * ```typescript * const onrampUrl = await generateOnrampUrl({ * addresses: [{ * address: '0x1234...5678', * blockchains: ['base'] * }], * defaultAsset: 'USDC', * presetFiatAmount: 50 * }); * ``` */ export declare function generateOnrampUrl(params: OnrampUrlParams): Promise<string>; /** * Guest checkout limits as defined by Coinbase */ export declare const GUEST_CHECKOUT_LIMITS: { readonly minimumAmount: 5; readonly weeklyLimit: 500; readonly country: "US"; }; /** * Supported blockchain networks */ export declare const SUPPORTED_NETWORKS: { readonly BASE: "base"; readonly ETHEREUM: "ethereum"; readonly ARBITRUM: "arbitrum"; readonly OPTIMISM: "optimism"; readonly POLYGON: "polygon"; }; /** * Common asset symbols */ export declare const SUPPORTED_ASSETS: { readonly ETHEREUM: "ETH"; readonly USD_COIN: "USDC"; readonly BITCOIN: "BTC"; readonly TETHER: "USDT"; readonly DAI: "DAI"; }; /** * Validate wallet address format */ export declare function isValidEthereumAddress(address: string): boolean; /** * Validate amount within guest checkout limits */ export declare function validateGuestCheckoutAmount(amount: number): { isValid: boolean; error?: string; };