lisk-framework
Version:
Lisk blockchain application platform
35 lines (34 loc) • 1.41 kB
TypeScript
import { EventCallback } from '../event';
import { EndpointHandlers } from '../../types';
import { Logger } from '../../logger';
export interface InvokeRequest {
methodName: string;
context: {
header?: {
height: number;
timestamp: number;
aggregateCommit: {
height: number;
};
};
};
params?: Record<string, unknown>;
}
export declare abstract class BaseChannel {
readonly eventsList: ReadonlyArray<string>;
readonly endpointsList: ReadonlyArray<string>;
readonly namespace: string;
protected readonly endpointHandlers: EndpointHandlers;
protected readonly _logger: Logger;
private _requestId;
constructor(logger: Logger, namespace: string, events: ReadonlyArray<string>, endpoints: EndpointHandlers);
isValidEventName(name: string, throwError?: boolean): boolean | never;
isValidActionName(name: string, throwError?: boolean): boolean | never;
protected _getNextRequestId(): string;
abstract subscribe(eventName: string, cb: EventCallback): void;
abstract unsubscribe(eventName: string, cb: EventCallback): void;
abstract publish(eventName: string, data?: Record<string, unknown>): void;
abstract invoke<T>(req: InvokeRequest): Promise<T>;
abstract registerToBus(arg: unknown): Promise<void>;
abstract once(eventName: string, cb: EventCallback): void;
}