@waku/interfaces
Version:
Definition of Waku interfaces
46 lines (40 loc) • 1.06 kB
text/typescript
import type { PeerId } from "@libp2p/interface";
import type { PeerInfo } from "@libp2p/interface";
import type { Multiaddr } from "@multiformats/multiaddr";
import { ShardInfo } from "./sharding.js";
export type ENRKey = string;
export type ENRValue = Uint8Array;
/**
* We represent NodeId as a hex string, since node equality is used very heavily
* and it is convenient to index data by NodeId
*/
export type NodeId = string;
export type SequenceNumber = bigint;
export interface Waku2 {
relay: boolean;
store: boolean;
filter: boolean;
lightPush: boolean;
}
export interface IEnr extends Map<ENRKey, ENRValue> {
nodeId?: NodeId;
peerId?: PeerId;
id: string;
seq: SequenceNumber;
publicKey?: Uint8Array;
signature?: Uint8Array;
ip?: string;
tcp?: number;
udp?: number;
ip6?: string;
tcp6?: number;
udp6?: number;
multiaddrs?: Multiaddr[];
waku2?: Waku2;
peerInfo: PeerInfo | undefined;
shardInfo?: ShardInfo;
/**
* @deprecated: use { @link IEnr.peerInfo } instead.
*/
getFullMultiaddrs(): Multiaddr[];
}