2024-07-19 19:35:00 +02:00
|
|
|
import { type LightNode } from "@waku/interfaces";
|
2022-12-02 15:43:46 +11:00
|
|
|
|
2024-03-11 18:50:34 +05:30
|
|
|
import { CreateWakuNodeOptions, WakuNode, WakuOptions } from "../waku.js";
|
2023-01-31 19:47:46 +05:30
|
|
|
|
2024-07-19 19:35:00 +02:00
|
|
|
import { createLibp2pAndUpdateOptions } from "./libp2p.js";
|
2022-08-01 15:43:43 +10:00
|
|
|
|
2022-09-07 16:51:43 +10:00
|
|
|
/**
|
|
|
|
|
* Create a Waku node that uses Waku Light Push, Filter and Store to send and
|
|
|
|
|
* receive messages, enabling low resource consumption.
|
2023-07-26 11:30:48 +05:30
|
|
|
* Uses Waku Filter V2 by default.
|
2022-09-07 16:51:43 +10:00
|
|
|
*/
|
|
|
|
|
export async function createLightNode(
|
2024-03-04 10:56:20 +01:00
|
|
|
options: CreateWakuNodeOptions = {}
|
2022-12-06 13:18:32 +11:00
|
|
|
): Promise<LightNode> {
|
2024-03-04 10:56:20 +01:00
|
|
|
const libp2p = await createLibp2pAndUpdateOptions(options);
|
2022-09-07 16:51:43 +10:00
|
|
|
|
2024-06-19 01:52:16 -04:00
|
|
|
return new WakuNode(options as WakuOptions, libp2p, {
|
|
|
|
|
store: true,
|
|
|
|
|
lightpush: true,
|
|
|
|
|
filter: true
|
|
|
|
|
}) as LightNode;
|
2022-09-07 16:51:43 +10:00
|
|
|
}
|