UNPKG

@tatumio/tatum

Version:

Tatum JS SDK

74 lines (73 loc) 2.48 kB
import { TatumConnector } from '../../../connector'; import { JsonRpcCall, JsonRpcResponse } from '../../../dto'; import { GetI } from '../../../dto/GetI'; import { PostI } from '../../../dto/PostI'; import { AbstractRpcInterface } from '../../../dto/rpc/AbstractJsonRpcInterface'; import { RpcNodeType } from '../../tatum'; declare enum RequestType { RPC = "RPC", POST = "POST", GET = "GET", BATCH = "BATCH", PUT = "PUT", DELETE = "DELETE" } interface HandleFailedRpcCallParams { rpcCall: JsonRpcCall | JsonRpcCall[] | PostI | GetI; e: unknown; nodeType: RpcNodeType; requestType: RequestType; url: string; } export declare class LoadBalancer implements AbstractRpcInterface { private readonly id; protected readonly connector: TatumConnector; private readonly logger; private rpcUrls; private activeUrl; private interval; private network; private evictNodesOnFailure; private noActiveNode; constructor(id: string); init(): Promise<void>; destroy(): void; private initCustomNodes; private resetFailedStatuses; private checkStatuses; private checkIfNoActiveNodes; private checkStatus; private static getFastestServer; getActiveArchiveUrlWithFallback(): { url: string; type: RpcNodeType; }; getActiveNormalUrlWithFallback(): { url: string; type: RpcNodeType; }; getActiveUrl(nodeType: RpcNodeType): { url: string; type: RpcNodeType; }; private getActiveIndex; private checkSSRF; private initRemoteHosts; private initRemoteHostsUrls; initRemoteHostsFromResponse(response: Response, nodeType: RpcNodeType): Promise<void>; handleFailedRpcCall({ rpcCall, e, nodeType, requestType, url }: HandleFailedRpcCallParams): Promise<void>; rawRpcCall(rpcCall: JsonRpcCall, archive?: boolean): Promise<JsonRpcResponse<any>>; rawBatchRpcCall(rpcCall: JsonRpcCall[]): Promise<JsonRpcResponse<any>[] | JsonRpcResponse<any>>; modifyNodeUrl(url: string): string; private getUrlForHttpMethod; post<T>({ path, body, prefix }: PostI): Promise<T>; put<T>({ path, body, prefix }: PostI): Promise<T>; delete<T>({ path, prefix }: GetI): Promise<T>; get<T>({ path, prefix }: GetI): Promise<T>; getRpcNodeUrl(): string; } export declare class TronLoadBalancer extends LoadBalancer { constructor(id: string); modifyNodeUrl(url: string): string; } export {};