From c03bf32c71364d1ae1463da465718ad6a89b5323 Mon Sep 17 00:00:00 2001 From: NagyZoltanPeter <113987313+NagyZoltanPeter@users.noreply.github.com> Date: Tue, 17 Feb 2026 03:29:49 +0100 Subject: [PATCH] Fix base64 decode of payload --- .../logos_delivery_api/messaging_api.nim | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/liblogosdelivery/logos_delivery_api/messaging_api.nim b/liblogosdelivery/logos_delivery_api/messaging_api.nim index 536c53fef..cb2771034 100644 --- a/liblogosdelivery/logos_delivery_api/messaging_api.nim +++ b/liblogosdelivery/logos_delivery_api/messaging_api.nim @@ -1,7 +1,8 @@ -import std/[json, base64] +import std/[json] import chronos, results, ffi import stew/byteutils import + waku/common/base64, waku/factory/waku, waku/waku_core/topics/content_topic, waku/api/[api, types], @@ -70,14 +71,9 @@ proc logosdelivery_send( if not jsonNode.hasKey("payload"): return err("Missing payload field") - var payload: seq[byte] - try: - let payloadStr = jsonNode["payload"].getStr() - # base64.decode returns string, convert to seq[byte] - let decodedStr = base64.decode(payloadStr) - payload = cast[seq[byte]](decodedStr) - except Exception as e: - return err("Failed to decode payload: " & e.msg) + let payloadStr = jsonNode["payload"].getStr() + let payload = base64.decode(Base64String(payloadStr)).valueOr: + return err("invalid payload format: " & error) # Extract ephemeral flag let ephemeral = jsonNode.getOrDefault("ephemeral").getBool(false)