@waku/enr
Version:
ENR (EIP-778) for Waku
41 lines (40 loc) • 1.65 kB
TypeScript
import type { PeerId, PeerInfo } from "@libp2p/interface";
import type { Multiaddr } from "@multiformats/multiaddr";
import type { ENRKey, ENRValue, IEnr, NodeId, SequenceNumber, ShardInfo } from "@waku/interfaces";
import { RawEnr } from "./raw_enr.js";
export declare enum TransportProtocol {
TCP = "tcp",
UDP = "udp"
}
export declare enum TransportProtocolPerIpVersion {
TCP4 = "tcp4",
UDP4 = "udp4",
TCP6 = "tcp6",
UDP6 = "udp6"
}
export declare class ENR extends RawEnr implements IEnr {
static readonly RECORD_PREFIX = "enr:";
peerId?: PeerId;
static create(kvs?: Record<ENRKey, ENRValue>, seq?: SequenceNumber, signature?: Uint8Array): ENR;
get nodeId(): NodeId | undefined;
getLocationMultiaddr: (protocol: TransportProtocol | TransportProtocolPerIpVersion) => Multiaddr | undefined;
get shardInfo(): ShardInfo | undefined;
setLocationMultiaddr(multiaddr: Multiaddr): void;
getAllLocationMultiaddrs(): Multiaddr[];
get peerInfo(): PeerInfo | undefined;
/**
* Returns the full multiaddr from the ENR fields matching the provided
* `protocol` parameter.
* To return full multiaddrs from the `multiaddrs` ENR field,
* use { @link ENR.getFullMultiaddrs }.
*
* @param protocol
*/
getFullMultiaddr(protocol: TransportProtocol | TransportProtocolPerIpVersion): Multiaddr | undefined;
/**
* Returns the full multiaddrs from the `multiaddrs` ENR field.
*/
getFullMultiaddrs(): Multiaddr[];
verify(data: Uint8Array, signature: Uint8Array): boolean;
sign(data: Uint8Array, privateKey: Uint8Array): Promise<Uint8Array>;
}