2025-10-01 16:31:34 +10:00
|
|
|
{.used.}
|
|
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
import std/[options, json, strutils], results, stint, testutils/unittests
|
2026-02-17 10:38:35 +01:00
|
|
|
import json_serialization
|
2026-03-03 19:17:54 +01:00
|
|
|
import confutils, confutils/std/net
|
|
|
|
|
import tools/confutils/cli_args
|
|
|
|
|
import waku/factory/waku_conf, waku/factory/networks_config
|
2026-02-17 10:38:35 +01:00
|
|
|
import waku/common/logging
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
# Helper: parse JSON into WakuNodeConf using fieldPairs (same as liblogosdelivery)
|
|
|
|
|
proc parseWakuNodeConfFromJson(jsonStr: string): Result[WakuNodeConf, string] =
|
|
|
|
|
var conf = defaultWakuNodeConf().valueOr:
|
|
|
|
|
return err(error)
|
|
|
|
|
var jsonNode: JsonNode
|
|
|
|
|
try:
|
|
|
|
|
jsonNode = parseJson(jsonStr)
|
|
|
|
|
except Exception:
|
|
|
|
|
return err("JSON parse error: " & getCurrentExceptionMsg())
|
|
|
|
|
for confField, confValue in fieldPairs(conf):
|
|
|
|
|
if jsonNode.contains(confField):
|
|
|
|
|
let formattedString = ($jsonNode[confField]).strip(chars = {'\"'})
|
|
|
|
|
try:
|
|
|
|
|
confValue = parseCmdArg(typeof(confValue), formattedString)
|
|
|
|
|
except Exception:
|
|
|
|
|
return err(
|
|
|
|
|
"Field '" & confField & "' parse error: " & getCurrentExceptionMsg() &
|
|
|
|
|
". Value: " & formattedString
|
|
|
|
|
)
|
|
|
|
|
return ok(conf)
|
|
|
|
|
|
|
|
|
|
suite "WakuNodeConf - mode-driven toWakuConf":
|
|
|
|
|
test "Core mode enables service protocols":
|
2025-10-01 16:31:34 +10:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
var conf = defaultWakuNodeConf().valueOr:
|
|
|
|
|
raiseAssert error
|
|
|
|
|
conf.mode = Core
|
|
|
|
|
conf.clusterId = 1
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## Then
|
2026-03-03 19:17:54 +01:00
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
2025-10-01 16:31:34 +10:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.relay == true
|
|
|
|
|
wakuConf.lightPush == true
|
|
|
|
|
wakuConf.peerExchangeService == true
|
|
|
|
|
wakuConf.rendezvous == true
|
2025-10-01 16:31:34 +10:00
|
|
|
wakuConf.clusterId == 1
|
|
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "Edge mode disables service protocols":
|
2026-01-30 01:06:00 +01:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
var conf = defaultWakuNodeConf().valueOr:
|
|
|
|
|
raiseAssert error
|
|
|
|
|
conf.mode = Edge
|
|
|
|
|
conf.clusterId = 1
|
2026-01-30 01:06:00 +01:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2026-01-30 01:06:00 +01:00
|
|
|
|
|
|
|
|
## Then
|
|
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
|
|
|
|
check:
|
|
|
|
|
wakuConf.relay == false
|
|
|
|
|
wakuConf.lightPush == false
|
|
|
|
|
wakuConf.filterServiceConf.isSome() == false
|
|
|
|
|
wakuConf.storeServiceConf.isSome() == false
|
|
|
|
|
wakuConf.peerExchangeService == true
|
|
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "noMode uses explicit CLI flags as-is":
|
2025-10-01 16:31:34 +10:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
var conf = defaultWakuNodeConf().valueOr:
|
|
|
|
|
raiseAssert error
|
|
|
|
|
conf.mode = WakuMode.noMode
|
|
|
|
|
conf.relay = true
|
|
|
|
|
conf.lightpush = false
|
|
|
|
|
conf.clusterId = 5
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## Then
|
|
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
|
|
|
|
check:
|
|
|
|
|
wakuConf.relay == true
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.lightPush == false
|
|
|
|
|
wakuConf.clusterId == 5
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "Core mode overrides individual protocol flags":
|
|
|
|
|
## Given - user sets relay=false but mode=Core should override
|
|
|
|
|
var conf = defaultWakuNodeConf().valueOr:
|
|
|
|
|
raiseAssert error
|
|
|
|
|
conf.mode = Core
|
|
|
|
|
conf.relay = false # will be overridden by Core mode
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## Then
|
|
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
|
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.relay == true # mode overrides
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
suite "WakuNodeConf - JSON parsing with fieldPairs":
|
|
|
|
|
test "Empty JSON produces valid default conf":
|
|
|
|
|
## Given / When
|
|
|
|
|
let confRes = parseWakuNodeConfFromJson("{}")
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## Then
|
2026-03-03 19:17:54 +01:00
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2025-10-01 16:31:34 +10:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
conf.mode == WakuMode.noMode
|
|
|
|
|
conf.clusterId == 0
|
|
|
|
|
conf.logLevel == logging.LogLevel.INFO
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "JSON with mode and clusterId":
|
|
|
|
|
## Given / When
|
|
|
|
|
let confRes = parseWakuNodeConfFromJson("""{"mode": "Core", "clusterId": 42}""")
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## Then
|
2026-03-03 19:17:54 +01:00
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2025-10-01 16:31:34 +10:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
conf.mode == Core
|
|
|
|
|
conf.clusterId == 42
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "JSON with Edge mode":
|
|
|
|
|
## Given / When
|
|
|
|
|
let confRes = parseWakuNodeConfFromJson("""{"mode": "Edge"}""")
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## Then
|
2026-03-03 19:17:54 +01:00
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2025-10-01 16:31:34 +10:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
conf.mode == Edge
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "JSON with logLevel":
|
|
|
|
|
## Given / When
|
|
|
|
|
let confRes = parseWakuNodeConfFromJson("""{"logLevel": "DEBUG"}""")
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
## Then
|
|
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2025-10-01 16:31:34 +10:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
conf.logLevel == logging.LogLevel.DEBUG
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "JSON with sharding config":
|
|
|
|
|
## Given / When
|
|
|
|
|
let confRes =
|
|
|
|
|
parseWakuNodeConfFromJson("""{"clusterId": 99, "numShardsInNetwork": 16}""")
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## Then
|
2026-03-03 19:17:54 +01:00
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2025-10-01 16:31:34 +10:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
conf.clusterId == 99
|
|
|
|
|
conf.numShardsInNetwork == 16
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "JSON with unknown fields is silently ignored":
|
|
|
|
|
## Given / When
|
|
|
|
|
let confRes =
|
|
|
|
|
parseWakuNodeConfFromJson("""{"unknownField": true, "clusterId": 5}""")
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
## Then - unknown fields are just ignored (not in fieldPairs)
|
|
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2025-10-01 16:31:34 +10:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
conf.clusterId == 5
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "Invalid JSON syntax returns error":
|
|
|
|
|
## Given / When
|
|
|
|
|
let confRes = parseWakuNodeConfFromJson("{ not valid json }")
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
## Then
|
|
|
|
|
check confRes.isErr()
|
2025-10-01 16:31:34 +10:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
suite "WakuNodeConf - preset integration":
|
|
|
|
|
test "TWN preset applies TheWakuNetworkConf":
|
2025-10-01 16:31:34 +10:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
var conf = defaultWakuNodeConf().valueOr:
|
|
|
|
|
raiseAssert error
|
|
|
|
|
conf.preset = "twn"
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2025-10-01 16:31:34 +10:00
|
|
|
|
|
|
|
|
## Then
|
|
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
|
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.clusterId == 1
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "LogosDev preset applies LogosDevConf":
|
2026-02-17 10:38:35 +01:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
var conf = defaultWakuNodeConf().valueOr:
|
|
|
|
|
raiseAssert error
|
|
|
|
|
conf.preset = "logosdev"
|
2026-02-17 10:38:35 +01:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
## Then
|
|
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
2026-02-17 10:38:35 +01:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.clusterId == 2
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "Invalid preset returns error":
|
2026-02-17 10:38:35 +01:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
var conf = defaultWakuNodeConf().valueOr:
|
|
|
|
|
raiseAssert error
|
|
|
|
|
conf.preset = "nonexistent"
|
2026-02-17 10:38:35 +01:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
|
|
|
|
## Then
|
2026-03-03 19:17:54 +01:00
|
|
|
check wakuConfRes.isErr()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
suite "WakuNodeConf JSON -> WakuConf integration":
|
|
|
|
|
test "Core mode JSON config produces valid WakuConf":
|
2026-02-17 10:38:35 +01:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
let confRes = parseWakuNodeConfFromJson(
|
|
|
|
|
"""{"mode": "Core", "clusterId": 55, "numShardsInNetwork": 6}"""
|
2026-02-17 10:38:35 +01:00
|
|
|
)
|
2026-03-03 19:17:54 +01:00
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
## Then
|
|
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
2026-02-17 10:38:35 +01:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.relay == true
|
|
|
|
|
wakuConf.lightPush == true
|
|
|
|
|
wakuConf.peerExchangeService == true
|
|
|
|
|
wakuConf.clusterId == 55
|
|
|
|
|
wakuConf.shardingConf.numShardsInCluster == 6
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "Edge mode JSON config produces valid WakuConf":
|
2026-02-17 10:38:35 +01:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
let confRes = parseWakuNodeConfFromJson("""{"mode": "Edge", "clusterId": 1}""")
|
|
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
## When
|
|
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
|
|
|
|
## Then
|
2026-03-03 19:17:54 +01:00
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
2026-02-17 10:38:35 +01:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.relay == false
|
|
|
|
|
wakuConf.lightPush == false
|
|
|
|
|
wakuConf.peerExchangeService == true
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "JSON with preset produces valid WakuConf":
|
2026-02-17 10:38:35 +01:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
let confRes =
|
|
|
|
|
parseWakuNodeConfFromJson("""{"mode": "Core", "preset": "logosdev"}""")
|
|
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
## Then
|
|
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
2026-02-17 10:38:35 +01:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.clusterId == 2
|
|
|
|
|
wakuConf.relay == true
|
|
|
|
|
|
|
|
|
|
test "JSON with static nodes":
|
2026-02-17 10:38:35 +01:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
let confRes = parseWakuNodeConfFromJson(
|
|
|
|
|
"""{"mode": "Core", "clusterId": 42, "staticnodes": ["/ip4/127.0.0.1/tcp/60000/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"]}"""
|
|
|
|
|
)
|
|
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
|
|
|
|
## Then
|
2026-03-03 19:17:54 +01:00
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
2026-02-17 10:38:35 +01:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.staticNodes.len == 1
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
test "JSON with max message size":
|
2026-02-17 10:38:35 +01:00
|
|
|
## Given
|
2026-03-03 19:17:54 +01:00
|
|
|
let confRes =
|
|
|
|
|
parseWakuNodeConfFromJson("""{"clusterId": 42, "maxMessageSize": "100KiB"}""")
|
|
|
|
|
require confRes.isOk()
|
|
|
|
|
let conf = confRes.get()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
|
|
|
|
## When
|
2026-03-03 19:17:54 +01:00
|
|
|
let wakuConfRes = conf.toWakuConf()
|
2026-02-17 10:38:35 +01:00
|
|
|
|
|
|
|
|
## Then
|
2026-03-03 19:17:54 +01:00
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
2026-02-17 10:38:35 +01:00
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.maxMessageSizeBytes == 100'u64 * 1024'u64
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
# ---- Deprecated NodeConfig tests (kept for backward compatibility) ----
|
2026-02-17 10:38:35 +01:00
|
|
|
|
2026-03-03 19:17:54 +01:00
|
|
|
{.push warning[Deprecated]: off.}
|
|
|
|
|
|
|
|
|
|
import waku/api/api_conf
|
|
|
|
|
|
|
|
|
|
suite "NodeConfig (deprecated) - toWakuConf":
|
|
|
|
|
test "Minimal configuration":
|
|
|
|
|
let nodeConfig = NodeConfig.init(ethRpcEndpoints = @["http://someaddress"])
|
|
|
|
|
let wakuConfRes = api_conf.toWakuConf(nodeConfig)
|
|
|
|
|
let wakuConf = wakuConfRes.valueOr:
|
|
|
|
|
raiseAssert error
|
|
|
|
|
wakuConf.validate().isOkOr:
|
|
|
|
|
raiseAssert error
|
|
|
|
|
check:
|
|
|
|
|
wakuConf.clusterId == 1
|
|
|
|
|
wakuConf.shardingConf.numShardsInCluster == 8
|
|
|
|
|
wakuConf.staticNodes.len == 0
|
|
|
|
|
|
|
|
|
|
test "Edge mode configuration":
|
|
|
|
|
let protocolsConfig = ProtocolsConfig.init(entryNodes = @[], clusterId = 1)
|
|
|
|
|
let nodeConfig =
|
|
|
|
|
NodeConfig.init(mode = api_conf.WakuMode.Edge, protocolsConfig = protocolsConfig)
|
|
|
|
|
let wakuConfRes = api_conf.toWakuConf(nodeConfig)
|
2026-02-17 10:38:35 +01:00
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
|
|
|
|
check:
|
2026-03-03 19:17:54 +01:00
|
|
|
wakuConf.relay == false
|
|
|
|
|
wakuConf.lightPush == false
|
|
|
|
|
wakuConf.peerExchangeService == true
|
|
|
|
|
|
|
|
|
|
test "Core mode configuration":
|
|
|
|
|
let protocolsConfig = ProtocolsConfig.init(entryNodes = @[], clusterId = 1)
|
|
|
|
|
let nodeConfig =
|
|
|
|
|
NodeConfig.init(mode = api_conf.WakuMode.Core, protocolsConfig = protocolsConfig)
|
|
|
|
|
let wakuConfRes = api_conf.toWakuConf(nodeConfig)
|
|
|
|
|
require wakuConfRes.isOk()
|
|
|
|
|
let wakuConf = wakuConfRes.get()
|
|
|
|
|
require wakuConf.validate().isOk()
|
|
|
|
|
check:
|
|
|
|
|
wakuConf.relay == true
|
|
|
|
|
wakuConf.lightPush == true
|
|
|
|
|
wakuConf.peerExchangeService == true
|
|
|
|
|
|
|
|
|
|
{.pop.}
|