2026-06-25 11:54:47 +02:00
|
|
|
proc discv5_update_bootnodes*(
|
|
|
|
|
self: LogosDelivery, bootnodes: string
|
|
|
|
|
): Future[Result[string, string]] {.ffi.} =
|
|
|
|
|
## `bootnodes` is a JSON array of ENRs, e.g. `["enr:...", "enr:..."]`.
|
|
|
|
|
(await self.waku.discv5UpdateBootnodes(bootnodes)).isOkOr:
|
2026-06-25 00:40:02 +02:00
|
|
|
return err(error)
|
2026-06-25 11:54:47 +02:00
|
|
|
return ok("")
|
2025-12-19 17:00:43 +01:00
|
|
|
|
2026-06-25 11:54:47 +02:00
|
|
|
proc dns_discovery*(
|
|
|
|
|
self: LogosDelivery, enrTreeUrl: string, nameDnsServer: string, timeoutMs: int
|
|
|
|
|
): Future[Result[string, string]] {.ffi.} =
|
|
|
|
|
let nodes = (await self.waku.dnsDiscovery(enrTreeUrl, nameDnsServer, timeoutMs)).valueOr:
|
2026-06-25 00:40:02 +02:00
|
|
|
return err(error)
|
2025-12-19 17:00:43 +01:00
|
|
|
return ok(nodes.join(","))
|
|
|
|
|
|
2026-06-25 11:54:47 +02:00
|
|
|
proc start_discv5*(self: LogosDelivery): Future[Result[string, string]] {.ffi.} =
|
|
|
|
|
(await self.waku.startDiscv5()).isOkOr:
|
2026-06-25 00:40:02 +02:00
|
|
|
return err(error)
|
2026-06-25 11:54:47 +02:00
|
|
|
return ok("")
|
2025-12-19 17:00:43 +01:00
|
|
|
|
2026-06-25 11:54:47 +02:00
|
|
|
proc stop_discv5*(self: LogosDelivery): Future[Result[string, string]] {.ffi.} =
|
|
|
|
|
(await self.waku.stopDiscv5()).isOkOr:
|
2026-06-25 00:40:02 +02:00
|
|
|
return err(error)
|
2026-06-25 11:54:47 +02:00
|
|
|
return ok("")
|
2025-12-19 17:00:43 +01:00
|
|
|
|
2026-06-25 11:54:47 +02:00
|
|
|
proc peer_exchange_request*(
|
|
|
|
|
self: LogosDelivery, numPeers: uint64
|
|
|
|
|
): Future[Result[string, string]] {.ffi.} =
|
|
|
|
|
let n = (await self.waku.peerExchangeRequest(numPeers)).valueOr:
|
2026-06-25 00:40:02 +02:00
|
|
|
return err(error)
|
2026-06-25 11:54:47 +02:00
|
|
|
return ok($n)
|