@talak-web3/rpc
v1.1.1
Published
RPC client and utilities for blockchain interactions.
Readme
@talak-web3/rpc
RPC client and utilities for blockchain interactions.
Installation
npm install @talak-web3/rpc
yarn add @talak-web3/rpc
pnpm add @talak-web3/rpcUsage
import { UnifiedRpc } from "@talak-web3/rpc";
import type { TalakWeb3Context } from "@talak-web3/types";
const rpc = new UnifiedRpc(context, [
{ url: "https://eth-mainnet.g.alchemy.com/v2/demo", priority: 0 },
{ url: "https://mainnet.infura.io/v3/demo", priority: 1 },
]);
const blockNumber = await rpc.request<string>("eth_blockNumber", []);
const balance = await rpc.request<string>("eth_getBalance", [
"0x1111111111111111111111111111111111111111",
"latest",
]);
rpc.stop();Features
- Multi-provider fallback with health checking
- Automatic retry with configurable attempts
- Response caching for read-only methods
- Request timeout handling
- Health monitoring (runs every 30s, can be stopped with
rpc.stop())
API
UnifiedRpc
The main RPC client class that implements IRpc interface.
Constructor
constructor(ctx: TalakWeb3Context, endpoints: RpcEndpoint[])ctx: TalakWeb3 context instanceendpoints: Array of RPC endpoints with optional priority
Methods
request<T>(method: string, params?: unknown[], options?: RpcOptions): Promise<T>- Make an RPC requeststop(): void- Stop the health check intervalcheckAllHealth(): Promise<void>- Manually check all endpoint health
License
MIT
