From 13316201f76eed2c0dc1a6d3c452b3e9566050a3 Mon Sep 17 00:00:00 2001 From: Ivan FB <128452529+Ivansete-status@users.noreply.github.com> Date: Tue, 9 Jul 2024 13:14:28 +0200 Subject: [PATCH] chore: Bump dependencies for v0.31.0 (#2885) * bump_dependencies.md: add nim-results dependency * change imports stew/results to results * switching to Nim 2.0.8 * waku.nimble: reflect the requirement nim 1.6.0 to 2.0.8 Adding --mm:refc as nim 2.0 enables a new garbage collector that we're not yet ready to support * adapt waku code to Nim 2.0 * gcsafe adaptations because Nim 2.0 is more strict --- .github/ISSUE_TEMPLATE/bump_dependencies.md | 1 + .gitmodules | 5 +++ apps/benchmarks/benchmarks.nim | 2 +- apps/liteprotocoltester/filter_subscriber.nim | 2 +- .../lightpush_publisher.nim | 2 +- apps/liteprotocoltester/tester_config.nim | 2 +- apps/networkmonitor/networkmonitor.nim | 2 +- apps/networkmonitor/networkmonitor_config.nim | 2 +- .../networkmonitor/networkmonitor_metrics.nim | 2 +- apps/networkmonitor/networkmonitor_utils.nim | 2 +- examples/filter_subscriber.nim | 2 +- examples/lightpush_publisher.nim | 2 +- .../erc_5564_interface.nim | 2 +- .../stealth_commitment_protocol.nim | 2 +- .../wakustealthcommitments.nim | 3 +- examples/wakustealthcommitments/wire_spec.nim | 2 +- library/libwaku.nim | 10 +++--- library/nim.cfg | 1 + .../requests/debug_node_request.nim | 2 +- .../requests/discovery_request.nim | 2 +- .../requests/node_lifecycle_request.nim | 2 +- .../requests/peer_manager_request.nim | 2 +- .../requests/protocols/relay_request.nim | 2 +- .../requests/protocols/store_request.nim | 2 +- .../waku_thread_request.nim | 2 +- .../waku_thread_response.nim | 2 +- library/waku_thread/waku_thread.nim | 5 ++- tests/waku_core/test_namespaced_topics.nim | 2 +- tests/waku_store/store_utils.nim | 2 +- tools/rln_db_inspector/rln_db_inspector.nim | 2 +- .../rln_keystore_generator.nim | 2 +- vendor/db_connector | 1 + vendor/nim-bearssl | 2 +- vendor/nim-chronos | 2 +- vendor/nim-confutils | 2 +- vendor/nim-dnsdisc | 2 +- vendor/nim-faststreams | 2 +- vendor/nim-http-utils | 2 +- vendor/nim-json-serialization | 2 +- vendor/nim-libbacktrace | 2 +- vendor/nim-libp2p | 2 +- vendor/nim-metrics | 2 +- vendor/nim-nat-traversal | 2 +- vendor/nim-presto | 2 +- vendor/nim-results | 2 +- vendor/nim-secp256k1 | 2 +- vendor/nim-serialization | 2 +- vendor/nim-stew | 2 +- vendor/nim-stint | 2 +- vendor/nim-toml-serialization | 2 +- vendor/nim-unicodedb | 2 +- vendor/nimbus-build-system | 2 +- vendor/nimcrypto | 2 +- waku.nimble | 36 +++++++++++-------- waku/common/base64.nim | 2 +- waku/common/databases/common.nim | 2 +- waku/common/databases/db_postgres/dbconn.nim | 4 +-- .../databases/db_postgres/pgasyncpool.nim | 2 +- waku/common/databases/db_sqlite.nim | 12 ++++--- waku/common/databases/dburl.nim | 2 +- waku/common/enr/builder.nim | 2 +- waku/common/enr/typed_record.nim | 3 +- waku/common/logging.nim | 8 ++--- waku/common/utils/matterbridge_client.nim | 2 +- waku/common/utils/nat.nim | 2 +- waku/common/utils/parse_size_units.nim | 2 +- waku/discovery/waku_discv5.nim | 2 +- waku/factory/builder.nim | 2 +- waku/factory/external_config.nim | 5 +-- waku/factory/internal_config.nim | 2 +- waku/factory/waku.nim | 2 +- waku/node/config.nim | 4 +-- waku/node/peer_manager/peer_manager.nim | 12 ++++--- .../peer_manager/peer_store/migrations.nim | 2 +- .../peer_manager/peer_store/peer_storage.nim | 10 +++--- .../peer_store/waku_peer_storage.nim | 6 ++-- waku/node/waku_node.nim | 2 +- waku/utils/noise.nim | 2 +- waku/waku_api/handlers.nim | 2 +- waku/waku_api/message_cache.nim | 2 +- waku/waku_api/rest/builder.nim | 30 ++++++++-------- waku/waku_api/rest/health/client.nim | 2 +- waku/waku_api/rest/legacy_store/handlers.nim | 2 +- waku/waku_api/rest/lightpush/handlers.nim | 4 +-- waku/waku_api/rest/origin_handler.nim | 2 +- waku/waku_api/rest/relay/handlers.nim | 3 +- waku/waku_api/rest/responses.nim | 2 +- waku/waku_api/rest/rest_serdes.nim | 2 +- waku/waku_api/rest/serdes.nim | 2 +- waku/waku_api/rest/server.nim | 2 +- waku/waku_api/rest/store/handlers.nim | 2 +- waku/waku_archive/common.nim | 2 +- waku/waku_archive/driver.nim | 2 +- waku/waku_archive/driver/builder.nim | 2 +- .../driver/postgres_driver/migrations.nim | 2 +- .../postgres_driver/postgres_driver.nim | 6 ++-- .../postgres_driver/postgres_healthcheck.nim | 2 +- .../driver/queue_driver/queue_driver.nim | 7 ++-- .../driver/sqlite_driver/migrations.nim | 5 +-- .../driver/sqlite_driver/queries.nim | 10 +++--- .../driver/sqlite_driver/sqlite_driver.nim | 2 +- waku/waku_archive/retention_policy.nim | 2 +- .../waku_archive/retention_policy/builder.nim | 2 +- .../retention_policy_capacity.nim | 2 +- .../retention_policy_size.nim | 2 +- .../retention_policy_time.nim | 2 +- waku/waku_core/peers.nim | 2 +- .../subscription/subscription_manager.nim | 2 +- waku/waku_core/topics/content_topic.nim | 2 +- waku/waku_core/topics/parsing.nim | 2 +- waku/waku_core/topics/pubsub_topic.nim | 2 +- waku/waku_core/topics/sharding.nim | 2 +- waku/waku_enr/capabilities.nim | 3 +- waku/waku_enr/multiaddr.nim | 3 +- waku/waku_enr/sharding.nim | 3 +- waku/waku_filter_v2/common.nim | 2 +- waku/waku_keystore/conversion_utils.nim | 2 +- waku/waku_keystore/keyfile.nim | 2 +- waku/waku_keystore/protocol_types.nim | 10 +++--- waku/waku_lightpush/client.nim | 2 +- waku/waku_lightpush/common.nim | 2 +- waku/waku_lightpush/protocol.nim | 3 +- waku/waku_lightpush/self_req_handler.nim | 2 +- waku/waku_metadata/protocol.nim | 2 +- .../waku_noise/noise_handshake_processing.nim | 2 +- waku/waku_peer_exchange/protocol.nim | 2 +- waku/waku_relay/message_id.nim | 5 +-- waku/waku_relay/protocol.nim | 3 +- .../group_manager/group_manager_base.nim | 9 ++--- waku/waku_rln_relay/nonce_manager.nim | 4 +-- waku/waku_rln_relay/rln/wrappers.nim | 3 +- waku/waku_rln_relay/rln_relay.nim | 15 ++++---- waku/waku_store/client.nim | 4 +-- waku/waku_store/common.nim | 2 +- waku/waku_store/protocol.nim | 2 +- waku/waku_store/self_req_handler.nim | 2 +- waku/waku_store_legacy/client.nim | 2 +- waku/waku_store_legacy/common.nim | 2 +- waku/waku_store_legacy/protocol.nim | 2 +- waku/waku_store_legacy/rpc.nim | 2 +- waku/waku_store_legacy/self_req_handler.nim | 2 +- 141 files changed, 239 insertions(+), 227 deletions(-) create mode 100644 library/nim.cfg create mode 160000 vendor/db_connector diff --git a/.github/ISSUE_TEMPLATE/bump_dependencies.md b/.github/ISSUE_TEMPLATE/bump_dependencies.md index 271f4e1f6..cbfe49f30 100644 --- a/.github/ISSUE_TEMPLATE/bump_dependencies.md +++ b/.github/ISSUE_TEMPLATE/bump_dependencies.md @@ -31,6 +31,7 @@ Update `nwaku` "vendor" dependencies. - [ ] nim-nat-traversal - [ ] nim-presto - [ ] nim-regex ( update to the latest tag version ) +- [ ] nim-results - [ ] nim-secp256k1 - [ ] nim-serialization - [ ] nim-sqlite3-abi ( update to the latest tag version ) diff --git a/.gitmodules b/.gitmodules index 0a1488063..57ddea4d4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -164,3 +164,8 @@ branch = master path = vendor/nim-results url = https://github.com/arnetheduck/nim-results.git +[submodule "vendor/db_connector"] + path = vendor/db_connector + url = https://github.com/nim-lang/db_connector.git + ignore = untracked + branch = master diff --git a/apps/benchmarks/benchmarks.nim b/apps/benchmarks/benchmarks.nim index 986ffb376..655954a24 100644 --- a/apps/benchmarks/benchmarks.nim +++ b/apps/benchmarks/benchmarks.nim @@ -1,7 +1,7 @@ import math, std/sequtils, - stew/results, + results, options, waku/[ waku_rln_relay/protocol_types, diff --git a/apps/liteprotocoltester/filter_subscriber.nim b/apps/liteprotocoltester/filter_subscriber.nim index e63d3be3c..1e12a27f2 100644 --- a/apps/liteprotocoltester/filter_subscriber.nim +++ b/apps/liteprotocoltester/filter_subscriber.nim @@ -8,7 +8,7 @@ import chronos, chronos/timer as chtimer, stew/byteutils, - stew/results, + results, serialization, json_serialization as js, times diff --git a/apps/liteprotocoltester/lightpush_publisher.nim b/apps/liteprotocoltester/lightpush_publisher.nim index f9e4c11e1..0cafbe853 100644 --- a/apps/liteprotocoltester/lightpush_publisher.nim +++ b/apps/liteprotocoltester/lightpush_publisher.nim @@ -4,7 +4,7 @@ import chronicles, chronos, stew/byteutils, - stew/results, + results, json_serialization as js import waku/[common/logging, waku_node, node/peer_manager, waku_core, waku_lightpush/client], diff --git a/apps/liteprotocoltester/tester_config.nim b/apps/liteprotocoltester/tester_config.nim index e7f4d69df..468831357 100644 --- a/apps/liteprotocoltester/tester_config.nim +++ b/apps/liteprotocoltester/tester_config.nim @@ -1,6 +1,6 @@ import std/[strutils, strformat], - stew/results, + results, chronos, regex, confutils, diff --git a/apps/networkmonitor/networkmonitor.nim b/apps/networkmonitor/networkmonitor.nim index 1d392bea4..fe4062b35 100644 --- a/apps/networkmonitor/networkmonitor.nim +++ b/apps/networkmonitor/networkmonitor.nim @@ -2,7 +2,7 @@ import std/[tables, strutils, times, sequtils, random], - stew/results, + results, stew/shims/net, chronicles, chronicles/topics_registry, diff --git a/apps/networkmonitor/networkmonitor_config.nim b/apps/networkmonitor/networkmonitor_config.nim index 8e76b6f32..22b74b586 100644 --- a/apps/networkmonitor/networkmonitor_config.nim +++ b/apps/networkmonitor/networkmonitor_config.nim @@ -4,7 +4,7 @@ import confutils, chronos, std/strutils, - stew/results, + results, stew/shims/net, regex diff --git a/apps/networkmonitor/networkmonitor_metrics.nim b/apps/networkmonitor/networkmonitor_metrics.nim index e8bcb7097..fcd729826 100644 --- a/apps/networkmonitor/networkmonitor_metrics.nim +++ b/apps/networkmonitor/networkmonitor_metrics.nim @@ -10,7 +10,7 @@ import metrics/chronos_httpserver, presto/route, presto/server, - stew/results, + results, stew/shims/net logScope: diff --git a/apps/networkmonitor/networkmonitor_utils.nim b/apps/networkmonitor/networkmonitor_utils.nim index eef6f6681..f12b16014 100644 --- a/apps/networkmonitor/networkmonitor_utils.nim +++ b/apps/networkmonitor/networkmonitor_utils.nim @@ -2,7 +2,7 @@ import std/json, - stew/results, + results, stew/shims/net, chronicles, chronicles/topics_registry, diff --git a/examples/filter_subscriber.nim b/examples/filter_subscriber.nim index 0a3adfb06..028222810 100644 --- a/examples/filter_subscriber.nim +++ b/examples/filter_subscriber.nim @@ -1,7 +1,7 @@ ## Example showing how a resource restricted client may ## subscribe to messages without relay -import chronicles, chronos, stew/byteutils, stew/results +import chronicles, chronos, stew/byteutils, results import waku/[common/logging, node/peer_manager, waku_core, waku_filter_v2/client] const diff --git a/examples/lightpush_publisher.nim b/examples/lightpush_publisher.nim index 240fab3d1..0a4e349e7 100644 --- a/examples/lightpush_publisher.nim +++ b/examples/lightpush_publisher.nim @@ -1,7 +1,7 @@ ## Example showing how a resource restricted client may ## use lightpush to publish messages without relay -import chronicles, chronos, stew/byteutils, stew/results +import chronicles, chronos, stew/byteutils, results import waku/[common/logging, node/peer_manager, waku_core, waku_lightpush/client] const diff --git a/examples/wakustealthcommitments/erc_5564_interface.nim b/examples/wakustealthcommitments/erc_5564_interface.nim index 89753815d..a6785f853 100644 --- a/examples/wakustealthcommitments/erc_5564_interface.nim +++ b/examples/wakustealthcommitments/erc_5564_interface.nim @@ -1,7 +1,7 @@ ## Nim wrappers for the functions defined in librln {.push raises: [].} -import stew/results +import results ###################################################################### ## ERC-5564-BN254 module APIs diff --git a/examples/wakustealthcommitments/stealth_commitment_protocol.nim b/examples/wakustealthcommitments/stealth_commitment_protocol.nim index 41062def0..262955add 100644 --- a/examples/wakustealthcommitments/stealth_commitment_protocol.nim +++ b/examples/wakustealthcommitments/stealth_commitment_protocol.nim @@ -1,7 +1,7 @@ {.push raises: [].} import - stew/results, + results, waku/[common/logging, waku_node, waku_rln_relay,], diff --git a/examples/wakustealthcommitments/wakustealthcommitments.nim b/examples/wakustealthcommitments/wakustealthcommitments.nim index 7f17bd01b..d2fe98b63 100644 --- a/examples/wakustealthcommitments/wakustealthcommitments.nim +++ b/examples/wakustealthcommitments/wakustealthcommitments.nim @@ -1,7 +1,6 @@ {.push raises: [].} -import - stew/results, chronicles, ./node_spec as Waku, ./stealth_commitment_protocol as SCP +import results, chronicles, ./node_spec as Waku, ./stealth_commitment_protocol as SCP logScope: topics = "waku stealthcommitments" diff --git a/examples/wakustealthcommitments/wire_spec.nim b/examples/wakustealthcommitments/wire_spec.nim index 38cc95feb..fa3d5a888 100644 --- a/examples/wakustealthcommitments/wire_spec.nim +++ b/examples/wakustealthcommitments/wire_spec.nim @@ -1,5 +1,5 @@ import std/[times, options] -import confutils, chronicles, chronos, stew/results +import confutils, chronicles, chronos, results import waku/[waku_core, common/protobuf] import libp2p/protobuf/minprotobuf diff --git a/library/libwaku.nim b/library/libwaku.nim index c1e4ca4f0..f1bc6f3d6 100644 --- a/library/libwaku.nim +++ b/library/libwaku.nim @@ -8,11 +8,11 @@ when defined(linux): import std/[json, sequtils, atomics, times, strformat, options, atomics, strutils, os] import chronicles, chronos import - ../../waku/common/base64, - ../../waku/waku_core/message/message, - ../../waku/node/waku_node, - ../../waku/waku_core/topics/pubsub_topic, - ../../../waku/waku_relay/protocol, + waku/common/base64, + waku/waku_core/message/message, + waku/node/waku_node, + waku/waku_core/topics/pubsub_topic, + waku/waku_relay/protocol, ./events/json_message_event, ./waku_thread/waku_thread, ./waku_thread/inter_thread_communication/requests/node_lifecycle_request, diff --git a/library/nim.cfg b/library/nim.cfg new file mode 100644 index 000000000..3dc62217a --- /dev/null +++ b/library/nim.cfg @@ -0,0 +1 @@ +path = "../" diff --git a/library/waku_thread/inter_thread_communication/requests/debug_node_request.nim b/library/waku_thread/inter_thread_communication/requests/debug_node_request.nim index ad5e88ff9..c2b36f6fa 100644 --- a/library/waku_thread/inter_thread_communication/requests/debug_node_request.nim +++ b/library/waku_thread/inter_thread_communication/requests/debug_node_request.nim @@ -1,5 +1,5 @@ import std/json -import chronicles, chronos, stew/results +import chronicles, chronos, results import ../../../../waku/factory/waku, ../../../../waku/node/waku_node type DebugNodeMsgType* = enum diff --git a/library/waku_thread/inter_thread_communication/requests/discovery_request.nim b/library/waku_thread/inter_thread_communication/requests/discovery_request.nim index 85ca64902..d7c58835f 100644 --- a/library/waku_thread/inter_thread_communication/requests/discovery_request.nim +++ b/library/waku_thread/inter_thread_communication/requests/discovery_request.nim @@ -1,5 +1,5 @@ import std/[json, sequtils] -import chronos, stew/results, libp2p/multiaddress +import chronos, results, libp2p/multiaddress import ../../../../waku/factory/waku, ../../../../waku/discovery/waku_dnsdisc, diff --git a/library/waku_thread/inter_thread_communication/requests/node_lifecycle_request.nim b/library/waku_thread/inter_thread_communication/requests/node_lifecycle_request.nim index deb89d177..e47f8038e 100644 --- a/library/waku_thread/inter_thread_communication/requests/node_lifecycle_request.nim +++ b/library/waku_thread/inter_thread_communication/requests/node_lifecycle_request.nim @@ -1,5 +1,5 @@ import std/[options, sequtils, json, strutils, net] -import chronos, chronicles, stew/results, confutils, confutils/std/net +import chronos, chronicles, results, confutils, confutils/std/net import ../../../../waku/node/peer_manager/peer_manager, diff --git a/library/waku_thread/inter_thread_communication/requests/peer_manager_request.nim b/library/waku_thread/inter_thread_communication/requests/peer_manager_request.nim index 272a2d4ed..0c4b60b97 100644 --- a/library/waku_thread/inter_thread_communication/requests/peer_manager_request.nim +++ b/library/waku_thread/inter_thread_communication/requests/peer_manager_request.nim @@ -1,5 +1,5 @@ import std/[sequtils, strutils] -import chronicles, chronos, stew/results +import chronicles, chronos, results import ../../../../waku/factory/waku, ../../../../waku/node/waku_node, ../../../alloc type PeerManagementMsgType* = enum diff --git a/library/waku_thread/inter_thread_communication/requests/protocols/relay_request.nim b/library/waku_thread/inter_thread_communication/requests/protocols/relay_request.nim index 371f3db98..b560d1d76 100644 --- a/library/waku_thread/inter_thread_communication/requests/protocols/relay_request.nim +++ b/library/waku_thread/inter_thread_communication/requests/protocols/relay_request.nim @@ -1,5 +1,5 @@ import std/net -import chronicles, chronos, stew/byteutils, stew/results +import chronicles, chronos, stew/byteutils, results import ../../../../../waku/waku_core/message/message, ../../../../../waku/factory/waku, diff --git a/library/waku_thread/inter_thread_communication/requests/protocols/store_request.nim b/library/waku_thread/inter_thread_communication/requests/protocols/store_request.nim index 4eff51d7e..da611915f 100644 --- a/library/waku_thread/inter_thread_communication/requests/protocols/store_request.nim +++ b/library/waku_thread/inter_thread_communication/requests/protocols/store_request.nim @@ -1,4 +1,4 @@ -import chronos, stew/results +import chronos, results import ../../../../../waku/factory/waku, ../../../../alloc, ../../../../callback type StoreReqType* = enum diff --git a/library/waku_thread/inter_thread_communication/waku_thread_request.nim b/library/waku_thread/inter_thread_communication/waku_thread_request.nim index 1c95c4458..749eac1e9 100644 --- a/library/waku_thread/inter_thread_communication/waku_thread_request.nim +++ b/library/waku_thread/inter_thread_communication/waku_thread_request.nim @@ -2,7 +2,7 @@ ## The requests are created by the main thread and processed by ## the Waku Thread. -import std/json, stew/results +import std/json, results import chronos import ../../../waku/factory/waku, diff --git a/library/waku_thread/inter_thread_communication/waku_thread_response.nim b/library/waku_thread/inter_thread_communication/waku_thread_response.nim index 69a4a38d9..e44e2d49f 100644 --- a/library/waku_thread/inter_thread_communication/waku_thread_response.nim +++ b/library/waku_thread/inter_thread_communication/waku_thread_response.nim @@ -2,7 +2,7 @@ ## The response will be created from the Waku Thread and processed in ## the main thread. -import std/json, stew/results +import std/json, results import ../../alloc type ResponseType {.pure.} = enum diff --git a/library/waku_thread/waku_thread.nim b/library/waku_thread/waku_thread.nim index ecd5f2cdd..b14faf6bd 100644 --- a/library/waku_thread/waku_thread.nim +++ b/library/waku_thread/waku_thread.nim @@ -3,10 +3,9 @@ {.passc: "-fPIC".} import std/[options, atomics, os, net] +import chronicles, chronos, chronos/threadsync, taskpools/channels_spsc_single, results import - chronicles, chronos, chronos/threadsync, taskpools/channels_spsc_single, stew/results -import - ../../../waku/factory/waku, + waku/factory/waku, ./inter_thread_communication/waku_thread_request, ./inter_thread_communication/waku_thread_response diff --git a/tests/waku_core/test_namespaced_topics.nim b/tests/waku_core/test_namespaced_topics.nim index 69ae05939..9d739a841 100644 --- a/tests/waku_core/test_namespaced_topics.nim +++ b/tests/waku_core/test_namespaced_topics.nim @@ -1,6 +1,6 @@ {.used.} -import std/options, stew/results, testutils/unittests +import std/options, results, testutils/unittests import waku/waku_core/topics suite "Waku Message - Content topics namespacing": diff --git a/tests/waku_store/store_utils.nim b/tests/waku_store/store_utils.nim index 80990f238..f652f24b6 100644 --- a/tests/waku_store/store_utils.nim +++ b/tests/waku_store/store_utils.nim @@ -18,6 +18,6 @@ proc newTestWakuStore*( return proto -proc newTestWakuStoreClient*(switch: Switch): WakuStoreClient = +proc newTestWakuStoreClient*(switch: Switch): WakuStoreClient {.gcsafe.} = let peerManager = PeerManager.new(switch) WakuStoreClient.new(peerManager, rng) diff --git a/tools/rln_db_inspector/rln_db_inspector.nim b/tools/rln_db_inspector/rln_db_inspector.nim index c344b4335..198f4469d 100644 --- a/tools/rln_db_inspector/rln_db_inspector.nim +++ b/tools/rln_db_inspector/rln_db_inspector.nim @@ -3,7 +3,7 @@ when (NimMajor, NimMinor) < (1, 4): else: {.push raises: [].} -import chronicles, sequtils, stew/[results] +import chronicles, sequtils, results import waku/[waku_rln_relay/rln, waku_rln_relay/conversion_utils, factory/external_config] diff --git a/tools/rln_keystore_generator/rln_keystore_generator.nim b/tools/rln_keystore_generator/rln_keystore_generator.nim index fb6280a52..187b697d8 100644 --- a/tools/rln_keystore_generator/rln_keystore_generator.nim +++ b/tools/rln_keystore_generator/rln_keystore_generator.nim @@ -3,7 +3,7 @@ when (NimMajor, NimMinor) < (1, 4): else: {.push raises: [].} -import chronicles, stew/[results], std/tempfiles +import chronicles, results, std/tempfiles import waku/[ diff --git a/vendor/db_connector b/vendor/db_connector new file mode 160000 index 000000000..70d2ab3ff --- /dev/null +++ b/vendor/db_connector @@ -0,0 +1 @@ +Subproject commit 70d2ab3ff9907cb5b1d863bfb333a0ced5ee1596 diff --git a/vendor/nim-bearssl b/vendor/nim-bearssl index a806cbfab..646fa2152 160000 --- a/vendor/nim-bearssl +++ b/vendor/nim-bearssl @@ -1 +1 @@ -Subproject commit a806cbfab5fe8de49c76139f8705fff79daf99ee +Subproject commit 646fa2152b11980c24bf34b3e214b479c9d25f21 diff --git a/vendor/nim-chronos b/vendor/nim-chronos index 4ad38079d..13d28a5b7 160000 --- a/vendor/nim-chronos +++ b/vendor/nim-chronos @@ -1 +1 @@ -Subproject commit 4ad38079dec8407c396ebaaf6ba60e5e94e3fce5 +Subproject commit 13d28a5b710c414be17bfe36ca25bf34771875cc diff --git a/vendor/nim-confutils b/vendor/nim-confutils index 0adf3b7db..cb640db2c 160000 --- a/vendor/nim-confutils +++ b/vendor/nim-confutils @@ -1 +1 @@ -Subproject commit 0adf3b7db70736061bf12fa23c2fc51f395b289e +Subproject commit cb640db2cd66d7f4a1810a7df51b55f6f59cf3c5 diff --git a/vendor/nim-dnsdisc b/vendor/nim-dnsdisc index c138792c9..38f853df3 160000 --- a/vendor/nim-dnsdisc +++ b/vendor/nim-dnsdisc @@ -1 +1 @@ -Subproject commit c138792c9385208626a005ffa0833101760b0da5 +Subproject commit 38f853df30bcfdb73055b7fd7de284a47eebecc2 diff --git a/vendor/nim-faststreams b/vendor/nim-faststreams index 11b9d952a..dbc4a95df 160000 --- a/vendor/nim-faststreams +++ b/vendor/nim-faststreams @@ -1 +1 @@ -Subproject commit 11b9d952a80ec87e2443405a6a5382f9daac51f8 +Subproject commit dbc4a95df60238157dcf286f6125188cb72f37c1 diff --git a/vendor/nim-http-utils b/vendor/nim-http-utils index be57dbc90..98496aa24 160000 --- a/vendor/nim-http-utils +++ b/vendor/nim-http-utils @@ -1 +1 @@ -Subproject commit be57dbc902d36f37540897e98c69aa80f868cb45 +Subproject commit 98496aa24d9364d1652e531f5f346de9b7cb3e15 diff --git a/vendor/nim-json-serialization b/vendor/nim-json-serialization index 4d0b0662e..89f7be178 160000 --- a/vendor/nim-json-serialization +++ b/vendor/nim-json-serialization @@ -1 +1 @@ -Subproject commit 4d0b0662ed960ab2c5a1ddbd08f77048bac13ae7 +Subproject commit 89f7be1783b2f828a95dea1496fdac3510532997 diff --git a/vendor/nim-libbacktrace b/vendor/nim-libbacktrace index aab85b6d2..4db9cae5a 160000 --- a/vendor/nim-libbacktrace +++ b/vendor/nim-libbacktrace @@ -1 +1 @@ -Subproject commit aab85b6d242df38706664373f089675235953ab8 +Subproject commit 4db9cae5ac0225e3439f577f5c5cd67086232b3f diff --git a/vendor/nim-libp2p b/vendor/nim-libp2p index d0af3fbe8..94d93cbf2 160000 --- a/vendor/nim-libp2p +++ b/vendor/nim-libp2p @@ -1 +1 @@ -Subproject commit d0af3fbe8559f69195657a360c3dd4ac4552c811 +Subproject commit 94d93cbf2531296f0e636aa702b500b242eb4158 diff --git a/vendor/nim-metrics b/vendor/nim-metrics index 0e768ca7f..f068c8519 160000 --- a/vendor/nim-metrics +++ b/vendor/nim-metrics @@ -1 +1 @@ -Subproject commit 0e768ca7fb7df4798649145a403e7db65cae1f8b +Subproject commit f068c85196cd4464e97d52ff0ea3d5ed8e59da1b diff --git a/vendor/nim-nat-traversal b/vendor/nim-nat-traversal index 54bf8aa29..459fc4968 160000 --- a/vendor/nim-nat-traversal +++ b/vendor/nim-nat-traversal @@ -1 +1 @@ -Subproject commit 54bf8aa2913e8550463779beeae4b469941e039c +Subproject commit 459fc4968799bde97592137f42d93e5069f06e73 diff --git a/vendor/nim-presto b/vendor/nim-presto index a9687dda1..2190421e0 160000 --- a/vendor/nim-presto +++ b/vendor/nim-presto @@ -1 +1 @@ -Subproject commit a9687dda1c3e20d5b066d42b33c2a63f018af93f +Subproject commit 2190421e09938696cd95d54b1f4753446c84c7a2 diff --git a/vendor/nim-results b/vendor/nim-results index 193d3c664..e2adf66b8 160000 --- a/vendor/nim-results +++ b/vendor/nim-results @@ -1 +1 @@ -Subproject commit 193d3c6648bd0f7e834d4ebd6a1e1d5f93998197 +Subproject commit e2adf66b8bc2f41606e8469a5f0a850d1e545b55 diff --git a/vendor/nim-secp256k1 b/vendor/nim-secp256k1 index 194b715b1..c1795d1fb 160000 --- a/vendor/nim-secp256k1 +++ b/vendor/nim-secp256k1 @@ -1 +1 @@ -Subproject commit 194b715b16766e383b5aef92dd779fb182faf45d +Subproject commit c1795d1fb64b6cfe932a8d977a123b55a562dc52 diff --git a/vendor/nim-serialization b/vendor/nim-serialization index afae13ada..298a9554a 160000 --- a/vendor/nim-serialization +++ b/vendor/nim-serialization @@ -1 +1 @@ -Subproject commit afae13adac25b6fa98bacf4b9f38458dc64317b0 +Subproject commit 298a9554a885b2df59737bb3461aac8d0d339724 diff --git a/vendor/nim-stew b/vendor/nim-stew index 104132fd0..e00fea1f6 160000 --- a/vendor/nim-stew +++ b/vendor/nim-stew @@ -1 +1 @@ -Subproject commit 104132fd0217e846b04dd26a5fbe3e43a4929a05 +Subproject commit e00fea1f6e14234adb10d9c117a70905ae31872b diff --git a/vendor/nim-stint b/vendor/nim-stint index 9d2b382c5..9a3348bd4 160000 --- a/vendor/nim-stint +++ b/vendor/nim-stint @@ -1 +1 @@ -Subproject commit 9d2b382c5dc34f0d6bbd93b2a5d65dde85067e0f +Subproject commit 9a3348bd4499045fb211afeeaf2a54730060c081 diff --git a/vendor/nim-toml-serialization b/vendor/nim-toml-serialization index 24bbfcb8e..cb1fc73f3 160000 --- a/vendor/nim-toml-serialization +++ b/vendor/nim-toml-serialization @@ -1 +1 @@ -Subproject commit 24bbfcb8e4e256883fc959dc6f5c15fe7a84fca5 +Subproject commit cb1fc73f3519fed5f3a8fbfa90afc9a96d5f5f5c diff --git a/vendor/nim-unicodedb b/vendor/nim-unicodedb index 3db16f8ec..8c8959d84 160000 --- a/vendor/nim-unicodedb +++ b/vendor/nim-unicodedb @@ -1 +1 @@ -Subproject commit 3db16f8ece5d0eba310c8f1ed812c6ff5a21a34a +Subproject commit 8c8959d84c12ecda6ea14c67bd68675b1936f8cf diff --git a/vendor/nimbus-build-system b/vendor/nimbus-build-system index d7e7f1044..741274439 160000 --- a/vendor/nimbus-build-system +++ b/vendor/nimbus-build-system @@ -1 +1 @@ -Subproject commit d7e7f1044def3c62d0b4bcec60c0b53876e44d71 +Subproject commit 741274439ce72162ab3c740e7c0ef624d32725f9 diff --git a/vendor/nimcrypto b/vendor/nimcrypto index 485f7b3cf..71bca1550 160000 --- a/vendor/nimcrypto +++ b/vendor/nimcrypto @@ -1 +1 @@ -Subproject commit 485f7b3cfa83c1beecc0e31be0e964d697aa74d7 +Subproject commit 71bca15508e2c0548f32b42a69bcfb1ccd9ab9ff diff --git a/waku.nimble b/waku.nimble index a6db1f2b7..e9eb8aaf9 100644 --- a/waku.nimble +++ b/waku.nimble @@ -1,14 +1,14 @@ mode = ScriptMode.Verbose ### Package -version = "0.1.0" -author = "Status Research & Development GmbH" -description = "Waku, Private P2P Messaging for Resource-Restricted Devices" -license = "MIT or Apache License 2.0" +version = "0.1.0" +author = "Status Research & Development GmbH" +description = "Waku, Private P2P Messaging for Resource-Restricted Devices" +license = "MIT or Apache License 2.0" #bin = @["build/waku"] ### Dependencies -requires "nim >= 1.6.0", +requires "nim >= 2.0.8", "chronicles", "confutils", "chronos", @@ -22,7 +22,8 @@ requires "nim >= 1.6.0", "libp2p", # Only for Waku v2 "web3", "presto", - "regex" + "regex", + "db_connector" ### Helper functions proc buildBinary(name: string, srcDir = "./", params = "", lang = "c") = @@ -30,21 +31,26 @@ proc buildBinary(name: string, srcDir = "./", params = "", lang = "c") = mkDir "build" # allow something like "nim nimbus --verbosity:0 --hints:off nimbus.nims" var extra_params = params - for i in 2.. NIM_PARAMS="-d:chronicles_log_level=INFO" make test2` @@ -140,4 +149,3 @@ task libWakuAndroid, "Build the mobile bindings for Android": let srcDir = "./library" let extraParams = "-d:chronicles_log_level=ERROR" buildMobileAndroid srcDir, extraParams - diff --git a/waku/common/base64.nim b/waku/common/base64.nim index 65e74cd8f..3160fa4a8 100644 --- a/waku/common/base64.nim +++ b/waku/common/base64.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import stew/[results, byteutils, base64] +import stew/[byteutils, base64], results type Base64String* = distinct string diff --git a/waku/common/databases/common.nim b/waku/common/databases/common.nim index 587967144..c718180df 100644 --- a/waku/common/databases/common.nim +++ b/waku/common/databases/common.nim @@ -1,3 +1,3 @@ -import stew/results +import results type DatabaseResult*[T] = Result[T, string] diff --git a/waku/common/databases/db_postgres/dbconn.nim b/waku/common/databases/db_postgres/dbconn.nim index 3811ec850..16e9602f6 100644 --- a/waku/common/databases/db_postgres/dbconn.nim +++ b/waku/common/databases/db_postgres/dbconn.nim @@ -1,6 +1,6 @@ -import std/[times, strutils], stew/results, chronos +import std/[times, strutils], results, chronos -include db_postgres +include db_connector/db_postgres type DataProc* = proc(result: ptr PGresult) {.closure, gcsafe, raises: [].} diff --git a/waku/common/databases/db_postgres/pgasyncpool.nim b/waku/common/databases/db_postgres/pgasyncpool.nim index 0b08b9c31..e9124f4fb 100644 --- a/waku/common/databases/db_postgres/pgasyncpool.nim +++ b/waku/common/databases/db_postgres/pgasyncpool.nim @@ -2,7 +2,7 @@ # Inspired by: https://github.com/treeform/pg/ {.push raises: [].} -import std/[sequtils, nre, strformat, sets], stew/results, chronos +import std/[sequtils, nre, strformat, sets], results, chronos import ./dbconn, ../common type PgAsyncPoolState {.pure.} = enum diff --git a/waku/common/databases/db_sqlite.nim b/waku/common/databases/db_sqlite.nim index 1b2a3b40b..917d35d28 100644 --- a/waku/common/databases/db_sqlite.nim +++ b/waku/common/databases/db_sqlite.nim @@ -4,7 +4,7 @@ # # Most of it is a direct copy, the only unique functions being `get` and `put`. -import std/[os, strutils, sequtils, algorithm], stew/results, chronicles, sqlite3_abi +import std/[os, strutils, sequtils, algorithm], results, chronicles, sqlite3_abi import ./common logScope: @@ -50,10 +50,10 @@ template checkErr*(op) = type SqliteDatabase* = ref object of RootObj env*: Sqlite -type DataProc* = proc(s: RawStmtPtr) {.closure.} +type DataProc* = proc(s: RawStmtPtr) {.closure, gcsafe.} # the nim-eth definition is different; one more indirection -const NoopRowHandler* = proc(s: RawStmtPtr) {.closure.} = +const NoopRowHandler* = proc(s: RawStmtPtr) {.closure, gcsafe.} = discard proc new*(T: type SqliteDatabase, path: string, readOnly = false): DatabaseResult[T] = @@ -214,7 +214,9 @@ proc exec*[Params, Res]( discard sqlite3_reset(s) # same return information as step discard sqlite3_clear_bindings(s) # no errors possible -proc query*(db: SqliteDatabase, query: string, onData: DataProc): DatabaseResult[bool] = +proc query*( + db: SqliteDatabase, query: string, onData: DataProc +): DatabaseResult[bool] {.gcsafe.} = var s = prepare(db.env, query): discard @@ -231,7 +233,7 @@ proc query*(db: SqliteDatabase, query: string, onData: DataProc): DatabaseResult else: return err($sqlite3_errstr(v)) return ok gotResults - finally: + except Exception, CatchableError: # release implicit transaction discard sqlite3_reset(s) # same return information as step discard sqlite3_clear_bindings(s) # no errors possible diff --git a/waku/common/databases/dburl.nim b/waku/common/databases/dburl.nim index 7546dc2c9..b4cbf1db8 100644 --- a/waku/common/databases/dburl.nim +++ b/waku/common/databases/dburl.nim @@ -1,4 +1,4 @@ -import std/strutils, regex, stew/results +import std/strutils, regex, results proc validateDbUrl*(dbUrl: string): Result[string, string] = ## dbUrl mimics SQLAlchemy Database URL schema diff --git a/waku/common/enr/builder.nim b/waku/common/enr/builder.nim index 5795e37f5..f4b3b472f 100644 --- a/waku/common/enr/builder.nim +++ b/waku/common/enr/builder.nim @@ -2,7 +2,7 @@ import std/[options, net], - stew/results, + results, eth/keys as eth_keys, eth/p2p/discoveryv5/enr, libp2p/crypto/crypto as libp2p_crypto diff --git a/waku/common/enr/typed_record.nim b/waku/common/enr/typed_record.nim index babf9cc76..23ff6cc89 100644 --- a/waku/common/enr/typed_record.nim +++ b/waku/common/enr/typed_record.nim @@ -1,7 +1,6 @@ {.push raises: [].} -import - std/options, stew/results, eth/keys as eth_keys, libp2p/crypto/crypto as libp2p_crypto +import std/options, results, eth/keys as eth_keys, libp2p/crypto/crypto as libp2p_crypto import eth/p2p/discoveryv5/enr except TypedRecord, toTypedRecord diff --git a/waku/common/logging.nim b/waku/common/logging.nim index e8394e89f..2b664f2f0 100644 --- a/waku/common/logging.nim +++ b/waku/common/logging.nim @@ -1,7 +1,7 @@ ## This code has been copied and addapted from `status-im/nimbu-eth2` project. ## Link: https://github.com/status-im/nimbus-eth2/blob/c585b0a5b1ae4d55af38ad7f4715ad455e791552/beacon_chain/nimbus_binary_common.nim import - std/[typetraits, os, strutils], + std/[typetraits, os, strutils, syncio], chronicles, chronicles/log_output, chronicles/topics_registry @@ -53,7 +53,7 @@ proc stripAnsi(v: string): string = res -proc writeAndFlush(f: File, s: LogOutputStr) = +proc writeAndFlush(f: syncio.File, s: LogOutputStr) = try: f.write(s) f.flushFile() @@ -71,10 +71,10 @@ proc setupLogFormat(format: LogFormat, color = true) = discard proc stdoutOutputWriter(logLevel: LogLevel, msg: LogOutputStr) = - writeAndFlush(io.stdout, msg) + writeAndFlush(syncio.stdout, msg) proc stdoutNoColorOutputWriter(logLevel: LogLevel, msg: LogOutputStr) = - writeAndFlush(io.stdout, stripAnsi(msg)) + writeAndFlush(syncio.stdout, stripAnsi(msg)) when defaultChroniclesStream.outputs.type.arity == 2: case format diff --git a/waku/common/utils/matterbridge_client.nim b/waku/common/utils/matterbridge_client.nim index c04d2280f..e8593aeff 100644 --- a/waku/common/utils/matterbridge_client.nim +++ b/waku/common/utils/matterbridge_client.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/[httpclient, json, uri, options], stew/results +import std/[httpclient, json, uri, options], results const # Resource locators diff --git a/waku/common/utils/nat.nim b/waku/common/utils/nat.nim index 8af1ec2ad..893e8d8a8 100644 --- a/waku/common/utils/nat.nim +++ b/waku/common/utils/nat.nim @@ -1,7 +1,7 @@ {.push raises: [].} import std/[options, strutils, net] -import chronicles, eth/net/nat, stew/results, nativesockets +import chronicles, eth/net/nat, results, nativesockets logScope: topics = "nat" diff --git a/waku/common/utils/parse_size_units.nim b/waku/common/utils/parse_size_units.nim index 20b3e35fe..df2f5dac4 100644 --- a/waku/common/utils/parse_size_units.nim +++ b/waku/common/utils/parse_size_units.nim @@ -1,4 +1,4 @@ -import std/strutils, stew/results, regex +import std/strutils, results, regex proc parseMsgSize*(input: string): Result[uint64, string] = ## Parses size strings such as "1.2 KiB" or "3Kb" and returns the equivalent number of bytes diff --git a/waku/discovery/waku_discv5.nim b/waku/discovery/waku_discv5.nim index c6dc5553d..75e15b9d7 100644 --- a/waku/discovery/waku_discv5.nim +++ b/waku/discovery/waku_discv5.nim @@ -2,7 +2,7 @@ import std/[sequtils, strutils, options, sets, net, json], - stew/results, + results, chronos, chronicles, metrics, diff --git a/waku/factory/builder.nim b/waku/factory/builder.nim index f06d28331..1451a8a39 100644 --- a/waku/factory/builder.nim +++ b/waku/factory/builder.nim @@ -2,7 +2,7 @@ import std/[options, net], - stew/results, + results, chronicles, libp2p/crypto/crypto, libp2p/builders, diff --git a/waku/factory/external_config.nim b/waku/factory/external_config.nim index a4d487e6a..60ce252ad 100644 --- a/waku/factory/external_config.nim +++ b/waku/factory/external_config.nim @@ -1,6 +1,6 @@ import std/[strutils, strformat], - stew/results, + results, chronos, regex, confutils, @@ -77,7 +77,8 @@ type WakuNodeConf* = object .}: string rlnRelayChainId* {. - desc: "Chain ID of the provided contract (optional, will fetch from RPC provider if not used)", + desc: + "Chain ID of the provided contract (optional, will fetch from RPC provider if not used)", defaultValue: 0, name: "rln-relay-chain-id" .}: uint diff --git a/waku/factory/internal_config.nim b/waku/factory/internal_config.nim index e9a708aaf..6f26cbbde 100644 --- a/waku/factory/internal_config.nim +++ b/waku/factory/internal_config.nim @@ -5,7 +5,7 @@ import libp2p/multiaddress, libp2p/nameresolving/dnsresolver, std/[options, sequtils, net], - stew/results + results import ./external_config, ../common/utils/nat, diff --git a/waku/factory/waku.nim b/waku/factory/waku.nim index 91a228cdb..4296854a4 100644 --- a/waku/factory/waku.nim +++ b/waku/factory/waku.nim @@ -2,7 +2,7 @@ import std/[options, sequtils], - stew/results, + results, chronicles, chronos, libp2p/wire, diff --git a/waku/node/config.nim b/waku/node/config.nim index 2ebe2a007..311e26771 100644 --- a/waku/node/config.nim +++ b/waku/node/config.nim @@ -1,9 +1,7 @@ {.push raises: [].} import - std/[options, sequtils, strutils, net], - stew/results, - libp2p/[multiaddress, multicodec] + std/[options, sequtils, strutils, net], results, libp2p/[multiaddress, multicodec] import ../../waku/waku_core/peers import ../waku_enr diff --git a/waku/node/peer_manager/peer_manager.nim b/waku/node/peer_manager/peer_manager.nim index 8b166adf4..e2cd76a50 100644 --- a/waku/node/peer_manager/peer_manager.nim +++ b/waku/node/peer_manager/peer_manager.nim @@ -108,14 +108,16 @@ proc calculateBackoff( # Helper functions # #################### -proc insertOrReplace(ps: PeerStorage, remotePeerInfo: RemotePeerInfo) = +proc insertOrReplace(ps: PeerStorage, remotePeerInfo: RemotePeerInfo) {.gcsafe.} = ## Insert peer entry into persistent storage, or replace existing entry with updated info ps.put(remotePeerInfo).isOkOr: warn "failed to store peers", err = error waku_peers_errors.inc(labelValues = ["storage_failure"]) return -proc addPeer*(pm: PeerManager, remotePeerInfo: RemotePeerInfo, origin = UnknownOrigin) = +proc addPeer*( + pm: PeerManager, remotePeerInfo: RemotePeerInfo, origin = UnknownOrigin +) {.gcsafe.} = ## Adds peer to manager for the specified protocol if remotePeerInfo.peerId == pm.switch.peerInfo.peerId: @@ -257,7 +259,7 @@ proc dialPeer( return none(Connection) -proc loadFromStorage(pm: PeerManager) = +proc loadFromStorage(pm: PeerManager) {.gcsafe.} = ## Load peers from storage, if available trace "loading peers from storage" @@ -435,6 +437,8 @@ proc onPeerEvent(pm: PeerManager, peerId: PeerId, event: PeerEvent) {.async.} = if pm.ipTable[ip].len == 0: pm.ipTable.del(ip) break + of Identified: + debug "event identified", peerId = peerId pm.peerStore[ConnectionBook][peerId] = connectedness pm.peerStore[DirectionBook][peerId] = direction @@ -458,7 +462,7 @@ proc new*( maxFailedAttempts = MaxFailedAttempts, colocationLimit = DefaultColocationLimit, shardedPeerManagement = false, -): PeerManager = +): PeerManager {.gcsafe.} = let capacity = switch.peerStore.capacity let maxConnections = switch.connManager.inSema.size if maxConnections > capacity: diff --git a/waku/node/peer_manager/peer_store/migrations.nim b/waku/node/peer_manager/peer_store/migrations.nim index dc0214cfe..cd43a3dbc 100644 --- a/waku/node/peer_manager/peer_store/migrations.nim +++ b/waku/node/peer_manager/peer_store/migrations.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/[tables, strutils, os], stew/results, chronicles +import std/[tables, strutils, os], results, chronicles import ../../../common/databases/db_sqlite, ../../../common/databases/common logScope: diff --git a/waku/node/peer_manager/peer_store/peer_storage.nim b/waku/node/peer_manager/peer_store/peer_storage.nim index ded076299..2aa1eaec1 100644 --- a/waku/node/peer_manager/peer_store/peer_storage.nim +++ b/waku/node/peer_manager/peer_store/peer_storage.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import stew/results +import results import ../../../waku_core, ../waku_peer_store ## This module defines a peer storage interface. Implementations of @@ -11,13 +11,15 @@ type PeerStorageResult*[T] = Result[T, string] - DataProc* = proc(remotePeerInfo: RemotePeerInfo) {.closure, raises: [Defect].} + DataProc* = proc(remotePeerInfo: RemotePeerInfo) {.closure, gcsafe, raises: [Defect].} # PeerStorage interface method put*( db: PeerStorage, remotePeerInfo: RemotePeerInfo -): PeerStorageResult[void] {.base.} = +): PeerStorageResult[void] {.base, gcsafe.} = return err("Unimplemented") -method getAll*(db: PeerStorage, onData: DataProc): PeerStorageResult[void] {.base.} = +method getAll*( + db: PeerStorage, onData: DataProc +): PeerStorageResult[void] {.base, gcsafe.} = return err("Unimplemented") diff --git a/waku/node/peer_manager/peer_store/waku_peer_storage.nim b/waku/node/peer_manager/peer_store/waku_peer_storage.nim index 56544e2f5..876e8e258 100644 --- a/waku/node/peer_manager/peer_store/waku_peer_storage.nim +++ b/waku/node/peer_manager/peer_store/waku_peer_storage.nim @@ -2,7 +2,7 @@ import std/[sets, options], - stew/results, + results, sqlite3_abi, eth/p2p/discoveryv5/enr, libp2p/protobuf/minprotobuf @@ -126,7 +126,7 @@ proc new*(T: type WakuPeerStorage, db: SqliteDatabase): PeerStorageResult[T] = method put*( db: WakuPeerStorage, remotePeerInfo: RemotePeerInfo -): PeerStorageResult[void] = +): PeerStorageResult[void] {.gcsafe.} = ## Adds a peer to storage or replaces existing entry if it already exists let encoded = remotePeerInfo.encode().valueOr: @@ -142,7 +142,7 @@ method getAll*( ): PeerStorageResult[void] = ## Retrieves all peers from storage - proc peer(s: ptr sqlite3_stmt) {.raises: [ResultError[ProtoError]].} = + proc peer(s: ptr sqlite3_stmt) {.gcsafe, raises: [ResultError[ProtoError]].} = let # Stored Info sTo = cast[ptr UncheckedArray[byte]](sqlite3_column_blob(s, 1)) diff --git a/waku/node/waku_node.nim b/waku/node/waku_node.nim index 51abfd342..480babd2d 100644 --- a/waku/node/waku_node.nim +++ b/waku/node/waku_node.nim @@ -5,7 +5,7 @@ import chronos, chronicles, metrics, - stew/results, + results, stew/byteutils, eth/keys, nimcrypto, diff --git a/waku/utils/noise.nim b/waku/utils/noise.nim index 80b537197..2e0159203 100644 --- a/waku/utils/noise.nim +++ b/waku/utils/noise.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import stew/results +import results import ../waku_core, ../waku_noise/noise_types, ../waku_noise/noise_utils # Decodes a WakuMessage to a PayloadV2 diff --git a/waku/waku_api/handlers.nim b/waku/waku_api/handlers.nim index 2b6997e15..4fc922f36 100644 --- a/waku/waku_api/handlers.nim +++ b/waku/waku_api/handlers.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import chronos, std/[options, sequtils], stew/results +import chronos, std/[options, sequtils], results import ../discovery/waku_discv5, ../waku_relay, ../waku_core, ./message_cache ### Discovery diff --git a/waku/waku_api/message_cache.nim b/waku/waku_api/message_cache.nim index ef9ebb44c..acef5a729 100644 --- a/waku/waku_api/message_cache.nim +++ b/waku/waku_api/message_cache.nim @@ -2,7 +2,7 @@ import std/[sequtils, sugar, algorithm, options], - stew/results, + results, chronicles, chronos, libp2p/protocols/pubsub diff --git a/waku/waku_api/rest/builder.nim b/waku/waku_api/rest/builder.nim index 08ef998a7..ebf1c7f96 100644 --- a/waku/waku_api/rest/builder.nim +++ b/waku/waku_api/rest/builder.nim @@ -3,21 +3,21 @@ import net, tables import presto import - ../../waku/waku_node, - ../../waku/discovery/waku_discv5, - ../../waku/factory/external_config, - ../../waku/waku_api/message_cache, - ../../waku/waku_api/handlers, - ../../waku/waku_api/rest/server, - ../../waku/waku_api/rest/debug/handlers as rest_debug_api, - ../../waku/waku_api/rest/relay/handlers as rest_relay_api, - ../../waku/waku_api/rest/filter/handlers as rest_filter_api, - ../../waku/waku_api/rest/lightpush/handlers as rest_lightpush_api, - ../../waku/waku_api/rest/store/handlers as rest_store_api, - ../../waku/waku_api/rest/legacy_store/handlers as rest_store_legacy_api, - ../../waku/waku_api/rest/health/handlers as rest_health_api, - ../../waku/waku_api/rest/admin/handlers as rest_admin_api, - ../../waku/waku_core/topics + waku/waku_node, + waku/discovery/waku_discv5, + waku/factory/external_config, + waku/waku_api/message_cache, + waku/waku_api/handlers, + waku/waku_api/rest/server, + waku/waku_api/rest/debug/handlers as rest_debug_api, + waku/waku_api/rest/relay/handlers as rest_relay_api, + waku/waku_api/rest/filter/handlers as rest_filter_api, + waku/waku_api/rest/lightpush/handlers as rest_lightpush_api, + waku/waku_api/rest/store/handlers as rest_store_api, + waku/waku_api/rest/legacy_store/handlers as rest_store_legacy_api, + waku/waku_api/rest/health/handlers as rest_health_api, + waku/waku_api/rest/admin/handlers as rest_admin_api, + waku/waku_core/topics ## Monitoring and external interfaces diff --git a/waku/waku_api/rest/health/client.nim b/waku/waku_api/rest/health/client.nim index 14215ebbb..c6f339006 100644 --- a/waku/waku_api/rest/health/client.nim +++ b/waku/waku_api/rest/health/client.nim @@ -2,7 +2,7 @@ import chronicles, json_serialization, json_serialization/std/options, presto/[route, client] -import ./types, ../serdes, ../responses, ../rest_serdes, ../../waku/node/health_monitor +import ./types, ../serdes, ../responses, ../rest_serdes, waku/node/health_monitor logScope: topics = "waku node rest health_api" diff --git a/waku/waku_api/rest/legacy_store/handlers.nim b/waku/waku_api/rest/legacy_store/handlers.nim index 680e8c782..f0747a8de 100644 --- a/waku/waku_api/rest/legacy_store/handlers.nim +++ b/waku/waku_api/rest/legacy_store/handlers.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/strformat, stew/results, chronicles, uri, json_serialization, presto/route +import std/strformat, results, chronicles, uri, json_serialization, presto/route import ../../../waku_core, ../../../waku_store_legacy/common, diff --git a/waku/waku_api/rest/lightpush/handlers.nim b/waku/waku_api/rest/lightpush/handlers.nim index 3692d118e..6003c8a59 100644 --- a/waku/waku_api/rest/lightpush/handlers.nim +++ b/waku/waku_api/rest/lightpush/handlers.nim @@ -10,9 +10,9 @@ import presto/common import - ../../waku/node/peer_manager, + waku/node/peer_manager, + waku/waku_lightpush/common, ../../../waku_node, - ../../waku/waku_lightpush/common, ../../handlers, ../serdes, ../responses, diff --git a/waku/waku_api/rest/origin_handler.nim b/waku/waku_api/rest/origin_handler.nim index 3cedfa26d..a7be36a4b 100644 --- a/waku/waku_api/rest/origin_handler.nim +++ b/waku/waku_api/rest/origin_handler.nim @@ -2,7 +2,7 @@ import std/[options, strutils, re, net], - stew/results, + results, chronicles, chronos, chronos/apps/http/httpserver diff --git a/waku/waku_api/rest/relay/handlers.nim b/waku/waku_api/rest/relay/handlers.nim index 1f8563ab6..589100ead 100644 --- a/waku/waku_api/rest/relay/handlers.nim +++ b/waku/waku_api/rest/relay/handlers.nim @@ -2,7 +2,8 @@ import std/sequtils, - stew/[byteutils, results], + stew/byteutils, + results, chronicles, json_serialization, json_serialization/std/options, diff --git a/waku/waku_api/rest/responses.nim b/waku/waku_api/rest/responses.nim index ace6cd2d4..182721168 100644 --- a/waku/waku_api/rest/responses.nim +++ b/waku/waku_api/rest/responses.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/typetraits, stew/results, chronicles, presto/common +import std/typetraits, results, chronicles, presto/common import ./serdes const MIMETYPE_JSON* = MediaType.init("application/json") diff --git a/waku/waku_api/rest/rest_serdes.nim b/waku/waku_api/rest/rest_serdes.nim index a68144b6e..1b6d5a98d 100644 --- a/waku/waku_api/rest/rest_serdes.nim +++ b/waku/waku_api/rest/rest_serdes.nim @@ -3,7 +3,7 @@ import std/typetraits, std/os, - stew/results, + results, chronicles, serialization, json_serialization, diff --git a/waku/waku_api/rest/serdes.nim b/waku/waku_api/rest/serdes.nim index bb75fbfde..6c2657415 100644 --- a/waku/waku_api/rest/serdes.nim +++ b/waku/waku_api/rest/serdes.nim @@ -2,7 +2,7 @@ import std/typetraits, - stew/results, + results, stew/byteutils, chronicles, serialization, diff --git a/waku/waku_api/rest/server.nim b/waku/waku_api/rest/server.nim index b2e797e2a..b8ad405c3 100644 --- a/waku/waku_api/rest/server.nim +++ b/waku/waku_api/rest/server.nim @@ -2,7 +2,7 @@ import std/net import - stew/results, + results, chronicles, chronos, chronos/apps/http/httpserver, diff --git a/waku/waku_api/rest/store/handlers.nim b/waku/waku_api/rest/store/handlers.nim index b37bc691d..b835645b0 100644 --- a/waku/waku_api/rest/store/handlers.nim +++ b/waku/waku_api/rest/store/handlers.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/strformat, stew/results, chronicles, uri, json_serialization, presto/route +import std/strformat, results, chronicles, uri, json_serialization, presto/route import ../../../waku_core, ../../../waku_store/common, diff --git a/waku/waku_archive/common.nim b/waku/waku_archive/common.nim index 427a30c51..b0c018ab0 100644 --- a/waku/waku_archive/common.nim +++ b/waku/waku_archive/common.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/options, stew/results, stew/byteutils, stew/arrayops, nimcrypto/sha2 +import std/options, results, stew/byteutils, stew/arrayops, nimcrypto/sha2 import ../waku_core, ../common/paging ## Waku message digest diff --git a/waku/waku_archive/driver.nim b/waku/waku_archive/driver.nim index c17b58d2c..a70b688bc 100644 --- a/waku/waku_archive/driver.nim +++ b/waku/waku_archive/driver.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/options, stew/results, chronos +import std/options, results, chronos import ../waku_core, ./common const DefaultPageSize*: uint = 25 diff --git a/waku/waku_archive/driver/builder.nim b/waku/waku_archive/driver/builder.nim index b16578952..1825477b5 100644 --- a/waku/waku_archive/driver/builder.nim +++ b/waku/waku_archive/driver/builder.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import stew/results, chronicles, chronos +import results, chronicles, chronos import ../driver, ../../common/databases/dburl, diff --git a/waku/waku_archive/driver/postgres_driver/migrations.nim b/waku/waku_archive/driver/postgres_driver/migrations.nim index 4e09c3ca9..976c5af9e 100644 --- a/waku/waku_archive/driver/postgres_driver/migrations.nim +++ b/waku/waku_archive/driver/postgres_driver/migrations.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/strutils, stew/results, chronicles, chronos +import std/strutils, results, chronicles, chronos import ../../../common/databases/common, ../../../../migrations/message_store_postgres/pg_migration_manager, diff --git a/waku/waku_archive/driver/postgres_driver/postgres_driver.nim b/waku/waku_archive/driver/postgres_driver/postgres_driver.nim index ffa33faaf..ce7135b4e 100644 --- a/waku/waku_archive/driver/postgres_driver/postgres_driver.nim +++ b/waku/waku_archive/driver/postgres_driver/postgres_driver.nim @@ -2,10 +2,10 @@ import std/[nre, options, sequtils, strutils, strformat, times], - stew/[results, byteutils, arrayops], - db_postgres, - postgres, + stew/[byteutils, arrayops], + results, chronos, + db_connector/[postgres, db_common], chronicles import ../../../common/error_handling, diff --git a/waku/waku_archive/driver/postgres_driver/postgres_healthcheck.nim b/waku/waku_archive/driver/postgres_driver/postgres_healthcheck.nim index b6a59a3ad..43d205cf6 100644 --- a/waku/waku_archive/driver/postgres_driver/postgres_healthcheck.nim +++ b/waku/waku_archive/driver/postgres_driver/postgres_healthcheck.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import chronos, stew/results +import chronos, results import ../../../common/databases/db_postgres, ../../../common/error_handling ## Simple query to validate that the postgres is working and attending requests diff --git a/waku/waku_archive/driver/queue_driver/queue_driver.nim b/waku/waku_archive/driver/queue_driver/queue_driver.nim index 8340ad850..23051e9cd 100644 --- a/waku/waku_archive/driver/queue_driver/queue_driver.nim +++ b/waku/waku_archive/driver/queue_driver/queue_driver.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/options, stew/results, stew/sorted_set, chronicles, chronos +import std/options, results, stew/sorted_set, chronicles, chronos import ../../../waku_core, ../../common, ../../driver, ./index logScope: @@ -9,7 +9,8 @@ logScope: const QueueDriverDefaultMaxCapacity* = 25_000 type - QueryFilterMatcher = proc(index: Index, msg: WakuMessage): bool {.gcsafe, closure.} + QueryFilterMatcher = + proc(index: Index, msg: WakuMessage): bool {.gcsafe, raises: [], closure.} QueueDriver* = ref object of ArchiveDriver ## Bounded repository for indexed messages @@ -81,7 +82,7 @@ proc getPage( forward: bool = true, cursor: Option[Index] = none(Index), predicate: QueryFilterMatcher = nil, -): QueueDriverGetPageResult = +): QueueDriverGetPageResult {.raises: [].} = ## Populate a single page in forward direction ## Start at the `startCursor` (exclusive), or first entry (inclusive) if not defined. ## Page size must not exceed `maxPageSize` diff --git a/waku/waku_archive/driver/sqlite_driver/migrations.nim b/waku/waku_archive/driver/sqlite_driver/migrations.nim index 01910ae51..4c25ddf3c 100644 --- a/waku/waku_archive/driver/sqlite_driver/migrations.nim +++ b/waku/waku_archive/driver/sqlite_driver/migrations.nim @@ -1,10 +1,7 @@ {.push raises: [].} import - std/[tables, strutils, os], - stew/results, - chronicles, - sqlite3_abi # sqlite3_column_int64 + std/[tables, strutils, os], results, chronicles, sqlite3_abi # sqlite3_column_int64 import ../../../common/databases/db_sqlite, ../../../common/databases/common logScope: diff --git a/waku/waku_archive/driver/sqlite_driver/queries.nim b/waku/waku_archive/driver/sqlite_driver/queries.nim index 037dddd80..f58f0e96c 100644 --- a/waku/waku_archive/driver/sqlite_driver/queries.nim +++ b/waku/waku_archive/driver/sqlite_driver/queries.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/[options, sequtils], stew/[results, byteutils], sqlite3_abi +import std/[options, sequtils], stew/byteutils, sqlite3_abi, results import ../../../common/databases/db_sqlite, ../../../common/databases/common, @@ -261,7 +261,7 @@ proc selectAllMessages*( db: SqliteDatabase ): DatabaseResult[ seq[(PubsubTopic, WakuMessage, seq[byte], Timestamp, WakuMessageHash)] -] = +] {.gcsafe.} = ## Retrieve all messages from the store. var rows: seq[(PubsubTopic, WakuMessage, seq[byte], Timestamp, WakuMessageHash)] proc queryRowCallback(s: ptr sqlite3_stmt) = @@ -426,7 +426,7 @@ proc execSelectMessagesV2WithLimitStmt( return ok() else: return err($sqlite3_errstr(v)) - finally: + except Exception, CatchableError: # release implicit transaction discard sqlite3_reset(s) # same return information as step discard sqlite3_clear_bindings(s) # no errors possible @@ -497,7 +497,7 @@ proc execSelectMessageByHash( return ok() else: return err($sqlite3_errstr(v)) - finally: + except Exception, CatchableError: # release implicit transaction discard sqlite3_reset(s) # same return information as step discard sqlite3_clear_bindings(s) # no errors possible @@ -628,7 +628,7 @@ proc execSelectMessagesWithLimitStmt( return ok() else: return err($sqlite3_errstr(v)) - finally: + except Exception, CatchableError: # release implicit transaction discard sqlite3_reset(s) # same return information as step discard sqlite3_clear_bindings(s) # no errors possible diff --git a/waku/waku_archive/driver/sqlite_driver/sqlite_driver.nim b/waku/waku_archive/driver/sqlite_driver/sqlite_driver.nim index e9902fcca..91af943d1 100644 --- a/waku/waku_archive/driver/sqlite_driver/sqlite_driver.nim +++ b/waku/waku_archive/driver/sqlite_driver/sqlite_driver.nim @@ -2,7 +2,7 @@ # https://github.com/status-im/nim-eth/blob/master/eth/db/kvstore_sqlite3.nim {.push raises: [].} -import std/options, stew/[byteutils, results], chronicles, chronos +import std/options, stew/byteutils, chronicles, chronos, results import ../../../common/databases/db_sqlite, ../../../waku_core, diff --git a/waku/waku_archive/retention_policy.nim b/waku/waku_archive/retention_policy.nim index 0c92caba3..d4b75ee1f 100644 --- a/waku/waku_archive/retention_policy.nim +++ b/waku/waku_archive/retention_policy.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import stew/results, chronos +import results, chronos import ./driver type RetentionPolicyResult*[T] = Result[T, string] diff --git a/waku/waku_archive/retention_policy/builder.nim b/waku/waku_archive/retention_policy/builder.nim index 6ed50a4ac..6cb131bbc 100644 --- a/waku/waku_archive/retention_policy/builder.nim +++ b/waku/waku_archive/retention_policy/builder.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/[strutils, options], regex, stew/results +import std/[strutils, options], regex, results import ../retention_policy, ./retention_policy_time, diff --git a/waku/waku_archive/retention_policy/retention_policy_capacity.nim b/waku/waku_archive/retention_policy/retention_policy_capacity.nim index b29ca6531..4ad1c4b48 100644 --- a/waku/waku_archive/retention_policy/retention_policy_capacity.nim +++ b/waku/waku_archive/retention_policy/retention_policy_capacity.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import stew/results, chronicles, chronos +import results, chronicles, chronos import ../driver, ../retention_policy logScope: diff --git a/waku/waku_archive/retention_policy/retention_policy_size.nim b/waku/waku_archive/retention_policy/retention_policy_size.nim index 2e09e197f..5cae0b0f2 100644 --- a/waku/waku_archive/retention_policy/retention_policy_size.nim +++ b/waku/waku_archive/retention_policy/retention_policy_size.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import stew/results, chronicles, chronos +import results, chronicles, chronos import ../driver, ../retention_policy logScope: diff --git a/waku/waku_archive/retention_policy/retention_policy_time.nim b/waku/waku_archive/retention_policy/retention_policy_time.nim index 2a3d1de4b..56980d658 100644 --- a/waku/waku_archive/retention_policy/retention_policy_time.nim +++ b/waku/waku_archive/retention_policy/retention_policy_time.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/times, stew/results, chronicles, chronos +import std/times, results, chronicles, chronos import ../../waku_core, ../driver, ../retention_policy logScope: diff --git a/waku/waku_core/peers.nim b/waku/waku_core/peers.nim index ead73014b..07ad3bc4c 100644 --- a/waku/waku_core/peers.nim +++ b/waku/waku_core/peers.nim @@ -2,7 +2,7 @@ import std/[options, sequtils, strutils, uri, net], - stew/results, + results, chronos, eth/keys, eth/p2p/discoveryv5/enr, diff --git a/waku/waku_core/subscription/subscription_manager.nim b/waku/waku_core/subscription/subscription_manager.nim index 18af7fd95..1b950b3b4 100644 --- a/waku/waku_core/subscription/subscription_manager.nim +++ b/waku/waku_core/subscription/subscription_manager.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/tables, stew/results, chronicles, chronos +import std/tables, results, chronicles, chronos import ./push_handler, ../topics, ../message diff --git a/waku/waku_core/topics/content_topic.nim b/waku/waku_core/topics/content_topic.nim index bd7b5782a..b897c4c44 100644 --- a/waku/waku_core/topics/content_topic.nim +++ b/waku/waku_core/topics/content_topic.nim @@ -4,7 +4,7 @@ {.push raises: [].} -import std/options, std/strutils, stew/results +import std/options, std/strutils, results import ./parsing export parsing diff --git a/waku/waku_core/topics/parsing.nim b/waku/waku_core/topics/parsing.nim index 47a8979a8..b36b5eb50 100644 --- a/waku/waku_core/topics/parsing.nim +++ b/waku/waku_core/topics/parsing.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import stew/results +import results type ParsingErrorKind* {.pure.} = enum diff --git a/waku/waku_core/topics/pubsub_topic.nim b/waku/waku_core/topics/pubsub_topic.nim index 516d093bf..ef45cd6f7 100644 --- a/waku/waku_core/topics/pubsub_topic.nim +++ b/waku/waku_core/topics/pubsub_topic.nim @@ -4,7 +4,7 @@ {.push raises: [].} -import std/strutils, stew/[results, base10] +import std/strutils, stew/base10, results import ./parsing export parsing diff --git a/waku/waku_core/topics/sharding.nim b/waku/waku_core/topics/sharding.nim index c2bf63301..6c7b172d5 100644 --- a/waku/waku_core/topics/sharding.nim +++ b/waku/waku_core/topics/sharding.nim @@ -4,7 +4,7 @@ {.push raises: [].} -import nimcrypto, std/options, std/tables, stew/endians2, stew/results, stew/byteutils +import nimcrypto, std/options, std/tables, stew/endians2, results, stew/byteutils import ./content_topic, ./pubsub_topic diff --git a/waku/waku_enr/capabilities.nim b/waku/waku_enr/capabilities.nim index fb434e8ce..caec9d969 100644 --- a/waku/waku_enr/capabilities.nim +++ b/waku/waku_enr/capabilities.nim @@ -1,7 +1,6 @@ {.push raises: [].} -import - std/[options, bitops, sequtils, net], stew/results, eth/keys, libp2p/crypto/crypto +import std/[options, bitops, sequtils, net], results, eth/keys, libp2p/crypto/crypto import ../common/enr const CapabilitiesEnrField* = "waku2" diff --git a/waku/waku_enr/multiaddr.nim b/waku/waku_enr/multiaddr.nim index 4c815a22b..83e3d1992 100644 --- a/waku/waku_enr/multiaddr.nim +++ b/waku/waku_enr/multiaddr.nim @@ -2,7 +2,8 @@ import std/[options, sequtils, net], - stew/[endians2, results], + stew/endians2, + results, eth/keys, libp2p/[multiaddress, multicodec], libp2p/crypto/crypto diff --git a/waku/waku_enr/sharding.nim b/waku/waku_enr/sharding.nim index fd7ab939a..742688a07 100644 --- a/waku/waku_enr/sharding.nim +++ b/waku/waku_enr/sharding.nim @@ -2,7 +2,8 @@ import std/[options, bitops, sequtils, net], - stew/[endians2, results], + stew/endians2, + results, chronicles, eth/keys, libp2p/[multiaddress, multicodec], diff --git a/waku/waku_filter_v2/common.nim b/waku/waku_filter_v2/common.nim index 7d2a4ad0a..31adb56eb 100644 --- a/waku/waku_filter_v2/common.nim +++ b/waku/waku_filter_v2/common.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import stew/results +import results const WakuFilterSubscribeCodec* = "/vac/waku/filter-subscribe/2.0.0-beta1" diff --git a/waku/waku_keystore/conversion_utils.nim b/waku/waku_keystore/conversion_utils.nim index 4aaa6ec3e..c19044cbd 100644 --- a/waku/waku_keystore/conversion_utils.nim +++ b/waku/waku_keystore/conversion_utils.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import json, stew/[results, byteutils], ./protocol_types +import json, results, stew/byteutils, ./protocol_types # Encodes a KeystoreMembership credential to a byte sequence proc encode*(credential: KeystoreMembership): seq[byte] = diff --git a/waku/waku_keystore/keyfile.nim b/waku/waku_keystore/keyfile.nim index 5ea1aceb9..488e241ab 100644 --- a/waku/waku_keystore/keyfile.nim +++ b/waku/waku_keystore/keyfile.nim @@ -8,7 +8,7 @@ import std/[os, strutils, json, sequtils], nimcrypto/[bcmode, hmac, rijndael, pbkdf2, sha2, sysrand, utils, keccak, scrypt], - stew/results, + results, eth/keys, eth/keyfile/uuid diff --git a/waku/waku_keystore/protocol_types.nim b/waku/waku_keystore/protocol_types.nim index 02934fa78..6cfc2f183 100644 --- a/waku/waku_keystore/protocol_types.nim +++ b/waku/waku_keystore/protocol_types.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/[sequtils, tables], stew/[results, endians2], nimcrypto, stint +import std/[sequtils, tables], results, stew/endians2, nimcrypto, stint # NOTE: 256-bytes long credentials are due to the use of BN254 in RLN. Other implementations/curves might have a different byte size const CredentialByteSize* = 256 @@ -102,10 +102,10 @@ type KeystoreMembership* = ref object of RootObj proc `$`*(m: KeystoreMembership): string = return - "KeystoreMembership(chainId: " & m.membershipContract.chainId & - ", contractAddress: " & m.membershipContract.address & ", treeIndex: " & - $m.treeIndex & ", userMessageLimit: " & $m.userMessageLimit & - ", identityCredential: " & $m.identityCredential & ")" + "KeystoreMembership(chainId: " & m.membershipContract.chainId & ", contractAddress: " & + m.membershipContract.address & ", treeIndex: " & $m.treeIndex & + ", userMessageLimit: " & $m.userMessageLimit & ", identityCredential: " & + $m.identityCredential & ")" proc `==`*(x, y: KeystoreMembership): bool = return diff --git a/waku/waku_lightpush/client.nim b/waku/waku_lightpush/client.nim index c419e35e6..da502d456 100644 --- a/waku/waku_lightpush/client.nim +++ b/waku/waku_lightpush/client.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/options, stew/results, chronicles, chronos, metrics, bearssl/rand +import std/options, results, chronicles, chronos, metrics, bearssl/rand import ../node/peer_manager, ../utils/requests, diff --git a/waku/waku_lightpush/common.nim b/waku/waku_lightpush/common.nim index dc1ec0578..cd1f0818d 100644 --- a/waku/waku_lightpush/common.nim +++ b/waku/waku_lightpush/common.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import stew/results, chronos, libp2p/peerid +import results, chronos, libp2p/peerid import ../waku_core const WakuLightPushCodec* = "/vac/waku/lightpush/2.0.0-beta1" diff --git a/waku/waku_lightpush/protocol.nim b/waku/waku_lightpush/protocol.nim index f352bb276..565d8c237 100644 --- a/waku/waku_lightpush/protocol.nim +++ b/waku/waku_lightpush/protocol.nim @@ -1,7 +1,6 @@ {.push raises: [].} -import - std/options, stew/results, stew/byteutils, chronicles, chronos, metrics, bearssl/rand +import std/options, results, stew/byteutils, chronicles, chronos, metrics, bearssl/rand import ../node/peer_manager/peer_manager, ../waku_core, diff --git a/waku/waku_lightpush/self_req_handler.nim b/waku/waku_lightpush/self_req_handler.nim index 900e1796d..224a64e9d 100644 --- a/waku/waku_lightpush/self_req_handler.nim +++ b/waku/waku_lightpush/self_req_handler.nim @@ -9,7 +9,7 @@ ## which spawn a full service Waku node ## that could be used also as a lightpush client, helping testing and development. -import stew/results, chronos, std/options, metrics +import results, chronos, std/options, metrics import ../waku_core, ./protocol, diff --git a/waku/waku_metadata/protocol.nim b/waku/waku_metadata/protocol.nim index 8ecfc3cbf..2a0ba67d4 100644 --- a/waku/waku_metadata/protocol.nim +++ b/waku/waku_metadata/protocol.nim @@ -2,7 +2,7 @@ import std/[options, sequtils, sets], - stew/results, + results, chronicles, chronos, metrics, diff --git a/waku/waku_noise/noise_handshake_processing.nim b/waku/waku_noise/noise_handshake_processing.nim index 328d45c66..3ee518aee 100644 --- a/waku/waku_noise/noise_handshake_processing.nim +++ b/waku/waku_noise/noise_handshake_processing.nim @@ -8,7 +8,7 @@ import std/[options, strutils, tables] import chronos import chronicles import bearssl/rand -import stew/results +import results import libp2p/crypto/[chacha20poly1305, curve25519] diff --git a/waku/waku_peer_exchange/protocol.nim b/waku/waku_peer_exchange/protocol.nim index 7fdb69ea1..9c0f02604 100644 --- a/waku/waku_peer_exchange/protocol.nim +++ b/waku/waku_peer_exchange/protocol.nim @@ -1,6 +1,6 @@ import std/[options, sequtils, random], - stew/results, + results, chronicles, chronos, metrics, diff --git a/waku/waku_relay/message_id.nim b/waku/waku_relay/message_id.nim index 2b86411ca..655f50c5a 100644 --- a/waku/waku_relay/message_id.nim +++ b/waku/waku_relay/message_id.nim @@ -1,10 +1,7 @@ {.push raises: [].} import - stew/results, - nimcrypto/sha2, - libp2p/protocols/pubsub, - libp2p/protocols/pubsub/rpc/messages + results, nimcrypto/sha2, libp2p/protocols/pubsub, libp2p/protocols/pubsub/rpc/messages ## Message ID provider diff --git a/waku/waku_relay/protocol.nim b/waku/waku_relay/protocol.nim index 5baf2ce8c..e8dbcbb95 100644 --- a/waku/waku_relay/protocol.nim +++ b/waku/waku_relay/protocol.nim @@ -6,7 +6,8 @@ import std/strformat, - stew/[results, byteutils], + stew/byteutils, + results, sequtils, chronos, chronicles, diff --git a/waku/waku_rln_relay/group_manager/group_manager_base.nim b/waku/waku_rln_relay/group_manager/group_manager_base.nim index 97aaec099..e6d55fb09 100644 --- a/waku/waku_rln_relay/group_manager/group_manager_base.nim +++ b/waku/waku_rln_relay/group_manager/group_manager_base.nim @@ -4,7 +4,7 @@ import ../protocol_metrics, ../constants, ../rln -import options, chronos, stew/results, std/[deques, sequtils] +import options, chronos, results, std/[deques, sequtils] export options, chronos, results, protocol_types, protocol_metrics, deques @@ -60,15 +60,12 @@ method register*( # The user should have the identity secret to this commitment # It should be used when the user wants to join the group method register*( - g: GroupManager, - credentials: IdentityCredential, - userMessageLimit: UserMessageLimit, + g: GroupManager, credentials: IdentityCredential, userMessageLimit: UserMessageLimit ): Future[void] {.base, async: (raises: [Exception]).} = raise newException( CatchableError, "register proc for " & $g.type & " is not implemented yet" ) - # This proc is used to register a batch of new identity commitments into the merkle tree # The user may or may not have the identity secret to these commitments # It should be used when detecting a batch of new members in the group, and syncing the group state @@ -112,7 +109,6 @@ method atomicBatch*( CatchableError, "atomicBatch proc for " & $g.type & " is not implemented yet" ) - method stop*(g: GroupManager): Future[void] {.base, async.} = raise newException(CatchableError, "stop proc for " & $g.type & " is not implemented yet") @@ -204,7 +200,6 @@ method generateProof*( return err("proof generation failed: " & $error) return ok(proof) - method isReady*(g: GroupManager): Future[bool] {.base, async.} = raise newException( CatchableError, "isReady proc for " & $g.type & " is not implemented yet" diff --git a/waku/waku_rln_relay/nonce_manager.nim b/waku/waku_rln_relay/nonce_manager.nim index 490713d20..257d9692c 100644 --- a/waku/waku_rln_relay/nonce_manager.nim +++ b/waku/waku_rln_relay/nonce_manager.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import chronos, stew/results, times +import chronos, results, times import ./constants export chronos, times, results, constants @@ -48,7 +48,7 @@ proc getNonce*(n: NonceManager): NonceManagerResult[Nonce] = if retNonce >= n.nonceLimit: return err( - NonceManagerError( + NonceManagerError( kind: NonceLimitReached, error: "Nonce limit reached. Please wait for the next epoch. requested nonce: " & diff --git a/waku/waku_rln_relay/rln/wrappers.nim b/waku/waku_rln_relay/rln/wrappers.nim index f6056c5bc..3d2b62e21 100644 --- a/waku/waku_rln_relay/rln/wrappers.nim +++ b/waku/waku_rln_relay/rln/wrappers.nim @@ -3,7 +3,8 @@ import chronicles, options, eth/keys, - stew/[arrayops, byteutils, results, endians2], + stew/[arrayops, byteutils, endians2], + results, std/[sequtils, strutils, tables] import ./rln_interface, ../conversion_utils, ../protocol_types, ../protocol_metrics diff --git a/waku/waku_rln_relay/rln_relay.nim b/waku/waku_rln_relay/rln_relay.nim index 2cc0cc8c9..0c86f0746 100644 --- a/waku/waku_rln_relay/rln_relay.nim +++ b/waku/waku_rln_relay/rln_relay.nim @@ -1,4 +1,3 @@ - {.push raises: [].} import @@ -13,7 +12,7 @@ import eth/keys, libp2p/protocols/pubsub/rpc/messages, libp2p/protocols/pubsub/pubsub, - stew/results, + results, stew/[byteutils, arrayops] import ./group_manager, @@ -322,11 +321,13 @@ proc clearNullifierLog*(rlnPeer: WakuRlnRelay) = let epochInt = fromEpoch(epoch) # clean all epochs that are +- rlnMaxEpochGap from the current epoch - if (currentEpoch+rlnPeer.rlnMaxEpochGap) <= epochInt or epochInt <= (currentEpoch-rlnPeer.rlnMaxEpochGap): + if (currentEpoch + rlnPeer.rlnMaxEpochGap) <= epochInt or + epochInt <= (currentEpoch - rlnPeer.rlnMaxEpochGap): epochsToRemove.add(epoch) - + for epochRemove in epochsToRemove: - trace "clearing epochs from the nullifier log", currentEpoch = currentEpoch, cleanedEpoch = fromEpoch(epochRemove) + trace "clearing epochs from the nullifier log", + currentEpoch = currentEpoch, cleanedEpoch = fromEpoch(epochRemove) rlnPeer.nullifierLog.del(epochRemove) proc generateRlnValidator*( @@ -450,13 +451,11 @@ proc mount( nonceManager: NonceManager.init(conf.rlnRelayUserMessageLimit, conf.rlnEpochSizeSec.float), rlnEpochSizeSec: conf.rlnEpochSizeSec, - rlnMaxEpochGap: - max(uint64(MaxClockGapSeconds / float64(conf.rlnEpochSizeSec)), 1), + rlnMaxEpochGap: max(uint64(MaxClockGapSeconds / float64(conf.rlnEpochSizeSec)), 1), onFatalErrorAction: conf.onFatalErrorAction, ) ) - proc isReady*(rlnPeer: WakuRLNRelay): Future[bool] {.async: (raises: [Exception]).} = ## returns true if the rln-relay protocol is ready to relay messages ## returns false otherwise diff --git a/waku/waku_store/client.nim b/waku/waku_store/client.nim index 10abbb8e0..aa3f6629d 100644 --- a/waku/waku_store/client.nim +++ b/waku/waku_store/client.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/options, stew/results, chronicles, chronos, metrics, bearssl/rand +import std/options, results, chronicles, chronos, metrics, bearssl/rand import ../node/peer_manager, ../utils/requests, ./protocol_metrics, ./common, ./rpc_codec @@ -16,7 +16,7 @@ type WakuStoreClient* = ref object proc new*( T: type WakuStoreClient, peerManager: PeerManager, rng: ref rand.HmacDrbgContext -): T = +): T {.gcsafe.} = WakuStoreClient(peerManager: peerManager, rng: rng) proc sendStoreRequest( diff --git a/waku/waku_store/common.nim b/waku/waku_store/common.nim index bd6ccb337..2394cc7d5 100644 --- a/waku/waku_store/common.nim +++ b/waku/waku_store/common.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/[options], stew/results +import std/[options], results import ../waku_core, ../common/paging const diff --git a/waku/waku_store/protocol.nim b/waku/waku_store/protocol.nim index e91acb207..eda5168cf 100644 --- a/waku/waku_store/protocol.nim +++ b/waku/waku_store/protocol.nim @@ -5,7 +5,7 @@ import std/options, - stew/results, + results, chronicles, chronos, bearssl/rand, diff --git a/waku/waku_store/self_req_handler.nim b/waku/waku_store/self_req_handler.nim index 426ae72b7..116946da5 100644 --- a/waku/waku_store/self_req_handler.nim +++ b/waku/waku_store/self_req_handler.nim @@ -13,7 +13,7 @@ ## stored by that local store node. ## -import stew/results, chronos +import results, chronos import ./protocol, ./common proc handleSelfStoreRequest*( diff --git a/waku/waku_store_legacy/client.nim b/waku/waku_store_legacy/client.nim index f8eea5ceb..2e87c4ca4 100644 --- a/waku/waku_store_legacy/client.nim +++ b/waku/waku_store_legacy/client.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/options, stew/results, chronicles, chronos, metrics, bearssl/rand +import std/options, results, chronicles, chronos, metrics, bearssl/rand import ../node/peer_manager, ../utils/requests, diff --git a/waku/waku_store_legacy/common.nim b/waku/waku_store_legacy/common.nim index 004855584..3f88f9509 100644 --- a/waku/waku_store_legacy/common.nim +++ b/waku/waku_store_legacy/common.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/[options, sequtils], stew/results, stew/byteutils, nimcrypto/sha2 +import std/[options, sequtils], results, stew/byteutils, nimcrypto/sha2 import ../waku_core, ../common/paging const diff --git a/waku/waku_store_legacy/protocol.nim b/waku/waku_store_legacy/protocol.nim index 2c552634b..5fe388228 100644 --- a/waku/waku_store_legacy/protocol.nim +++ b/waku/waku_store_legacy/protocol.nim @@ -5,7 +5,7 @@ import std/options, - stew/results, + results, chronicles, chronos, bearssl/rand, diff --git a/waku/waku_store_legacy/rpc.nim b/waku/waku_store_legacy/rpc.nim index fad177d3f..8c448a04a 100644 --- a/waku/waku_store_legacy/rpc.nim +++ b/waku/waku_store_legacy/rpc.nim @@ -1,6 +1,6 @@ {.push raises: [].} -import std/[options, sequtils], stew/results +import std/[options, sequtils], results import ../waku_core, ../common/paging, ./common ## Wire protocol diff --git a/waku/waku_store_legacy/self_req_handler.nim b/waku/waku_store_legacy/self_req_handler.nim index 060e073ab..e465d9e5b 100644 --- a/waku/waku_store_legacy/self_req_handler.nim +++ b/waku/waku_store_legacy/self_req_handler.nim @@ -13,7 +13,7 @@ ## stored by that local store node. ## -import stew/results, chronos +import results, chronos import ./protocol, ./common proc handleSelfStoreRequest*(