Documentation
    Preparing search index...

    Class MockWakuNode

    Implements

    Index

    Constructors

    Properties

    Emits events related to the Waku node. Those are:

    • WakuEvent.Connection
    • WakuEvent.Health
    waku.events.addEventListener(WakuEvent.Connection, (event) => {
    console.log(event.detail); // true if connected, false if disconnected
    });
    filter?: IFilter
    lightPush?: ILightPush
    protocols: string[]

    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']
    
    relay?: IRelay
    store?: IStore

    Accessors

    • get health(): HealthStatus

      The health status can be one of three states:

      • Unhealthy: No peer connections
      • MinimallyHealthy: At least 1 peer supporting both Filter and LightPush protocols
      • SufficientlyHealthy: At least 2 peers supporting both Filter and LightPush protocols

      Returns HealthStatus

      console.log(waku.health); // 'Unhealthy'
      
    • get peerId(): PeerId

      Returns a unique identifier for a node on the network.

      Returns PeerId

      console.log(waku.peerId); // 12D3KooWNmk9yXHfHJ4rUduRqD1TCTHkNFMPF9WP2dqWpZDL4aUb
      

    Methods

    • 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.

      Parameters

      Returns IDecoder<IDecodedMessage>

      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.

      Parameters

      Returns IEncoder

      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

      Parameters

      • _peer: PeerId | MultiaddrInput
      • Optional_protocols: Protocols[]

      Returns Promise<Stream>

      Promise that will resolve to a Stream to a dialed peer and will reject if the connection fails

      await waku.dial(remotePeerId, [Protocols.LightPush]);

      waku.isConnected() === true;
    • Hang up a connection to a peer

      Parameters

      • _peer: PeerId | MultiaddrInput

      Returns Promise<boolean>

      Promise that will resolve to true if the connection is hung up, false otherwise

    • Starts all services and components related to functionality of Waku node.

      Returns Promise<void>

      Promise that will resolve when started.

      await waku.start();

      waku.isStarted() === true;
    • Stops all recurring processes and services that are needed for functionality of Waku node.

      Returns Promise<void>

      Promise that resolves when stopped.

      await waku.stop();

      waku.isStarted === false;
    • 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.

      Parameters

      • Optional_protocols: Protocols[]
      • Optional_timeoutMs: number

      Returns Promise<void>

      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;