@waku/sdk
Version:
A unified SDK for easy creation and management of js-waku nodes.
40 lines (39 loc) • 1.66 kB
TypeScript
import { type Peer, type PeerId, type Stream } from "@libp2p/interface";
import type { MultiaddrInput } from "@multiformats/multiaddr";
import type { CreateDecoderParams, CreateEncoderParams, CreateNodeOptions, IDecodedMessage, IDecoder, IEncoder, IFilter, ILightPush, IRelay, IStore, IWaku, IWakuEventEmitter, Libp2p } from "@waku/interfaces";
import { HealthStatus, Protocols } from "@waku/interfaces";
type ProtocolsEnabled = {
filter?: boolean;
lightpush?: boolean;
store?: boolean;
};
export declare class WakuNode implements IWaku {
libp2p: Libp2p;
relay?: IRelay;
store?: IStore;
filter?: IFilter;
lightPush?: ILightPush;
readonly events: IWakuEventEmitter;
private readonly networkConfig;
private _nodeStateLock;
private _nodeStarted;
private readonly connectionManager;
private readonly peerManager;
private readonly healthIndicator;
constructor(options: CreateNodeOptions, libp2p: Libp2p, protocolsEnabled: ProtocolsEnabled, relay?: IRelay);
get peerId(): PeerId;
get protocols(): string[];
get health(): HealthStatus;
dial(peer: PeerId | MultiaddrInput, protocols?: Protocols[]): Promise<Stream>;
hangUp(peer: PeerId | MultiaddrInput): Promise<boolean>;
start(): Promise<void>;
stop(): Promise<void>;
getConnectedPeers(): Promise<Peer[]>;
waitForPeers(protocols?: Protocols[], timeoutMs?: number): Promise<void>;
isStarted(): boolean;
isConnected(): boolean;
createDecoder(params: CreateDecoderParams): IDecoder<IDecodedMessage>;
createEncoder(params: CreateEncoderParams): IEncoder;
private createRoutingInfo;
}
export {};