console.log(waku.peerId); // 12D3KooWNmk9yXHfHJ4rUduRqD1TCTHkNFMPF9WP2dqWpZDL4aUb
Returns a list of supported protocols.
console.log(waku.protocols); // ['/ipfs/id/1.0.0', '/ipfs/ping/1.0.0', '/vac/waku/filter-push/2.0.0-beta1', '/vac/waku/metadata/1.0.0']
Creates a decoder for Waku messages on a specific content topic.
A decoder is used to decode messages from the Waku network format. The decoder automatically handles shard configuration based on the Waku node's network settings.
Configuration for the decoder
A decoder instance configured for the specified content topic
If the shard configuration is incompatible with the node's network settings
// Create a decoder with default network shard settings
const decoder = waku.createDecoder({
contentTopic: "/my-app/1/chat/proto"
});
// Create a decoder with custom shard settings
const customDecoder = waku.createDecoder({
contentTopic: "/my-app/1/chat/proto",
shardInfo: {
clusterId: 1,
shard: 5
}
});
Creates an encoder for Waku messages on a specific content topic.
An encoder is used to encode messages into the Waku network format. The encoder automatically handles shard configuration based on the Waku node's network settings.
Configuration for the encoder including content topic and optionally shard information and ephemeral flag
An encoder instance configured for the specified content topic
If the shard configuration is incompatible with the node's network settings
// Create a basic encoder with default network shard settings
const encoder = waku.createEncoder({
contentTopic: "/my-app/1/chat/proto"
});
// Create an ephemeral encoder (messages won't be stored by store nodes)
const ephemeralEncoder = waku.createEncoder({
contentTopic: "/my-app/1/notifications/proto",
ephemeral: true,
shardInfo: {
clusterId: 2,
shardsUnderCluster: 16
}
});
Dials to the provided peer
information to use for dialing
Optional
protocols: Protocols[]array of Waku protocols to be used for dialing. If no provided - will be derived from mounted protocols.
Promise
that will resolve to a Stream
to a dialed peer
await waku.dial(remotePeerId, [Protocols.LightPush]);
waku.isConnected() === true;
Resolves when Waku successfully gains connection to a remote peers that fits provided requirements. Must be used after attempting to connect to nodes, using IWaku.dial or if was bootstrapped by using IPeerExchange or DnsDiscoveryComponents.
Optional
protocols: Protocols[]Protocols that need to be enabled by remote peers
Optional
timeoutMs: numberTimeout value in milliseconds after which promise rejects
Promise
that resolves if all desired protocols are fulfilled by
at least one remote peer, rejects if the timeoutMs is reached
If passing a protocol that is not mounted or Waku node is not started
try {
// let's wait for at least one LightPush node and timeout in 1 second
await waku.waitForPeers([Protocols.LightPush], 1000);
} catch(e) {
waku.isConnected() === false;
console.error("Failed to connect due to", e);
}
waku.isConnected() === true;
Returns a unique identifier for a node on the network.