66 lines
2.7 KiB
TypeScript
66 lines
2.7 KiB
TypeScript
interface JsonRpcError {
|
|
code: number;
|
|
message: string;
|
|
data?: any;
|
|
}
|
|
export type DBlurtErrorCategory = 'rpc_application' | 'serialization' | 'validation' | 'transport' | 'timeout' | 'unknown';
|
|
export type DBlurtErrorCode = 'DBLURT_RPC_APPLICATION' | 'DBLURT_SERIALIZATION' | 'DBLURT_VALIDATION' | 'DBLURT_TRANSPORT' | 'DBLURT_TIMEOUT' | 'DBLURT_UNKNOWN';
|
|
/** Machine-readable error classification used by dblurt error helpers. */
|
|
export interface DBlurtErrorMetadata {
|
|
category: DBlurtErrorCategory;
|
|
code: DBlurtErrorCode;
|
|
retryable: boolean;
|
|
cause_code?: string;
|
|
cause_message?: string;
|
|
cause_name?: string;
|
|
field?: string;
|
|
path?: Array<string | number>;
|
|
rpc_code?: number;
|
|
rpc_data?: any;
|
|
}
|
|
export interface DBlurtErrorOptions {
|
|
cause?: Error;
|
|
info?: any;
|
|
metadata?: DBlurtErrorMetadata;
|
|
}
|
|
export interface ValidationErrorContext {
|
|
field?: string;
|
|
path?: Array<string | number>;
|
|
}
|
|
/** Base class for typed dblurt errors with non-enumerable metadata. */
|
|
export declare class DBlurtError extends Error {
|
|
readonly category: DBlurtErrorCategory;
|
|
readonly code: DBlurtErrorCode;
|
|
readonly dblurt_error = true;
|
|
readonly jse_shortmsg: string;
|
|
readonly jse_info: any;
|
|
readonly jse_cause?: Error;
|
|
readonly metadata: DBlurtErrorMetadata;
|
|
readonly retryable: boolean;
|
|
constructor(name: string, message: string, options?: DBlurtErrorOptions);
|
|
cause(): Error | undefined;
|
|
}
|
|
/** Error raised when transaction or operation serialization fails. */
|
|
export declare class SerializationError extends DBlurtError {
|
|
constructor(cause: any);
|
|
}
|
|
/** Error raised when SDK-side input validation fails before signing/broadcast. */
|
|
export declare class ValidationError extends DBlurtError {
|
|
constructor(message: string, context?: ValidationErrorContext);
|
|
}
|
|
/** Error raised for JSON-RPC application errors returned by a Blurt RPC endpoint. */
|
|
export declare class RpcApplicationError extends DBlurtError {
|
|
constructor(message: string, info: any, rpcCode?: number);
|
|
}
|
|
/** Return true when an unknown error value carries dblurt typed error metadata. */
|
|
export declare const isDBlurtError: (error: any) => error is DBlurtError;
|
|
/**
|
|
* Classify an unknown error value without parsing human-readable messages in app code.
|
|
*
|
|
* Existing {@link DBlurtError} instances return their embedded metadata. Abort-like
|
|
* errors are classified as retryable timeouts, selected network failures as
|
|
* transport errors and unrecognized values as non-retryable unknown errors.
|
|
*/
|
|
export declare const classifyError: (error: any) => DBlurtErrorMetadata;
|
|
export declare const rpcErrorFromResponse: (error: JsonRpcError) => Error;
|
|
export {};
|