UNPKG

simple-nano-wallet

Version:

Benskalz' simple-nano-wallet rewritten in TypeScript with some additional features.

107 lines (106 loc) 3.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WorkGenerationError = exports.WebSocketMessageError = exports.TransactionFailedError = exports.InvalidAmountError = exports.InvalidAddressError = exports.AccountNotFoundError = exports.MissingConfigurationError = exports.InvalidSeedError = exports.CryptographicError = exports.WebSocketError = exports.ValidationError = exports.NetworkError = exports.TransactionError = exports.AccountError = exports.ConfigurationError = exports.WalletError = void 0; class WalletError extends Error { constructor(message, code, originalError) { super(message); this.name = this.constructor.name; this.code = code; this.originalError = originalError; if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor); } } } exports.WalletError = WalletError; class ConfigurationError extends WalletError { constructor(message, code = 'CONFIG_ERROR') { super(message, code); } } exports.ConfigurationError = ConfigurationError; class AccountError extends WalletError { constructor(message, code = 'ACCOUNT_ERROR') { super(message, code); } } exports.AccountError = AccountError; class TransactionError extends WalletError { constructor(message, code = 'TX_ERROR') { super(message, code); } } exports.TransactionError = TransactionError; class NetworkError extends WalletError { constructor(message, code = 'NETWORK_ERROR', originalError) { super(message, code, originalError); } } exports.NetworkError = NetworkError; class ValidationError extends WalletError { constructor(message, code = 'VALIDATION_ERROR') { super(message, code); } } exports.ValidationError = ValidationError; class WebSocketError extends WalletError { constructor(message, code = 'WS_ERROR') { super(message, code); } } exports.WebSocketError = WebSocketError; class CryptographicError extends WalletError { constructor(message, code = 'CRYPTO_ERROR') { super(message, code); } } exports.CryptographicError = CryptographicError; // Specific error subtypes class InvalidSeedError extends ConfigurationError { constructor() { super('Invalid seed format - must be 64-character hex string', 'INVALID_SEED'); } } exports.InvalidSeedError = InvalidSeedError; class MissingConfigurationError extends ConfigurationError { constructor(missingField) { super(`Missing required configuration: ${missingField}`, 'MISSING_CONFIG'); } } exports.MissingConfigurationError = MissingConfigurationError; class AccountNotFoundError extends AccountError { constructor(address) { super(`Account not found: ${address}`, 'ACCOUNT_NOT_FOUND'); } } exports.AccountNotFoundError = AccountNotFoundError; class InvalidAddressError extends ValidationError { constructor(address) { super(`Invalid address format: ${address}`, 'INVALID_ADDRESS'); } } exports.InvalidAddressError = InvalidAddressError; class InvalidAmountError extends ValidationError { constructor(amount) { super(`Invalid amount format: ${amount}`, 'INVALID_AMOUNT'); } } exports.InvalidAmountError = InvalidAmountError; class TransactionFailedError extends TransactionError { constructor(details) { super(`Transaction failed: ${details}`, 'TX_FAILED'); } } exports.TransactionFailedError = TransactionFailedError; class WebSocketMessageError extends WebSocketError { constructor() { super('Invalid WebSocket message format', 'WS_INVALID_MESSAGE'); } } exports.WebSocketMessageError = WebSocketMessageError; class WorkGenerationError extends NetworkError { constructor(details) { super(`Work generation failed: ${details}`, 'WORK_GENERATION_FAILED'); } } exports.WorkGenerationError = WorkGenerationError;