2024-01-15 16:12:01 -08:00
|
|
|
import type { PeerId } from "@libp2p/interface";
|
|
|
|
|
import type { PeerInfo } from "@libp2p/interface";
|
2022-12-13 12:31:27 +11:00
|
|
|
import type { Multiaddr } from "@multiformats/multiaddr";
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
2023-10-10 20:18:02 +05:30
|
|
|
export interface ShardInfo {
|
2023-11-29 17:37:59 +05:30
|
|
|
clusterId: number;
|
|
|
|
|
shards: number[];
|
2023-10-10 20:18:02 +05:30
|
|
|
}
|
|
|
|
|
|
2022-12-13 12:31:27 +11:00
|
|
|
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;
|
2023-03-07 14:36:21 +11:00
|
|
|
peerInfo: PeerInfo | undefined;
|
2023-10-10 20:18:02 +05:30
|
|
|
shardInfo?: ShardInfo;
|
2022-12-13 12:31:27 +11:00
|
|
|
|
2023-03-07 14:36:21 +11:00
|
|
|
/**
|
|
|
|
|
* @deprecated: use { @link IEnr.peerInfo } instead.
|
|
|
|
|
*/
|
2022-12-13 12:31:27 +11:00
|
|
|
getFullMultiaddrs(): Multiaddr[];
|
|
|
|
|
}
|