From f5cdb7e2f14407627402a404fb1675ac53d81340 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Wed, 22 May 2024 20:51:08 +0200 Subject: [PATCH] [bug] content of the op_return wasn't correctly serialized --- src/silentpayments.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/silentpayments.rs b/src/silentpayments.rs index b7e2023..5688af0 100644 --- a/src/silentpayments.rs +++ b/src/silentpayments.rs @@ -4,6 +4,7 @@ use std::str::FromStr; use anyhow::{Error, Result}; use rand::{thread_rng, Rng, RngCore}; +use sp_client::bitcoin::hex::FromHex; use sp_client::bitcoin::psbt::raw; use sp_client::bitcoin::{Psbt, Transaction}; use sp_client::bitcoin::{Amount, OutPoint}; @@ -149,10 +150,12 @@ pub fn create_transaction_for_address_with_shared_secret( return Err(Error::msg("Not enough available funds")); } + let message_bin = if message.is_some() { Vec::from_hex(message.unwrap())? } else { vec![] }; + let mut new_psbt = sp_wallet.get_client().create_new_psbt( inputs, vec![recipient], - message.map(|m| m.as_bytes()), + if !message_bin.is_empty() { Some(&message_bin) } else { None }, )?; let change_addr = sp_wallet.get_client().sp_receiver.get_change_address();