UNPKG

@waku/discovery

Version:

Contains various discovery mechanisms: DNS Discovery (EIP-1459, Peer Exchange, Local Peer Cache Discovery.

47 lines (40 loc) 1.18 kB
import { proto_peer_exchange as proto } from "@waku/proto"; import type { Uint8ArrayList } from "uint8arraylist"; /** * PeerExchangeRPC represents a message conforming to the Waku Peer Exchange protocol */ export class PeerExchangeRPC { public constructor(public proto: proto.PeerExchangeRPC) {} public static createRequest( params: proto.PeerExchangeQuery ): PeerExchangeRPC { const { numPeers } = params; return new PeerExchangeRPC({ query: { numPeers: numPeers }, response: undefined }); } /** * Encode the current PeerExchangeRPC request to bytes * @returns Uint8Array */ public encode(): Uint8Array { return proto.PeerExchangeRPC.encode(this.proto); } /** * Decode the current PeerExchangeRPC request to bytes * @returns Uint8Array */ public static decode(bytes: Uint8ArrayList): PeerExchangeRPC { const res = proto.PeerExchangeRPC.decode(bytes); return new PeerExchangeRPC(res); } public get query(): proto.PeerExchangeQuery | undefined { return this.proto.query; } public get response(): proto.PeerExchangeResponse | undefined { return this.proto.response; } }