lisk-framework
Version:
Lisk blockchain application platform
37 lines (36 loc) • 1.25 kB
TypeScript
/// <reference types="node" />
import { Logger } from '../../logger';
import { RPCConfig } from '../../types';
export interface RequestContext {
params: Record<string, unknown>;
chainID: Buffer;
logger: Logger;
}
export type Handler = (context: RequestContext) => Promise<unknown>;
export type NotFoundHandler = (namespace: string, mehtod: string, context: RequestContext) => Promise<unknown>;
export declare class RPCServer {
private readonly _config;
private readonly _ipcServer?;
private readonly _wsServer?;
private readonly _httpServer?;
private readonly _rpcHandler;
private _notFoundHandler?;
private _logger;
private _chainID;
constructor(dataPath: string, config: RPCConfig);
init(options: {
logger: Logger;
chainID: Buffer;
}): void;
start(): Promise<void>;
stop(): void;
publish(eventName: string, data: Record<string, unknown>): Promise<void>;
registerEndpoint(namespace: string, method: string, handler: Handler): void;
registerNotFoundEndpoint(handler: NotFoundHandler): void;
private _handleIPCRequest;
private _handleRequest;
private _publishIPC;
private _publishWS;
private _getHandler;
private _isAllowedMethod;
}