Sasha 7c8d1073b0
chore!: remove IBaseProtocol and improve interface on PeerExchange (#2422)
* remove IBaseProtocol

* fix references, interfaces and integration

* fix ci

* up mock

* up lock

* add mock for local storage

* add missing prop, fix tests

* up lock
2025-06-20 12:53:42 +02:00

31 lines
802 B
TypeScript

import type { PeerDiscovery } from "@libp2p/interface";
import {
enrTree,
wakuDnsDiscovery,
wakuLocalPeerCacheDiscovery,
wakuPeerExchangeDiscovery
} from "@waku/discovery";
import { CreateNodeOptions, type Libp2pComponents } from "@waku/interfaces";
export function getPeerDiscoveries(
enabled?: CreateNodeOptions["discovery"]
): ((components: Libp2pComponents) => PeerDiscovery)[] {
const dnsEnrTrees = [enrTree["SANDBOX"]];
const discoveries: ((components: Libp2pComponents) => PeerDiscovery)[] = [];
if (enabled?.dns) {
discoveries.push(wakuDnsDiscovery(dnsEnrTrees));
}
if (enabled?.localPeerCache) {
discoveries.push(wakuLocalPeerCacheDiscovery());
}
if (enabled?.peerExchange) {
discoveries.push(wakuPeerExchangeDiscovery());
}
return discoveries;
}