UNPKG

viem

Version:

TypeScript Interface for Ethereum

54 lines 3 kB
import { type UrlRequiredErrorType } from '../../errors/transport.js'; import type { ErrorType } from '../../errors/utils.js'; import type { EIP1193RequestFn, RpcSchema } from '../../types/eip1193.js'; import { type HttpRpcClientOptions } from '../../utils/rpc/http.js'; import { type CreateTransportErrorType, type Transport, type TransportConfig } from './createTransport.js'; export type HttpTransportConfig<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = { /** * Whether to enable Batch JSON-RPC. * @link https://www.jsonrpc.org/specification#batch */ batch?: boolean | { /** The maximum number of JSON-RPC requests to send in a batch. @default 1_000 */ batchSize?: number | undefined; /** The maximum number of milliseconds to wait before sending a batch. @default 0 */ wait?: number | undefined; } | undefined; /** * Request configuration to pass to `fetch`. * @link https://developer.mozilla.org/en-US/docs/Web/API/fetch */ fetchOptions?: HttpRpcClientOptions['fetchOptions'] | undefined; /** A callback to handle the response from `fetch`. */ onFetchRequest?: HttpRpcClientOptions['onRequest'] | undefined; /** A callback to handle the response from `fetch`. */ onFetchResponse?: HttpRpcClientOptions['onResponse'] | undefined; /** The key of the HTTP transport. */ key?: TransportConfig['key'] | undefined; /** Methods to include or exclude from executing RPC requests. */ methods?: TransportConfig['methods'] | undefined; /** The name of the HTTP transport. */ name?: TransportConfig['name'] | undefined; /** Whether to return JSON RPC errors as responses instead of throwing. */ raw?: raw | boolean | undefined; /** The max number of times to retry. */ retryCount?: TransportConfig['retryCount'] | undefined; /** The base delay (in ms) between retries. */ retryDelay?: TransportConfig['retryDelay'] | undefined; /** Typed JSON-RPC schema for the transport. */ rpcSchema?: rpcSchema | RpcSchema | undefined; /** The timeout (in ms) for the HTTP request. Default: 10_000 */ timeout?: TransportConfig['timeout'] | undefined; }; export type HttpTransport<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = Transport<'http', { fetchOptions?: HttpTransportConfig['fetchOptions'] | undefined; url?: string | undefined; }, EIP1193RequestFn<rpcSchema, raw>>; export type HttpTransportErrorType = CreateTransportErrorType | UrlRequiredErrorType | ErrorType; /** * @description Creates a HTTP transport that connects to a JSON-RPC API. */ export declare function http<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false>( /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */ url?: string | undefined, config?: HttpTransportConfig<rpcSchema, raw>): HttpTransport<rpcSchema, raw>; //# sourceMappingURL=http.d.ts.map