export interface BaseRpcRequest { jsonrpc?: '2.0'; id?: number; method: string; params: any; } export interface RpcError { code: number; message: string; } export interface BaseRpcResponse { id?: number; jsonrpc?: '2.0'; result: T; error?: RpcError; } export interface Rpc { type: Request['method']; request: Request; response: BaseRpcResponse; } export interface SubscriptionData { jsonrpc?: '2.0'; method: 'eth_subscription'; params: { subscription: string; result: T; }; }