From 4ea8ff3b610e2f772e5b057fff714c6f24efdaff Mon Sep 17 00:00:00 2001 From: gladcow Date: Thu, 9 Apr 2020 16:31:46 +0300 Subject: [PATCH] save inputs in transaction string --- .../sidechain_net_handler_bitcoin.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp index ca6abfc3..05087bbc 100644 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler_bitcoin.cpp @@ -18,6 +18,7 @@ #include #include #include +#include namespace graphene { namespace peerplays_sidechain { @@ -1787,6 +1788,7 @@ std::string sidechain_net_handler_bitcoin::create_transaction_standalone(const s //} libbitcoin::chain::transaction tx; tx.set_version(2u); + std::vector in_amounts; for (auto in : inputs) { libbitcoin::chain::input bin; libbitcoin::hash_digest tx_id; @@ -1794,6 +1796,7 @@ std::string sidechain_net_handler_bitcoin::create_transaction_standalone(const s bin.set_previous_output(libbitcoin::chain::output_point(tx_id, in.out_num_)); bin.set_sequence(libbitcoin::max_input_sequence); tx.inputs().push_back(bin); + in_amounts.push_back(in.amount_); } for (auto out : outputs) { libbitcoin::chain::output bout; @@ -1808,7 +1811,7 @@ std::string sidechain_net_handler_bitcoin::create_transaction_standalone(const s tx.outputs().push_back(bout); } - std::string tx_raw = libbitcoin::encode_base16(tx.to_data()); + std::string tx_raw = save_tx_data_to_string(tx.to_data(), in_amounts); return tx_raw; } @@ -1913,10 +1916,8 @@ std::string sidechain_net_handler_bitcoin::sign_transaction_standalone(const sid libbitcoin::data_chunk data; - if (!libbitcoin::decode_base16(data, sto.transaction)) { - elog("Failed to decode transaction ${tx}", ("tx", sto.transaction)); - return ""; - } + std::vector in_amounts; + read_tx_data_from_string(sto.transaction, data, in_amounts); libbitcoin::chain::transaction tx; if (!tx.from_data(data)) { elog("Failed to decode transaction ${tx}", ("tx", sto.transaction));