UNPKG

p-sdk-wallet

Version:

A comprehensive wallet SDK for React Native (pwc), supporting multi-chain and multi-account features.

234 lines (233 loc) 7.64 kB
import { ethers } from 'ethers'; /** * Set global RPC configuration from mobile app (highest priority) * @param config - RPC URLs configuration */ export declare function setGlobalRPCConfig(config: Record<string, string>): void; /** * Set global explorer configuration from mobile app (highest priority) * @param config - Explorer URLs configuration */ export declare function setGlobalExplorerConfig(config: Record<string, string>): void; /** * Get global RPC configuration * @returns Current global RPC configuration */ export declare function getGlobalRPCConfig(): Record<string, string>; /** * Get global explorer configuration * @returns Current global explorer configuration */ export declare function getGlobalExplorerConfig(): Record<string, string>; /** * Clear global configurations */ export declare function clearGlobalConfigs(): void; /** * Interface representing chain configuration */ export interface ChainConfig { name: string; rpcUrl: string; explorerUrl: string; nativeCurrency: { name: string; symbol: string; decimals: number; }; type: 'evm' | 'solana'; } /** * Configuration object containing all supported blockchain networks. * Each chain has its RPC URL, explorer URL, native currency details, and type. * RPC URLs can be customized via environment variables. */ export declare const SUPPORTED_CHAINS: { readonly '1': { readonly name: "Ethereum"; readonly rpcUrl: string; readonly explorerUrl: string; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly type: "evm"; }; readonly '56': { readonly name: "BNB Smart Chain"; readonly rpcUrl: string; readonly explorerUrl: string; readonly nativeCurrency: { readonly name: "BNB"; readonly symbol: "BNB"; readonly decimals: 18; }; readonly type: "evm"; }; readonly '137': { readonly name: "Polygon"; readonly rpcUrl: string; readonly explorerUrl: string; readonly nativeCurrency: { readonly name: "MATIC"; readonly symbol: "MATIC"; readonly decimals: 18; }; readonly type: "evm"; }; readonly '42161': { readonly name: "Arbitrum One"; readonly rpcUrl: string; readonly explorerUrl: string; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly type: "evm"; }; readonly '10': { readonly name: "OP Mainnet"; readonly rpcUrl: string; readonly explorerUrl: string; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly type: "evm"; }; readonly '8453': { readonly name: "Base"; readonly rpcUrl: string; readonly explorerUrl: string; readonly nativeCurrency: { readonly name: "Ether"; readonly symbol: "ETH"; readonly decimals: 18; }; readonly type: "evm"; }; readonly solana: { readonly name: "Solana"; readonly rpcUrl: string; readonly explorerUrl: string; readonly nativeCurrency: { readonly name: "SOL"; readonly symbol: "SOL"; readonly decimals: 9; }; readonly type: "solana"; }; readonly 'solana-devnet': { readonly name: "Solana Devnet"; readonly rpcUrl: string; readonly explorerUrl: string; readonly nativeCurrency: { readonly name: "SOL"; readonly symbol: "SOL"; readonly decimals: 9; }; readonly type: "solana"; }; readonly '97': { readonly name: "BNB Smart Chain Testnet"; readonly rpcUrl: string; readonly explorerUrl: string; readonly nativeCurrency: { readonly name: "BNB"; readonly symbol: "tBNB"; readonly decimals: 18; }; readonly type: "evm"; }; }; /** * Type representing the supported chain IDs. * Can be either EVM chain IDs (as strings) or Solana network identifiers. */ export type ChainId = keyof typeof SUPPORTED_CHAINS; /** * Type representing the blockchain type. * 'evm' for Ethereum-compatible chains, 'solana' for Solana blockchain. */ export type ChainType = 'evm' | 'solana'; /** * Creates and returns an ethers.js provider for the specified EVM chain. * @param chainId - The chain ID to create a provider for (must be an EVM chain) * @returns An ethers.js JsonRpcProvider instance for the specified chain * @throws Error if the chain is not supported or is not an EVM chain */ export declare const getProvider: (chainId: ChainId) => ethers.JsonRpcProvider; /** * BIP-44 derivation paths for different blockchain types. * Used for deterministic wallet generation from mnemonics. */ export declare const DERIVATION_PATHS: { /** Standard EVM derivation path following BIP-44 */ readonly EVM: "m/44'/60'/0'/0/0"; /** Solana derivation path following BIP-44 with hardened derivation */ readonly SOLANA: "m/44'/501'/0'/0'"; }; /** * Register a custom chain (new chain not in built-in list) * @param chainId - Custom chain ID (e.g., 'custom-1', 'my-chain') * @param config - Complete chain configuration */ export declare function registerCustomChain(chainId: string, config: ChainConfig): void; /** * Override a built-in chain configuration * @param chainId - Built-in chain ID to override * @param override - Partial configuration to override (only specify fields to change) * @throws Error if chainId is not a built-in chain */ export declare function overrideChain(chainId: string, override: Partial<ChainConfig>): void; /** * Override multiple built-in chains at once * @param overrides - Object containing multiple chain overrides */ export declare function overrideChains(overrides: Record<string, Partial<ChainConfig>>): void; /** * Get chain configuration with priority: Custom > Override > Built-in * @param chainId - Chain ID to get configuration for * @returns Chain configuration * @throws Error if chain is not found */ export declare function getChainConfig(chainId: string): ChainConfig; /** * Setup chain configurations with overrides and custom chains * @param options - Configuration options */ export declare function setupChainConfigs(options: { overrides?: Record<string, Partial<ChainConfig>>; customChains?: Record<string, ChainConfig>; }): void; /** * Get all available chains (built-in + custom) * @returns Object containing all chain configurations */ export declare function getAllAvailableChains(): Record<string, ChainConfig>; /** * Clear all custom chains */ export declare function clearCustomChains(): void; /** * Clear all chain overrides */ export declare function clearOverrides(): void; /** * Clear override for a specific chain * @param chainId - Chain ID to clear override for */ export declare function clearOverride(chainId: string): void; /** * Get all custom chains * @returns Object containing custom chain configurations */ export declare function getCustomChains(): Record<string, ChainConfig>; /** * Get all chain overrides * @returns Object containing chain override configurations */ export declare function getOverrides(): Record<string, Partial<ChainConfig>>;