From f3e6b51e9c2b78b135e085c1c6c2129bae007aff Mon Sep 17 00:00:00 2001 From: Arseniy Klempner Date: Mon, 15 Jun 2026 15:58:29 -0600 Subject: [PATCH] fix(option_shims): import wherever valueOr is called on std/Option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #3807 still uses std/Option.valueOr in ~30 places across logos_delivery but does not consistently import waku/common/option_shims (the local template that restores libp2p-1.15.2's valueOr/withValue for Option[T]; libp2p 1.15.3 dropped those overloads). Without the shim, nim picks up only Result[T,E].valueOr from nim-results and fails with 'type mismatch'. Surfaced when building liblogoschat which pulls a much wider slice of nwaku than liblogosdelivery does. Each touched file now imports option_shims either inline alongside other ../common/ entries or as a standalone top-level import where the file uses absolute logos_delivery/ paths. No semantic change — the shim restores the historical Option valueOr behavior. Same files compiling against the older libp2p (where valueOr on Option came from libp2p/utility) would behave identically. --- logos_delivery/waku/api/api_conf.nim | 1 + logos_delivery/waku/common/enr/typed_record.nim | 2 ++ logos_delivery/waku/discovery/waku_dnsdisc.nim | 2 ++ logos_delivery/waku/discovery/waku_kademlia.nim | 2 ++ logos_delivery/waku/factory/waku.nim | 2 ++ logos_delivery/waku/node/health_monitor/node_health_monitor.nim | 2 ++ .../waku/node/peer_manager/peer_store/waku_peer_storage.nim | 2 ++ logos_delivery/waku/node/waku_node/filter.nim | 2 ++ logos_delivery/waku/node/waku_node/peer_exchange.nim | 2 ++ logos_delivery/waku/node/waku_node/ping.nim | 2 ++ logos_delivery/waku/node/waku_node/store.nim | 2 ++ logos_delivery/waku/rest_api/endpoint/health/types.nim | 2 ++ logos_delivery/waku/rest_api/endpoint/origin_handler.nim | 2 ++ logos_delivery/waku/rest_api/endpoint/relay/handlers.nim | 2 ++ logos_delivery/waku/rest_api/endpoint/rest_serdes.nim | 2 ++ logos_delivery/waku/rest_api/endpoint/store/types.nim | 2 ++ logos_delivery/waku/rest_api/handlers.nim | 2 ++ logos_delivery/waku/waku_archive/archive.nim | 1 + .../waku_archive/driver/postgres_driver/postgres_driver.nim | 2 ++ .../waku/waku_archive/driver/queue_driver/queue_driver.nim | 2 ++ logos_delivery/waku/waku_archive/retention_policy/builder.nim | 2 ++ logos_delivery/waku/waku_core/peers.nim | 2 ++ logos_delivery/waku/waku_enr/capabilities.nim | 2 ++ logos_delivery/waku/waku_enr/multiaddr.nim | 2 ++ logos_delivery/waku/waku_lightpush/protocol.nim | 2 ++ logos_delivery/waku/waku_lightpush_legacy/client.nim | 1 + logos_delivery/waku/waku_metadata/protocol.nim | 2 ++ logos_delivery/waku/waku_mix/logos_core_client.nim | 2 ++ logos_delivery/waku/waku_mix/protocol.nim | 2 ++ logos_delivery/waku/waku_peer_exchange/protocol.nim | 1 + logos_delivery/waku/waku_rendezvous/client.nim | 1 + logos_delivery/waku/waku_rendezvous/common.nim | 2 ++ logos_delivery/waku/waku_rendezvous/protocol.nim | 1 + logos_delivery/waku/waku_rln_relay/rln_gifter/client.nim | 2 ++ logos_delivery/waku/waku_rln_relay/rln_gifter/protocol.nim | 2 ++ logos_delivery/waku/waku_store/resume.nim | 1 + logos_delivery/waku/waku_store_sync/reconciliation.nim | 1 + logos_delivery/waku/waku_store_sync/transfer.nim | 1 + 38 files changed, 67 insertions(+) diff --git a/logos_delivery/waku/api/api_conf.nim b/logos_delivery/waku/api/api_conf.nim index b01fae8bd..9257f548a 100644 --- a/logos_delivery/waku/api/api_conf.nim +++ b/logos_delivery/waku/api/api_conf.nim @@ -6,6 +6,7 @@ import json_serialization, json_serialization/std/options as json_options import logos_delivery/waku/common/utils/parse_size_units, logos_delivery/waku/common/logging, + logos_delivery/waku/common/option_shims, logos_delivery/waku/factory/waku_conf, logos_delivery/waku/factory/conf_builder/conf_builder, logos_delivery/waku/factory/networks_config, diff --git a/logos_delivery/waku/common/enr/typed_record.nim b/logos_delivery/waku/common/enr/typed_record.nim index 1db357621..5925da6f9 100644 --- a/logos_delivery/waku/common/enr/typed_record.nim +++ b/logos_delivery/waku/common/enr/typed_record.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + 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/logos_delivery/waku/discovery/waku_dnsdisc.nim b/logos_delivery/waku/discovery/waku_dnsdisc.nim index 0d0a82948..a9f10677a 100644 --- a/logos_delivery/waku/discovery/waku_dnsdisc.nim +++ b/logos_delivery/waku/discovery/waku_dnsdisc.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + ## A set of utilities to integrate EIP-1459 DNS-based discovery ## for Waku v2 nodes. ## diff --git a/logos_delivery/waku/discovery/waku_kademlia.nim b/logos_delivery/waku/discovery/waku_kademlia.nim index f4ea62d2b..a659b9847 100644 --- a/logos_delivery/waku/discovery/waku_kademlia.nim +++ b/logos_delivery/waku/discovery/waku_kademlia.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, sequtils] import chronos, diff --git a/logos_delivery/waku/factory/waku.nim b/logos_delivery/waku/factory/waku.nim index 54debadab..23073213c 100644 --- a/logos_delivery/waku/factory/waku.nim +++ b/logos_delivery/waku/factory/waku.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, sequtils, strformat], results, diff --git a/logos_delivery/waku/node/health_monitor/node_health_monitor.nim b/logos_delivery/waku/node/health_monitor/node_health_monitor.nim index 74f3defec..a1ce35cd4 100644 --- a/logos_delivery/waku/node/health_monitor/node_health_monitor.nim +++ b/logos_delivery/waku/node/health_monitor/node_health_monitor.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, sets, random, sequtils, json, strutils, tables], chronos, diff --git a/logos_delivery/waku/node/peer_manager/peer_store/waku_peer_storage.nim b/logos_delivery/waku/node/peer_manager/peer_store/waku_peer_storage.nim index dc1452618..cd68c1226 100644 --- a/logos_delivery/waku/node/peer_manager/peer_store/waku_peer_storage.nim +++ b/logos_delivery/waku/node/peer_manager/peer_store/waku_peer_storage.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[sets, options], results, diff --git a/logos_delivery/waku/node/waku_node/filter.nim b/logos_delivery/waku/node/waku_node/filter.nim index 0db4875b0..7d08233ca 100644 --- a/logos_delivery/waku/node/waku_node/filter.nim +++ b/logos_delivery/waku/node/waku_node/filter.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, sugar, tables, sequtils, os, net], chronos, diff --git a/logos_delivery/waku/node/waku_node/peer_exchange.nim b/logos_delivery/waku/node/waku_node/peer_exchange.nim index 1cb6bd3bb..227b7cb2f 100644 --- a/logos_delivery/waku/node/waku_node/peer_exchange.nim +++ b/logos_delivery/waku/node/waku_node/peer_exchange.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, tables, net], chronos, diff --git a/logos_delivery/waku/node/waku_node/ping.nim b/logos_delivery/waku/node/waku_node/ping.nim index f9da3980e..fd04b1f24 100644 --- a/logos_delivery/waku/node/waku_node/ping.nim +++ b/logos_delivery/waku/node/waku_node/ping.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options], chronos, diff --git a/logos_delivery/waku/node/waku_node/store.nim b/logos_delivery/waku/node/waku_node/store.nim index fcf0dfc89..e9b7fa120 100644 --- a/logos_delivery/waku/node/waku_node/store.nim +++ b/logos_delivery/waku/node/waku_node/store.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options], chronos, diff --git a/logos_delivery/waku/rest_api/endpoint/health/types.nim b/logos_delivery/waku/rest_api/endpoint/health/types.nim index 00e101133..105c1b6cb 100644 --- a/logos_delivery/waku/rest_api/endpoint/health/types.nim +++ b/logos_delivery/waku/rest_api/endpoint/health/types.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import results import chronicles, json_serialization, json_serialization/std/options import ../serdes diff --git a/logos_delivery/waku/rest_api/endpoint/origin_handler.nim b/logos_delivery/waku/rest_api/endpoint/origin_handler.nim index 9752bfb56..f75ef1469 100644 --- a/logos_delivery/waku/rest_api/endpoint/origin_handler.nim +++ b/logos_delivery/waku/rest_api/endpoint/origin_handler.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, strutils, net], regex, diff --git a/logos_delivery/waku/rest_api/endpoint/relay/handlers.nim b/logos_delivery/waku/rest_api/endpoint/relay/handlers.nim index 4a1415361..e2d9df52c 100644 --- a/logos_delivery/waku/rest_api/endpoint/relay/handlers.nim +++ b/logos_delivery/waku/rest_api/endpoint/relay/handlers.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/sequtils, stew/byteutils, diff --git a/logos_delivery/waku/rest_api/endpoint/rest_serdes.nim b/logos_delivery/waku/rest_api/endpoint/rest_serdes.nim index 8dcb7c8f1..8cdd01bde 100644 --- a/logos_delivery/waku/rest_api/endpoint/rest_serdes.nim +++ b/logos_delivery/waku/rest_api/endpoint/rest_serdes.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/typetraits, std/os, diff --git a/logos_delivery/waku/rest_api/endpoint/store/types.nim b/logos_delivery/waku/rest_api/endpoint/store/types.nim index 99818b5ff..ae4796a8c 100644 --- a/logos_delivery/waku/rest_api/endpoint/store/types.nim +++ b/logos_delivery/waku/rest_api/endpoint/store/types.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[sets, strformat, uri, options, sequtils], stew/byteutils, diff --git a/logos_delivery/waku/rest_api/handlers.nim b/logos_delivery/waku/rest_api/handlers.nim index 4fc922f36..dbd5feeea 100644 --- a/logos_delivery/waku/rest_api/handlers.nim +++ b/logos_delivery/waku/rest_api/handlers.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import chronos, std/[options, sequtils], results import ../discovery/waku_discv5, ../waku_relay, ../waku_core, ./message_cache diff --git a/logos_delivery/waku/waku_archive/archive.nim b/logos_delivery/waku/waku_archive/archive.nim index a257a55b1..079ab3f6a 100644 --- a/logos_delivery/waku/waku_archive/archive.nim +++ b/logos_delivery/waku/waku_archive/archive.nim @@ -9,6 +9,7 @@ import metrics import ../common/paging, + ../common/option_shims, ./driver, ./retention_policy, ../waku_core, diff --git a/logos_delivery/waku/waku_archive/driver/postgres_driver/postgres_driver.nim b/logos_delivery/waku/waku_archive/driver/postgres_driver/postgres_driver.nim index 82c8ec2ae..a41739c7c 100644 --- a/logos_delivery/waku/waku_archive/driver/postgres_driver/postgres_driver.nim +++ b/logos_delivery/waku/waku_archive/driver/postgres_driver/postgres_driver.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, sequtils, strutils, strformat, times, sugar], stew/[byteutils, arrayops], diff --git a/logos_delivery/waku/waku_archive/driver/queue_driver/queue_driver.nim b/logos_delivery/waku/waku_archive/driver/queue_driver/queue_driver.nim index 2ffc9ab00..c95d4ca01 100644 --- a/logos_delivery/waku/waku_archive/driver/queue_driver/queue_driver.nim +++ b/logos_delivery/waku/waku_archive/driver/queue_driver/queue_driver.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/options, results, stew/sorted_set, chronicles, chronos import ../../../waku_core, ../../common, ../../driver, ./index diff --git a/logos_delivery/waku/waku_archive/retention_policy/builder.nim b/logos_delivery/waku/waku_archive/retention_policy/builder.nim index 7e777f4a0..9caf5908d 100644 --- a/logos_delivery/waku/waku_archive/retention_policy/builder.nim +++ b/logos_delivery/waku/waku_archive/retention_policy/builder.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[strutils, options], regex, results import ../retention_policy, diff --git a/logos_delivery/waku/waku_core/peers.nim b/logos_delivery/waku/waku_core/peers.nim index c4b8b593e..1fd36c713 100644 --- a/logos_delivery/waku/waku_core/peers.nim +++ b/logos_delivery/waku/waku_core/peers.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, sequtils, strutils, uri, net], results, diff --git a/logos_delivery/waku/waku_enr/capabilities.nim b/logos_delivery/waku/waku_enr/capabilities.nim index 6a5b5338f..2f4a8869a 100644 --- a/logos_delivery/waku/waku_enr/capabilities.nim +++ b/logos_delivery/waku/waku_enr/capabilities.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, bitops, sequtils, net, tables], results, eth/keys, libp2p/crypto/crypto import ../common/enr, ../waku_core/codecs diff --git a/logos_delivery/waku/waku_enr/multiaddr.nim b/logos_delivery/waku/waku_enr/multiaddr.nim index 4d6e9baa7..2f47f11fe 100644 --- a/logos_delivery/waku/waku_enr/multiaddr.nim +++ b/logos_delivery/waku/waku_enr/multiaddr.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, sequtils, net], stew/endians2, diff --git a/logos_delivery/waku/waku_lightpush/protocol.nim b/logos_delivery/waku/waku_lightpush/protocol.nim index 8336f4dfc..c21a3cba2 100644 --- a/logos_delivery/waku/waku_lightpush/protocol.nim +++ b/logos_delivery/waku/waku_lightpush/protocol.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, strutils], results, diff --git a/logos_delivery/waku/waku_lightpush_legacy/client.nim b/logos_delivery/waku/waku_lightpush_legacy/client.nim index ab489bec9..b898e0662 100644 --- a/logos_delivery/waku/waku_lightpush_legacy/client.nim +++ b/logos_delivery/waku/waku_lightpush_legacy/client.nim @@ -7,6 +7,7 @@ import ../node/peer_manager, ../utils/requests, ../waku_core, + ../common/option_shims, ./common, ./protocol_metrics, ./rpc, diff --git a/logos_delivery/waku/waku_metadata/protocol.nim b/logos_delivery/waku/waku_metadata/protocol.nim index 7c72a6934..0dc5da0db 100644 --- a/logos_delivery/waku/waku_metadata/protocol.nim +++ b/logos_delivery/waku/waku_metadata/protocol.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, sequtils], results, diff --git a/logos_delivery/waku/waku_mix/logos_core_client.nim b/logos_delivery/waku/waku_mix/logos_core_client.nim index cfda4488e..0ca7f19a9 100644 --- a/logos_delivery/waku/waku_mix/logos_core_client.nim +++ b/logos_delivery/waku/waku_mix/logos_core_client.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + ## Mix RLN client: fetches roots/proofs from logos-core via the C++ RLN module. ## The C++ delivery module registers an RLN fetcher at startup; event-push ## caching avoids round-trips on the hot path. diff --git a/logos_delivery/waku/waku_mix/protocol.nim b/logos_delivery/waku/waku_mix/protocol.nim index 49280df0b..a2ff21fd3 100644 --- a/logos_delivery/waku/waku_mix/protocol.nim +++ b/logos_delivery/waku/waku_mix/protocol.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import chronicles, std/options, chronos, results, metrics import diff --git a/logos_delivery/waku/waku_peer_exchange/protocol.nim b/logos_delivery/waku/waku_peer_exchange/protocol.nim index b99f5eabf..cabc74f05 100644 --- a/logos_delivery/waku/waku_peer_exchange/protocol.nim +++ b/logos_delivery/waku/waku_peer_exchange/protocol.nim @@ -9,6 +9,7 @@ import eth/p2p/discoveryv5/enr import ../common/nimchronos, + ../common/option_shims, ../node/peer_manager, ../waku_core, ../discovery/waku_discv5, diff --git a/logos_delivery/waku/waku_rendezvous/client.nim b/logos_delivery/waku/waku_rendezvous/client.nim index ca2f1ad08..40b44fce6 100644 --- a/logos_delivery/waku/waku_rendezvous/client.nim +++ b/logos_delivery/waku/waku_rendezvous/client.nim @@ -15,6 +15,7 @@ import logos_delivery/waku/node/peer_manager, logos_delivery/waku/waku_core/peers, logos_delivery/waku/waku_core/codecs, + logos_delivery/waku/common/option_shims, ./common, ./waku_peer_record diff --git a/logos_delivery/waku/waku_rendezvous/common.nim b/logos_delivery/waku/waku_rendezvous/common.nim index 18c633efb..a8b1c41a2 100644 --- a/logos_delivery/waku/waku_rendezvous/common.nim +++ b/logos_delivery/waku/waku_rendezvous/common.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/options, chronos import ../common/enr, ../waku_enr/capabilities, ../waku_enr/sharding diff --git a/logos_delivery/waku/waku_rendezvous/protocol.nim b/logos_delivery/waku/waku_rendezvous/protocol.nim index 01f0778cd..4e48468ff 100644 --- a/logos_delivery/waku/waku_rendezvous/protocol.nim +++ b/logos_delivery/waku/waku_rendezvous/protocol.nim @@ -19,6 +19,7 @@ import metrics except collect import ../node/peer_manager, ../common/callbacks, + ../common/option_shims, ../waku_enr/capabilities, ../waku_core/peers, ../waku_core/codecs, diff --git a/logos_delivery/waku/waku_rln_relay/rln_gifter/client.nim b/logos_delivery/waku/waku_rln_relay/rln_gifter/client.nim index 7399549e0..79299e995 100644 --- a/logos_delivery/waku/waku_rln_relay/rln_gifter/client.nim +++ b/logos_delivery/waku/waku_rln_relay/rln_gifter/client.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/options, results, chronicles, chronos, bearssl/rand import libp2p/stream/connection import diff --git a/logos_delivery/waku/waku_rln_relay/rln_gifter/protocol.nim b/logos_delivery/waku/waku_rln_relay/rln_gifter/protocol.nim index d9395d2e5..d17077a0f 100644 --- a/logos_delivery/waku/waku_rln_relay/rln_gifter/protocol.nim +++ b/logos_delivery/waku/waku_rln_relay/rln_gifter/protocol.nim @@ -1,5 +1,7 @@ {.push raises: [].} +import logos_delivery/waku/common/option_shims + import std/[options, sets], results, diff --git a/logos_delivery/waku/waku_store/resume.nim b/logos_delivery/waku/waku_store/resume.nim index b7864da94..04ef7e858 100644 --- a/logos_delivery/waku/waku_store/resume.nim +++ b/logos_delivery/waku/waku_store/resume.nim @@ -13,6 +13,7 @@ import import ../common/databases/db_sqlite, + ../common/option_shims, ../waku_core, ../waku_archive, ../common/nimchronos, diff --git a/logos_delivery/waku/waku_store_sync/reconciliation.nim b/logos_delivery/waku/waku_store_sync/reconciliation.nim index b18251fff..c73b5867e 100644 --- a/logos_delivery/waku/waku_store_sync/reconciliation.nim +++ b/logos_delivery/waku/waku_store_sync/reconciliation.nim @@ -14,6 +14,7 @@ import eth/p2p/discoveryv5/enr import ../common/nimchronos, + ../common/option_shims, ../common/protobuf, ../common/paging, ../waku_enr, diff --git a/logos_delivery/waku/waku_store_sync/transfer.nim b/logos_delivery/waku/waku_store_sync/transfer.nim index 5d20afb18..c3ee7af5b 100644 --- a/logos_delivery/waku/waku_store_sync/transfer.nim +++ b/logos_delivery/waku/waku_store_sync/transfer.nim @@ -13,6 +13,7 @@ import eth/p2p/discoveryv5/enr import ../common/nimchronos, + ../common/option_shims, ../common/protobuf, ../waku_enr, ../waku_core/codecs,