UNPKG

@rarible/estimate-middleware

Version:
40 lines (39 loc) 1.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractError = exports.RpcError = exports.isSafeEventEmitterProvider = void 0; function isSafeEventEmitterProvider(x) { return typeof x === "object" && x !== null && "send" in x && "sendAsync" in x; } exports.isSafeEventEmitterProvider = isSafeEventEmitterProvider; class RpcError extends Error { constructor(message, code) { super(message); this.code = code; this.name = "JsonRpcError"; } } exports.RpcError = RpcError; function extractError(error) { if (isObject(error)) { if ("data" in error) { const { data } = error; if (isObject(data) && isJsonRpcError(data)) { return new RpcError(data.message, data.code); } } if (isJsonRpcError(error)) { return new RpcError(error.message, error.code); } } if (error instanceof Error) { return error; } return new Error("Unknown error"); } exports.extractError = extractError; function isJsonRpcError(x) { return "code" in x && "message" in x; } function isObject(x) { return typeof x === "object" && x !== null; }