From c227c65a13e55fd42ff495f06567ce663dee8418 Mon Sep 17 00:00:00 2001 From: Gregory Sanders Date: Wed, 17 Apr 2019 14:23:23 -0400 Subject: [PATCH] QT: Cache the blinded destination values on transactions we create, like -cli --- src/interfaces/wallet.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/interfaces/wallet.cpp b/src/interfaces/wallet.cpp index af06b8d7a7..d3eece3757 100644 --- a/src/interfaces/wallet.cpp +++ b/src/interfaces/wallet.cpp @@ -43,13 +43,14 @@ public: { LOCK2(cs_main, m_wallet.cs_wallet); CValidationState state; - if (!m_wallet.CommitTransaction(m_tx, std::move(value_map), std::move(order_form), m_keys, g_connman.get(), state)) { + if (!m_wallet.CommitTransaction(m_tx, std::move(value_map), std::move(order_form), m_keys, g_connman.get(), state, g_con_elementsmode ? &m_blind_details : nullptr)) { reject_reason = state.GetRejectReason(); return false; } return true; } + BlindDetails m_blind_details; CTransactionRef m_tx; CWallet& m_wallet; std::vector> m_keys; @@ -249,12 +250,11 @@ public: pending->m_keys.emplace_back(new CReserveKey(&m_wallet)); } } - BlindDetails blind_details; if (!m_wallet.CreateTransaction(recipients, pending->m_tx, pending->m_keys, fee, change_pos, - fail_reason, coin_control, sign, g_con_elementsmode ? &blind_details : nullptr)) { + fail_reason, coin_control, sign, g_con_elementsmode ? &pending->m_blind_details : nullptr)) { return {}; } - out_amounts = blind_details.o_amounts; + out_amounts = pending->m_blind_details.o_amounts; return std::move(pending); } bool transactionCanBeAbandoned(const uint256& txid) override { return m_wallet.TransactionCanBeAbandoned(txid); }