UNPKG

lotus-sdk

Version:

Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem

95 lines (94 loc) 3.2 kB
export class MuSig2P2PError extends Error { constructor(message) { super(message); this.name = 'MuSig2P2PError'; } } export class DeserializationError extends MuSig2P2PError { fieldName; receivedValue; constructor(message, fieldName, receivedValue) { super(`Deserialization failed for ${fieldName}: ${message}`); this.fieldName = fieldName; this.receivedValue = receivedValue; this.name = 'DeserializationError'; } } export class ValidationError extends MuSig2P2PError { reason; constructor(message, reason) { super(`Validation failed: ${message}`); this.reason = reason; this.name = 'ValidationError'; } } export class ProtocolError extends MuSig2P2PError { constructor(message) { super(message); this.name = 'ProtocolError'; } } export class SecurityError extends MuSig2P2PError { violationType; peerId; constructor(message, violationType, peerId) { super(`Security violation: ${message}`); this.violationType = violationType; this.peerId = peerId; this.name = 'SecurityError'; } } export class SerializationError extends MuSig2P2PError { objectType; reason; constructor(message, objectType, reason) { super(`Serialization failed for ${objectType}: ${message}`); this.objectType = objectType; this.reason = reason; this.name = 'SerializationError'; } } export var ErrorCode; (function (ErrorCode) { ErrorCode["INVALID_PAYLOAD"] = "VAL001"; ErrorCode["MISSING_FIELD"] = "VAL002"; ErrorCode["INVALID_TYPE"] = "VAL003"; ErrorCode["INVALID_FORMAT"] = "VAL004"; ErrorCode["SIZE_LIMIT_EXCEEDED"] = "VAL005"; ErrorCode["TIMESTAMP_SKEW"] = "VAL006"; ErrorCode["MALFORMED_DATA"] = "DES001"; ErrorCode["INVALID_HEX"] = "DES002"; ErrorCode["INVALID_LENGTH"] = "DES003"; ErrorCode["INVALID_PREFIX"] = "DES004"; ErrorCode["BUFFER_ERROR"] = "DES005"; ErrorCode["SERIALIZATION_FAILED"] = "SER001"; ErrorCode["INVALID_OBJECT"] = "SER002"; ErrorCode["ENCODING_ERROR"] = "SER003"; ErrorCode["INVALID_MESSAGE_TYPE"] = "PROT001"; ErrorCode["INVALID_PHASE"] = "PROT002"; ErrorCode["INVALID_STATE"] = "PROT003"; ErrorCode["PROTOCOL_VIOLATION"] = "PROT004"; ErrorCode["RATE_LIMIT_EXCEEDED"] = "SEC001"; ErrorCode["REPLAY_ATTACK"] = "SEC002"; ErrorCode["NONCE_REUSE"] = "SEC003"; ErrorCode["MALICIOUS_PEER"] = "SEC004"; ErrorCode["DOS_ATTEMPT"] = "SEC005"; })(ErrorCode || (ErrorCode = {})); export function createValidationError(message, code, fieldName) { const error = new ValidationError(message, code); if (fieldName) { ; error.fieldName = fieldName; } return error; } export function createDeserializationError(message, code, fieldName, receivedValue) { const error = new DeserializationError(message, fieldName, receivedValue); error.code = code; return error; } export function createSecurityError(message, code, violationType, peerId) { const error = new SecurityError(message, violationType, peerId); error.code = code; return error; }