@rarible/estimate-middleware
Version:
40 lines (39 loc) • 1.21 kB
JavaScript
;
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;
}