From 5fc8c59f54bbd14e5fde2e29f01553625bb5eefd Mon Sep 17 00:00:00 2001 From: Darshan K <35736874+darshankabariya@users.noreply.github.com> Date: Wed, 10 Sep 2025 13:20:37 +0530 Subject: [PATCH] chore: bump dependencies to v0.37.0 (#3536) --- .github/workflows/windows-build.yml | 1 - Makefile | 2 +- apps/networkmonitor/networkmonitor_config.nim | 5 ++ apps/networkmonitor/networkmonitor_utils.nim | 2 +- docker/binaries/Dockerfile.bn.amd64 | 2 +- .../requests/peer_manager_request.nim | 2 +- scripts/build_windows.sh | 3 -- tests/waku_store_sync/test_protocol.nim | 8 ++-- vendor/nim-bearssl | 2 +- vendor/nim-chronicles | 2 +- vendor/nim-dnsdisc | 2 +- vendor/nim-eth | 2 +- vendor/nim-faststreams | 2 +- vendor/nim-json-rpc | 2 +- vendor/nim-json-serialization | 2 +- vendor/nim-libbacktrace | 2 +- vendor/nim-libp2p | 2 +- vendor/nim-minilru | 2 +- vendor/nim-nat-traversal | 2 +- vendor/nim-presto | 2 +- vendor/nim-secp256k1 | 2 +- vendor/nim-serialization | 2 +- vendor/nim-sqlite3-abi | 2 +- vendor/nim-stew | 2 +- vendor/nim-stint | 2 +- vendor/nim-web3 | 2 +- vendor/nimbus-build-system | 2 +- vendor/nimcrypto | 2 +- vendor/waku-rlnv2-contract | 2 +- waku/common/databases/db_postgres/dbconn.nim | 2 +- waku/common/envvar_serialization/reader.nim | 7 ++- waku/node/delivery_monitor/send_monitor.nim | 2 +- waku/node/peer_manager/peer_manager.nim | 2 +- waku/node/waku_switch.nim | 3 +- waku/waku_api/rest/serdes.nim | 46 ++++++++++++------- waku/waku_store/client.nim | 2 +- waku/waku_store_sync/transfer.nim | 2 +- 37 files changed, 76 insertions(+), 57 deletions(-) diff --git a/.github/workflows/windows-build.yml b/.github/workflows/windows-build.yml index 52cd7f91a..ed6d2cb17 100644 --- a/.github/workflows/windows-build.yml +++ b/.github/workflows/windows-build.yml @@ -71,7 +71,6 @@ jobs: - name: Building miniupnpc run: | cd vendor/nim-nat-traversal/vendor/miniupnp/miniupnpc - git checkout little_chore_windows_support make -f Makefile.mingw CC=gcc CXX=g++ libminiupnpc.a V=1 cd ../../../../.. diff --git a/Makefile b/Makefile index f8d09c7ac..145d39b95 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,7 @@ ifeq ($(detected_OS),Windows) NIM_PARAMS += --passL:"-Lvendor/nim-nat-traversal/vendor/miniupnp/miniupnpc" NIM_PARAMS += --passL:"-Lvendor/nim-nat-traversal/vendor/libnatpmp-upstream" - LIBS = -static -lws2_32 -lbcrypt -liphlpapi -luserenv -lntdll -lminiupnpc -lnatpmp -lpq + LIBS = -lws2_32 -lbcrypt -liphlpapi -luserenv -lntdll -lminiupnpc -lnatpmp -lpq NIM_PARAMS += $(foreach lib,$(LIBS),--passL:"$(lib)") endif diff --git a/apps/networkmonitor/networkmonitor_config.nim b/apps/networkmonitor/networkmonitor_config.nim index 8f5298a53..93fd27b6b 100644 --- a/apps/networkmonitor/networkmonitor_config.nim +++ b/apps/networkmonitor/networkmonitor_config.nim @@ -7,8 +7,13 @@ import results, regex +const git_version* {.strdefine.} = "n/a" + type EthRpcUrl* = distinct string +proc `$`*(u: EthRpcUrl): string = + string(u) + type NetworkMonitorConf* = object logLevel* {. desc: "Sets the log level", diff --git a/apps/networkmonitor/networkmonitor_utils.nim b/apps/networkmonitor/networkmonitor_utils.nim index 25b79da65..0e89c4a5f 100644 --- a/apps/networkmonitor/networkmonitor_utils.nim +++ b/apps/networkmonitor/networkmonitor_utils.nim @@ -31,7 +31,7 @@ proc decodeBytes*( try: let jsonContent = parseJson(res) if $jsonContent["status"].getStr() != "success": - error "query failed", result = jsonContent + error "query failed", result = $jsonContent return err("query failed") return ok( NodeLocation( diff --git a/docker/binaries/Dockerfile.bn.amd64 b/docker/binaries/Dockerfile.bn.amd64 index d5495516b..7fba7ceae 100644 --- a/docker/binaries/Dockerfile.bn.amd64 +++ b/docker/binaries/Dockerfile.bn.amd64 @@ -1,5 +1,5 @@ # Dockerfile to build a distributable container image from pre-existing binaries -FROM debian:stable-slim AS prod +FROM debian:bookworm-slim AS prod ARG MAKE_TARGET=wakunode2 diff --git a/library/waku_thread_requests/requests/peer_manager_request.nim b/library/waku_thread_requests/requests/peer_manager_request.nim index 28617ce09..cac5ca30e 100644 --- a/library/waku_thread_requests/requests/peer_manager_request.nim +++ b/library/waku_thread_requests/requests/peer_manager_request.nim @@ -1,4 +1,4 @@ -import std/[sequtils, strutils] +import std/[sequtils, strutils, tables] import chronicles, chronos, results, options, json import ../../../waku/factory/waku, diff --git a/scripts/build_windows.sh b/scripts/build_windows.sh index e56fb8871..c9d4bd860 100755 --- a/scripts/build_windows.sh +++ b/scripts/build_windows.sh @@ -37,13 +37,10 @@ cd ../../../.. echo "6. -.-.-.- Building libunwind -.-.-.-" cd vendor/nim-libbacktrace execute_command "make all V=1 -j8" -execute_command "make install/usr/lib/libunwind.a V=1 -j8" -cp ./vendor/libunwind/build/lib/libunwind.a install/usr/lib cd ../../ echo "7. -.-.-.- Building miniupnpc -.-.-.- " cd vendor/nim-nat-traversal/vendor/miniupnp/miniupnpc -execute_command "git checkout little_chore_windows_support" execute_command "make -f Makefile.mingw CC=gcc CXX=g++ libminiupnpc.a V=1 -j8" cd ../../../../.. diff --git a/tests/waku_store_sync/test_protocol.nim b/tests/waku_store_sync/test_protocol.nim index c606934cf..552d9ca4f 100644 --- a/tests/waku_store_sync/test_protocol.nim +++ b/tests/waku_store_sync/test_protocol.nim @@ -405,9 +405,9 @@ suite "Waku Sync: reconciliation": let (_, deliveredHash) = await remoteNeeds.get() check deliveredHash in diffMsgHashes - asyncTest "sync 2 nodes, 40 msgs: 20 in-window diff, 20 out-window ignored": + asyncTest "sync 2 nodes, 40 msgs: 18 in-window diff, 20 out-window ignored": const - diffInWin = 20 + diffInWin = 18 diffOutWin = 20 stepOutNs = 100_000_000'u64 outOffsetNs = 2_300_000_000'u64 # for 20 mesg they sent 2 seconds earlier @@ -424,7 +424,7 @@ suite "Waku Sync: reconciliation": var inWinHashes, outWinHashes: HashSet[WakuMessageHash] - var ts = sliceStart + var ts = sliceStart + (Timestamp(stepIn) * 2) for _ in 0 ..< diffInWin: let msg = fakeWakuMessage(ts = Timestamp ts, contentTopic = DefaultContentTopic) let hash = computeMessageHash(DefaultPubsubTopic, msg) @@ -462,7 +462,7 @@ suite "Waku Sync: reconciliation": check remoteNeeds.len == diffInWin for _ in 0 ..< diffInWin: - let (_, deliveredHashes) = await remoteNeeds.get() + let (_, deliveredHashes) = await remoteNeeds.popFirst() check deliveredHashes in inWinHashes check deliveredHashes notin outWinHashes diff --git a/vendor/nim-bearssl b/vendor/nim-bearssl index 667b40440..11e798b62 160000 --- a/vendor/nim-bearssl +++ b/vendor/nim-bearssl @@ -1 +1 @@ -Subproject commit 667b40440a53a58e9f922e29e20818720c62d9ac +Subproject commit 11e798b62b8e6beabe958e048e9e24c7e0f9ee63 diff --git a/vendor/nim-chronicles b/vendor/nim-chronicles index a8fb38a10..54f5b7260 160000 --- a/vendor/nim-chronicles +++ b/vendor/nim-chronicles @@ -1 +1 @@ -Subproject commit a8fb38a10bcb548df78e9a70bd77b26bb50abd12 +Subproject commit 54f5b726025e8c7385e3a6529d3aa27454c6e6ff diff --git a/vendor/nim-dnsdisc b/vendor/nim-dnsdisc index c3d37c286..b71d029f4 160000 --- a/vendor/nim-dnsdisc +++ b/vendor/nim-dnsdisc @@ -1 +1 @@ -Subproject commit c3d37c2860bcef9e3e2616ee4c53100fe7f0e845 +Subproject commit b71d029f4da4ec56974d54c04518bada00e1b623 diff --git a/vendor/nim-eth b/vendor/nim-eth index a1f7d63ab..d9135e6c3 160000 --- a/vendor/nim-eth +++ b/vendor/nim-eth @@ -1 +1 @@ -Subproject commit a1f7d63ababa6ce90798e16a110fc4e43ac93f03 +Subproject commit d9135e6c3c5d6d819afdfb566aa8d958756b73a8 diff --git a/vendor/nim-faststreams b/vendor/nim-faststreams index c51315d0a..c3ac3f639 160000 --- a/vendor/nim-faststreams +++ b/vendor/nim-faststreams @@ -1 +1 @@ -Subproject commit c51315d0ae5eb2594d0bf41181d0e1aca1b3c01d +Subproject commit c3ac3f639ed1d62f59d3077d376a29c63ac9750c diff --git a/vendor/nim-json-rpc b/vendor/nim-json-rpc index cbe8edf69..9665c2650 160000 --- a/vendor/nim-json-rpc +++ b/vendor/nim-json-rpc @@ -1 +1 @@ -Subproject commit cbe8edf69d743a787b76b1cd25bfc4eae89927f7 +Subproject commit 9665c265035f49f5ff94bbffdeadde68e19d6221 diff --git a/vendor/nim-json-serialization b/vendor/nim-json-serialization index 2b1c5eb11..0640259af 160000 --- a/vendor/nim-json-serialization +++ b/vendor/nim-json-serialization @@ -1 +1 @@ -Subproject commit 2b1c5eb11df3647a2cee107cd4cce3593cbb8bcf +Subproject commit 0640259af2fad330ea28e77359c0d0cefac5a361 diff --git a/vendor/nim-libbacktrace b/vendor/nim-libbacktrace index 822849874..d8bd4ce5c 160000 --- a/vendor/nim-libbacktrace +++ b/vendor/nim-libbacktrace @@ -1 +1 @@ -Subproject commit 822849874926ba3849a86cb3eafdf017bd11bd2d +Subproject commit d8bd4ce5c46bb6d2f984f6b3f3d7380897d95ecb diff --git a/vendor/nim-libp2p b/vendor/nim-libp2p index cd60b254a..5eaa43b86 160000 --- a/vendor/nim-libp2p +++ b/vendor/nim-libp2p @@ -1 +1 @@ -Subproject commit cd60b254a0700b0daac7a6cb2c0c48860b57c539 +Subproject commit 5eaa43b8608221a615e442587f27520a49a56460 diff --git a/vendor/nim-minilru b/vendor/nim-minilru index 2682cffa8..0c4b2bce9 160000 --- a/vendor/nim-minilru +++ b/vendor/nim-minilru @@ -1 +1 @@ -Subproject commit 2682cffa8733f3b61751c65a963941315e887bac +Subproject commit 0c4b2bce959591f0a862e9b541ba43c6d0cf3476 diff --git a/vendor/nim-nat-traversal b/vendor/nim-nat-traversal index dfbf8c9ad..860e18c37 160000 --- a/vendor/nim-nat-traversal +++ b/vendor/nim-nat-traversal @@ -1 +1 @@ -Subproject commit dfbf8c9ad3655f238b350f690bbfce5ec34d25fb +Subproject commit 860e18c37667b5dd005b94c63264560c35d88004 diff --git a/vendor/nim-presto b/vendor/nim-presto index 3ccb35622..92b1c7ff1 160000 --- a/vendor/nim-presto +++ b/vendor/nim-presto @@ -1 +1 @@ -Subproject commit 3ccb356220b70f7d9eb0fbd58b674c4080f78014 +Subproject commit 92b1c7ff141e6920e1f8a98a14c35c1fa098e3be diff --git a/vendor/nim-secp256k1 b/vendor/nim-secp256k1 index f808ed5e7..9dd3df621 160000 --- a/vendor/nim-secp256k1 +++ b/vendor/nim-secp256k1 @@ -1 +1 @@ -Subproject commit f808ed5e7a7bfc42204ec7830f14b7a42b63c284 +Subproject commit 9dd3df62124aae79d564da636bb22627c53c7676 diff --git a/vendor/nim-serialization b/vendor/nim-serialization index 2086c9960..6f525d544 160000 --- a/vendor/nim-serialization +++ b/vendor/nim-serialization @@ -1 +1 @@ -Subproject commit 2086c99608b4bf472e1ef5fe063710f280243396 +Subproject commit 6f525d5447d97256750ca7856faead03e562ed20 diff --git a/vendor/nim-sqlite3-abi b/vendor/nim-sqlite3-abi index d08e96487..bdf01cf42 160000 --- a/vendor/nim-sqlite3-abi +++ b/vendor/nim-sqlite3-abi @@ -1 +1 @@ -Subproject commit d08e964872271e83fb1b6de67ad57c2d0fcdfe63 +Subproject commit bdf01cf4236fb40788f0733466cdf6708783cbac diff --git a/vendor/nim-stew b/vendor/nim-stew index 58abb4891..e57400149 160000 --- a/vendor/nim-stew +++ b/vendor/nim-stew @@ -1 +1 @@ -Subproject commit 58abb4891f97c6cdc07335e868414e0c7b736c68 +Subproject commit e5740014961438610d336cd81706582dbf2c96f0 diff --git a/vendor/nim-stint b/vendor/nim-stint index 1a2c661e3..470b78925 160000 --- a/vendor/nim-stint +++ b/vendor/nim-stint @@ -1 +1 @@ -Subproject commit 1a2c661e3f50ff696b0b6692fab0d7bb2abf10cc +Subproject commit 470b7892561b5179ab20bd389a69217d6213fe58 diff --git a/vendor/nim-web3 b/vendor/nim-web3 index 3ef986c9d..81ee8ce47 160000 --- a/vendor/nim-web3 +++ b/vendor/nim-web3 @@ -1 +1 @@ -Subproject commit 3ef986c9d93604775595f116a35c6ac0bf5257fc +Subproject commit 81ee8ce479d86acb73be7c4f365328e238d9b4a3 diff --git a/vendor/nimbus-build-system b/vendor/nimbus-build-system index 0be0663e1..e6c2c9da3 160000 --- a/vendor/nimbus-build-system +++ b/vendor/nimbus-build-system @@ -1 +1 @@ -Subproject commit 0be0663e1af76e869837226a4ef3e586fcc737d3 +Subproject commit e6c2c9da39c2d368d9cf420ac22692e99715d22c diff --git a/vendor/nimcrypto b/vendor/nimcrypto index 19c41d6be..721fb99ee 160000 --- a/vendor/nimcrypto +++ b/vendor/nimcrypto @@ -1 +1 @@ -Subproject commit 19c41d6be4c00b4a2c8000583bd30cf8ceb5f4b1 +Subproject commit 721fb99ee099b632eb86dfad1f0d96ee87583774 diff --git a/vendor/waku-rlnv2-contract b/vendor/waku-rlnv2-contract index b7e9a9b1b..900d4f95e 160000 --- a/vendor/waku-rlnv2-contract +++ b/vendor/waku-rlnv2-contract @@ -1 +1 @@ -Subproject commit b7e9a9b1bc69256a2a3076c1f099b50ce84e7eff +Subproject commit 900d4f95e0e618bdeb4c241f7a4b6347df6bb950 diff --git a/waku/common/databases/db_postgres/dbconn.nim b/waku/common/databases/db_postgres/dbconn.nim index 317cc3003..66cc88e15 100644 --- a/waku/common/databases/db_postgres/dbconn.nim +++ b/waku/common/databases/db_postgres/dbconn.nim @@ -1,5 +1,5 @@ import - std/[times, strutils, os, sets, strformat], + std/[times, strutils, os, sets, strformat, tables], results, chronos, chronos/threadsync, diff --git a/waku/common/envvar_serialization/reader.nim b/waku/common/envvar_serialization/reader.nim index 66869e3b4..ef0f47ac1 100644 --- a/waku/common/envvar_serialization/reader.nim +++ b/waku/common/envvar_serialization/reader.nim @@ -96,7 +96,12 @@ proc readValue*[T](r: var EnvvarReader, value: var T) {.raises: [SerializationEr var reader = findFieldReader(fields[], fieldName, expectedFieldPos) if reader != nil: - reader(value, r) + try: + reader(value, r) + except ValueError, IOError: + raise newException( + SerializationError, "Couldn't read field: " & getCurrentExceptionMsg() + ) discard r.key.pop() else: const typeName = typetraits.name(T) diff --git a/waku/node/delivery_monitor/send_monitor.nim b/waku/node/delivery_monitor/send_monitor.nim index adc9f03bd..1d3d71f16 100644 --- a/waku/node/delivery_monitor/send_monitor.nim +++ b/waku/node/delivery_monitor/send_monitor.nim @@ -1,7 +1,7 @@ ## This module reinforces the publish operation with regular store-v3 requests. ## -import std/sequtils +import std/[sequtils, tables] import chronos, chronicles, libp2p/utility import ./delivery_callback, diff --git a/waku/node/peer_manager/peer_manager.nim b/waku/node/peer_manager/peer_manager.nim index e4ac119db..e9fc36b86 100644 --- a/waku/node/peer_manager/peer_manager.nim +++ b/waku/node/peer_manager/peer_manager.nim @@ -1,7 +1,7 @@ {.push raises: [].} import - std/[options, sets, sequtils, times, strformat, strutils, math, random], + std/[options, sets, sequtils, times, strformat, strutils, math, random, tables], chronos, chronicles, metrics, diff --git a/waku/node/waku_switch.nim b/waku/node/waku_switch.nim index cc99f46ae..099158bb3 100644 --- a/waku/node/waku_switch.nim +++ b/waku/node/waku_switch.nim @@ -53,7 +53,8 @@ proc withWssTransport*( upgr, tlsPrivateKey = key, tlsCertificate = cert, - {TLSFlags.NoVerifyHost, TLSFlags.NoVerifyServerName}, + autotls = nil, # required 5th param + tlsFlags = {TLSFlags.NoVerifyHost, TLSFlags.NoVerifyServerName}, ) ) diff --git a/waku/waku_api/rest/serdes.nim b/waku/waku_api/rest/serdes.nim index d54d17e78..23b9e374e 100644 --- a/waku/waku_api/rest/serdes.nim +++ b/waku/waku_api/rest/serdes.nim @@ -40,30 +40,42 @@ proc readValue*( value = Base64String(reader.readValue(string)) proc decodeFromJsonString*[T]( - t: typedesc[T], data: JsonString, requireAllFields = true + t: typedesc[T], data: JsonString, requireAllFields: bool = true ): SerdesResult[T] = try: - ok( - RestJson.decode( - string(data), T, requireAllFields = requireAllFields, allowUnknownFields = true + if requireAllFields: + ok( + RestJson.decode( + string(data), T, requireAllFields = true, allowUnknownFields = true + ) + ) + else: + ok( + RestJson.decode( + string(data), T, requireAllFields = false, allowUnknownFields = true + ) ) - ) except SerializationError: # TODO: Do better error reporting here err("Unable to deserialize data") +# Internal static implementation proc decodeFromJsonBytes*[T]( - t: typedesc[T], data: openArray[byte], requireAllFields = true + t: typedesc[T], data: openArray[byte], requireAllFields: bool = true ): SerdesResult[T] = try: - ok( - RestJson.decode( - string.fromBytes(data), - T, - requireAllFields = requireAllFields, - allowUnknownFields = true, + if requireAllFields: + ok( + RestJson.decode( + string.fromBytes(data), T, requireAllFields = true, allowUnknownFields = true + ) + ) + else: + ok( + RestJson.decode( + string.fromBytes(data), T, requireAllFields = false, allowUnknownFields = true + ) ) - ) except SerializationError: err("Unable to deserialize data: " & getCurrentExceptionMsg()) @@ -95,16 +107,16 @@ proc encodeIntoJsonBytes*(value: auto): SerdesResult[seq[byte]] = #### helpers -proc encodeString*(value: string): RestResult[string] = +proc encodeString*(value: string): SerdesResult[string] = ok(value) -proc decodeString*(t: typedesc[string], value: string): RestResult[string] = +proc decodeString*(t: typedesc[string], value: string): SerdesResult[string] = ok(value) -proc encodeString*(value: SomeUnsignedInt): RestResult[string] = +proc encodeString*(value: SomeUnsignedInt): SerdesResult[string] = ok(Base10.toString(value)) -proc decodeString*(T: typedesc[SomeUnsignedInt], value: string): RestResult[T] = +proc decodeString*(T: typedesc[SomeUnsignedInt], value: string): SerdesResult[T] = let v = Base10.decode(T, value) if v.isErr(): return err(v.error()) diff --git a/waku/waku_store/client.nim b/waku/waku_store/client.nim index c5885e8d5..27e92ab86 100644 --- a/waku/waku_store/client.nim +++ b/waku/waku_store/client.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/options, results, chronicles, chronos, metrics, bearssl/rand +import std/[options, tables], results, chronicles, chronos, metrics, bearssl/rand import ../node/peer_manager, ../utils/requests, ./protocol_metrics, ./common, ./rpc_codec diff --git a/waku/waku_store_sync/transfer.nim b/waku/waku_store_sync/transfer.nim index 783cbffb6..4dd663e98 100644 --- a/waku/waku_store_sync/transfer.nim +++ b/waku/waku_store_sync/transfer.nim @@ -1,7 +1,7 @@ {.push raises: [].} import - std/sets, + std/[sets, tables], results, chronicles, chronos,