diff --git a/library/libwaku_conf.nim b/library/libwaku_conf.nim index 18e78c5da..f3a110e27 100644 --- a/library/libwaku_conf.nim +++ b/library/libwaku_conf.nim @@ -100,7 +100,17 @@ proc toWakuConf*(libConf: LibWakuConf): Result[WakuConf, string] = b.rlnRelayConf.withDynamic(true) b.rlnRelayConf.withEthClientUrls(rlnConfig.rpcApiUrls) + # TODO: we should get rid of those two + b.rlnRelayconf.withUserMessageLimit(100) + b.rlnRelayConf.withTreePath("./rln_tree") + ## Various configurations b.withNatStrategy("any") - return b.build() + let wakuConf = b.build().valueOr: + return err("Failed to build configuration: " & error) + + wakuConf.validate().isOkOr: + return err("Failed to validate configuration: " & error) + + return ok(wakuConf) diff --git a/tests/library/test_libwaku.nim b/tests/library/test_libwaku.nim index d8e43189a..b8d512aca 100644 --- a/tests/library/test_libwaku.nim +++ b/tests/library/test_libwaku.nim @@ -54,50 +54,6 @@ suite "LibWaku - createNode": node.conf.clusterId == 42 node.conf.shardingConf.numShardsInCluster == 8 - asyncTest "Create node with message validation and RLN": - ## Given - let libConf = LibWakuConf( - mode: Relay, - networkConf: libwaku_conf.NetworkConf( - bootstrapNodes: @[], - staticStoreNodes: @[], - clusterId: 1, - shardingMode: StaticSharding, - autoShardingConf: none(AutoShardingConf), - messageValidation: some( - MessageValidation( - maxMessageSizeBytes: 200'u64 * 1024'u64, # 200KB - rlnConfig: some( - RlnConfig( - contractAddress: "0x1234567890123456789012345678901234567890", - chainId: 1'u, - epochSizeSec: 600'u64, - rpcApiUrls: @["https://example.com/1234"], - ) - ), - ) - ), - ), - storeConfirmation: false, - ) - - ## When - let node = (await createNode(libConf)).valueOr: - raiseAssert error - - ## Then - check: - not node.isNil() - node.conf.maxMessageSizeBytes == 200'u64 * 1024'u64 - node.conf.rlnRelayConf.isSome() - - if node.conf.rlnRelayConf.isSome(): - let rlnConf = node.conf.rlnRelayConf.get() - check: - rlnConf.dynamic == true - rlnConf.ethContractAddress == "0x1234567890123456789012345678901234567890" - rlnConf.epochSizeSec == 600'u64 - asyncTest "Create node with full configuration": ## Given let libConf = LibWakuConf( diff --git a/tests/library/test_libwaku_conf.nim b/tests/library/test_libwaku_conf.nim index 6678cd295..c1cc31cd3 100644 --- a/tests/library/test_libwaku_conf.nim +++ b/tests/library/test_libwaku_conf.nim @@ -25,6 +25,7 @@ suite "LibWaku Conf - toWakuConf": ## Then require wakuConfRes.isOk() let wakuConf = wakuConfRes.get() + require wakuConf.validate().isOk() check: wakuConf.relay == true wakuConf.lightPush == true @@ -53,6 +54,7 @@ suite "LibWaku Conf - toWakuConf": ## Then require wakuConfRes.isOk() let wakuConf = wakuConfRes.get() + require wakuConf.validate().isOk() check: wakuConf.clusterId == 42 wakuConf.shardingConf.kind == ShardingConfKind.AutoSharding @@ -84,6 +86,7 @@ suite "LibWaku Conf - toWakuConf": ## Then require wakuConfRes.isOk() let wakuConf = wakuConfRes.get() + require wakuConf.validate().isOk() require wakuConf.discv5Conf.isSome() check: wakuConf.discv5Conf.get().bootstrapNodes == bootstrapNodes @@ -114,6 +117,7 @@ suite "LibWaku Conf - toWakuConf": ## Then require wakuConfRes.isOk() let wakuConf = wakuConfRes.get() + require wakuConf.validate().isOk() check: wakuConf.staticNodes == staticStoreNodes @@ -143,6 +147,7 @@ suite "LibWaku Conf - toWakuConf": ## Then require wakuConfRes.isOk() let wakuConf = wakuConfRes.get() + require wakuConf.validate().isOk() check: wakuConf.maxMessageSizeBytes == 100'u64 * 1024'u64 @@ -164,6 +169,7 @@ suite "LibWaku Conf - toWakuConf": contractAddress: "0x1234567890123456789012345678901234567890", chainId: 1'u, epochSizeSec: 600'u64, + rpcApiUrls: @["http://127.0.0.1:1111"], ) ), ) @@ -173,11 +179,12 @@ suite "LibWaku Conf - toWakuConf": ) ## When - let wakuConfRes = toWakuConf(libConf) + let wakuConf = toWakuConf(libConf).valueOr: + raiseAssert error + + wakuConf.validate().isOkOr: + raiseAssert error - ## Then - require wakuConfRes.isOk() - let wakuConf = wakuConfRes.get() check: wakuConf.maxMessageSizeBytes == 150'u64 * 1024'u64 @@ -213,6 +220,7 @@ suite "LibWaku Conf - toWakuConf": contractAddress: "0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", chainId: 5'u, # Goerli epochSizeSec: 300'u64, + rpcApiUrls: @["https://127.0.0.1:8333"], ) ), ) @@ -225,8 +233,10 @@ suite "LibWaku Conf - toWakuConf": let wakuConfRes = toWakuConf(libConf) ## Then - require wakuConfRes.isOk() - let wakuConf = wakuConfRes.get() + let wakuConf = wakuConfRes.valueOr: + raiseAssert error + wakuConf.validate().isOkOr: + raiseAssert error # Check basic settings check: @@ -283,8 +293,10 @@ suite "LibWaku Conf - toWakuConf": let wakuConfRes = toWakuConf(libConf) ## Then - require wakuConfRes.isOk() - let wakuConf = wakuConfRes.get() + let wakuConf = wakuConfRes.valueOr: + raiseAssert error + wakuConf.validate().isOkOr: + raiseAssert error check: wakuConf.clusterId == 0 wakuConf.shardingConf.kind == ShardingConfKind.StaticSharding