@xchainjs/xchain-utxo
Version:
Genereic UTXO client for XChainJS
92 lines (91 loc) • 3.07 kB
TypeScript
/**
* 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>;
}