@rarible/estimate-middleware
Version:
34 lines (33 loc) • 936 B
JavaScript
export function isSafeEventEmitterProvider(x) {
return typeof x === "object" && x !== null && "send" in x && "sendAsync" in x;
}
export class RpcError extends Error {
constructor(message, code) {
super(message);
this.code = code;
this.name = "JsonRpcError";
}
}
export 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");
}
function isJsonRpcError(x) {
return "code" in x && "message" in x;
}
function isObject(x) {
return typeof x === "object" && x !== null;
}