type ProviderRPCErrorLike = { message: string code: number data?: unknown } & Error export class ProviderRPCError extends Error implements ProviderRPCErrorLike { public code: number public data?: unknown constructor({ message, code, data }: ProviderRPCErrorLike) { super(message) this.code = code this.data = data } } export const isProviderRPCErrorLike = ( error: unknown, ): error is ProviderRPCErrorLike => !!error && typeof error === "object" && "message" in error && "code" in error && typeof error.code === "number"