js-waku/packages/sdk/src/utils/discovery.ts
Danish Arora 16e9116c7c
fix: bootstrapping with default pubsub topic (#2031)
* fix: bootstrapping into default pubsub topic

* chore: update tests

* chore: update TODO with GH issue

* chore: rename fleets

* feat: use TWN fleets, or wakuv2.prod if DefaultPubsubTopic

* chore: update imports for enrtree
2024-06-06 12:55:57 -04:00

36 lines
889 B
TypeScript

import type { PeerDiscovery } from "@libp2p/interface";
import {
enrTree,
wakuDnsDiscovery,
wakuLocalPeerCacheDiscovery,
wakuPeerExchangeDiscovery
} from "@waku/discovery";
import {
DefaultPubsubTopic,
type Libp2pComponents,
PubsubTopic
} from "@waku/interfaces";
const DEFAULT_NODE_REQUIREMENTS = {
lightPush: 1,
filter: 1,
store: 1
};
export function defaultPeerDiscoveries(
pubsubTopics: PubsubTopic[]
): ((components: Libp2pComponents) => PeerDiscovery)[] {
const isDefaultPubsubTopic = pubsubTopics.includes(DefaultPubsubTopic);
const dnsEnrTrees = isDefaultPubsubTopic
? [enrTree["DEPRECATED_DEFAULT_PUBSUB"]]
: [enrTree["SANDBOX"], enrTree["TEST"]];
const discoveries = [
wakuDnsDiscovery(dnsEnrTrees, DEFAULT_NODE_REQUIREMENTS),
wakuLocalPeerCacheDiscovery(),
wakuPeerExchangeDiscovery(pubsubTopics)
];
return discoveries;
}