[bug] content of the op_return wasn't correctly serialized

This commit is contained in:
Sosthene 2024-05-22 20:51:08 +02:00
parent 1f8da7ea61
commit f5cdb7e2f1

View File

@ -4,6 +4,7 @@ use std::str::FromStr;
use anyhow::{Error, Result}; use anyhow::{Error, Result};
use rand::{thread_rng, Rng, RngCore}; use rand::{thread_rng, Rng, RngCore};
use sp_client::bitcoin::hex::FromHex;
use sp_client::bitcoin::psbt::raw; use sp_client::bitcoin::psbt::raw;
use sp_client::bitcoin::{Psbt, Transaction}; use sp_client::bitcoin::{Psbt, Transaction};
use sp_client::bitcoin::{Amount, OutPoint}; 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")); 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( let mut new_psbt = sp_wallet.get_client().create_new_psbt(
inputs, inputs,
vec![recipient], 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(); let change_addr = sp_wallet.get_client().sp_receiver.get_change_address();