UNPKG

@xchainjs/xchain-utxo

Version:
92 lines (91 loc) 3.07 kB
/** * UTXO-specific error codes for better error handling and debugging */ export declare enum UtxoErrorCode { INSUFFICIENT_BALANCE = "INSUFFICIENT_BALANCE", INVALID_ADDRESS = "INVALID_ADDRESS", INVALID_AMOUNT = "INVALID_AMOUNT", INVALID_FEE_RATE = "INVALID_FEE_RATE", INVALID_MEMO = "INVALID_MEMO", INVALID_UTXO = "INVALID_UTXO", PROVIDER_ERROR = "PROVIDER_ERROR", NETWORK_ERROR = "NETWORK_ERROR", VALIDATION_ERROR = "VALIDATION_ERROR", TRANSACTION_TOO_LARGE = "TRANSACTION_TOO_LARGE", UTXO_SELECTION_FAILED = "UTXO_SELECTION_FAILED", BROADCAST_ERROR = "BROADCAST_ERROR", SIGNING_ERROR = "SIGNING_ERROR" } /** * Enhanced error class for UTXO operations with detailed context */ export declare class UtxoError extends Error { readonly code: UtxoErrorCode; readonly details?: Record<string, unknown> | undefined; readonly isUtxoError = true; constructor(code: UtxoErrorCode, message: string, details?: Record<string, unknown> | undefined); /** * Create an insufficient balance error */ static insufficientBalance(required: string, available: string, chain?: string): UtxoError; /** * Create an invalid address error */ static invalidAddress(address: string, network?: string): UtxoError; /** * Create an invalid amount error */ static invalidAmount(amount: string | number, reason?: string): UtxoError; /** * Create an invalid fee rate error */ static invalidFeeRate(feeRate: number, reason?: string): UtxoError; /** * Create an invalid memo error */ static invalidMemo(memo: string, reason: string): UtxoError; /** * Create a provider error */ static providerError(providerName: string, originalError: Error): UtxoError; /** * Create a network error */ static networkError(operation: string, originalError: Error): UtxoError; /** * Create a validation error */ static validationError(message: string, details?: Record<string, unknown>): UtxoError; /** * Create a transaction too large error */ static transactionTooLarge(currentSize: number, maxSize: number): UtxoError; /** * Create a UTXO selection failed error */ static utxoSelectionFailed(targetAmount: number, availableAmount: number, strategy?: string): UtxoError; /** * Create a broadcast error */ static broadcastError(txHash: string, originalError: Error): UtxoError; /** * Create a signing error */ static signingError(reason: string, details?: Record<string, unknown>): UtxoError; /** * Convert unknown errors to typed UTXO errors */ static fromUnknown(error: unknown, context?: string): UtxoError; /** * Check if an error is a UTXO error */ static isUtxoError(error: unknown): error is UtxoError; /** * Get a user-friendly error message */ getUserFriendlyMessage(): string; /** * Convert to JSON for logging */ toJSON(): Record<string, unknown>; }