diff --git a/src/interfaces/wallet.cpp b/src/interfaces/wallet.cpp index f7b3830c6e..bc1ea2287e 100644 --- a/src/interfaces/wallet.cpp +++ b/src/interfaces/wallet.cpp @@ -250,7 +250,7 @@ public: } BlindDetails blind_details; if (!m_wallet.CreateTransaction(recipients, pending->m_tx, pending->m_keys, fee, change_pos, - fail_reason, coin_control, sign, &blind_details)) { + fail_reason, coin_control, sign, g_con_elementsmode ? &blind_details : nullptr)) { return {}; } out_amounts = blind_details.o_amounts; diff --git a/src/qt/walletmodeltransaction.cpp b/src/qt/walletmodeltransaction.cpp index ab473a3fc3..a7085d2e4f 100644 --- a/src/qt/walletmodeltransaction.cpp +++ b/src/qt/walletmodeltransaction.cpp @@ -42,6 +42,7 @@ void WalletModelTransaction::setTransactionFee(const CAmount& newFee) void WalletModelTransaction::reassignAmounts(const std::vector& outAmounts, int nChangePosRet) { + const CTransaction* walletTransaction = &wtx->get(); int i = 0; for (auto it = recipients.begin(); it != recipients.end(); ++it) { @@ -57,7 +58,7 @@ void WalletModelTransaction::reassignAmounts(const std::vector& outAmou if (out.amount() <= 0) continue; if (i == nChangePosRet) i++; - subtotal += outAmounts[i]; + subtotal += g_con_elementsmode ? outAmounts[i] : walletTransaction->vout[i].nValue.GetAmount(); i++; } rcp.asset_amount = subtotal; @@ -66,7 +67,7 @@ void WalletModelTransaction::reassignAmounts(const std::vector& outAmou { if (i == nChangePosRet) i++; - rcp.asset_amount = outAmounts[i]; + rcp.asset_amount = g_con_elementsmode ? outAmounts[i] : walletTransaction->vout[i].nValue.GetAmount(); i++; } }