import { ProviderInterface } from "../rpc-provider/types"; import { RpcMethod } from "../type-jsonrpc/types"; import { Registry } from "../types/types"; import { RpcInterface, UserRpc } from './types'; /** * @name Rpc * @summary The API may use a HTTP or WebSockets provider. * @description It allows for querying a Polkadot Client Node. * WebSockets provider is recommended since HTTP provider only supports basic querying. * * ```mermaid * graph LR; * A[Api] --> |WebSockets| B[WsProvider]; * B --> |endpoint| C[ws://127.0.0.1:9944] * ``` * * @example *
* * ```javascript * import Rpc from '@polkadot/rpc-core'; * import WsProvider from '@polkadot/rpc-provider/ws'; * * const provider = new WsProvider('ws://127.0.0.1:9944'); * const rpc = new Rpc(provider); * ``` */ export default class Rpc implements RpcInterface { private _storageCache; readonly mapping: Map; readonly provider: ProviderInterface; readonly registry: Registry; readonly sections: string[]; readonly account: RpcInterface['account']; readonly author: RpcInterface['author']; readonly chain: RpcInterface['chain']; readonly contracts: RpcInterface['contracts']; readonly payment: RpcInterface['payment']; readonly rpc: RpcInterface['rpc']; readonly state: RpcInterface['state']; readonly system: RpcInterface['system']; /** * @constructor * Default constructor for the Api Object * @param {ProviderInterface} provider An API provider using HTTP or WebSocket */ constructor(registry: Registry, provider: ProviderInterface, userRpc?: UserRpc); /** * @description Manually disconnect from the attached provider */ disconnect(): void; private createInterfaces; private createInterface; private createMethodSend; private createSubscriber; private createMethodSubscribe; private formatInputs; private treatAsHex; private formatOutput; private formatStorageData; private formatStorageSet; }