summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCzarek Nakamoto <cyjan@mrcyjanek.net>2024-12-09 11:24:10 -0500
committerCzarek Nakamoto <cyjan@mrcyjanek.net>2024-12-09 11:24:10 -0500
commitaadd5acb1a6e4888733446f1e66dc1e53ee0f7de (patch)
treee5cd7256f51f4a25091bca08af5c19b839811bc4
parent40c1a1bda4b6f125c702f5a37ecc48a6ebec24b8 (diff)
Fix coin control error message
-rw-r--r--patches/monero/0021-fix-error-messages-with-coin-control.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/patches/monero/0021-fix-error-messages-with-coin-control.patch b/patches/monero/0021-fix-error-messages-with-coin-control.patch
new file mode 100644
index 0000000..5e741d6
--- /dev/null
+++ b/patches/monero/0021-fix-error-messages-with-coin-control.patch
@@ -0,0 +1,53 @@
+From 6259ee6acea965c2bc0bc2e4a24a73e543b062cb Mon Sep 17 00:00:00 2001
+From: Czarek Nakamoto <cyjan@mrcyjanek.net>
+Date: Mon, 9 Dec 2024 11:21:06 -0500
+Subject: [PATCH] fix error messages with coin control
+
+---
+ src/wallet/api/wallet.cpp | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
+index de507b3..731055a 100644
+--- a/src/wallet/api/wallet.cpp
++++ b/src/wallet/api/wallet.cpp
+@@ -2156,8 +2156,9 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
+ // break;
+ // }
+ std::vector<crypto::key_image> preferred_input_list;
++ uint64_t max_coin_control_input = 0;
+ if (!preferred_inputs.empty()) {
+- LOG_ERROR("empty");
++ LOG_ERROR("not empty");
+
+ for (const auto &public_key : preferred_inputs) {
+ crypto::key_image keyImage;
+@@ -2173,6 +2174,13 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
+ break;
+ }
+
++ for (size_t i = 0; i < m_wallet->get_num_transfer_details(); ++i) {
++ const tools::wallet2::transfer_details &td = m_wallet->get_transfer_details(i);
++ if (td.m_key_image == keyImage) {
++ max_coin_control_input += td.amount();
++ }
++ }
++
+ preferred_input_list.push_back(keyImage);
+ }
+ } else {
+@@ -2252,6 +2260,11 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
+ print_money(e.tx_amount() + e.fee()) %
+ print_money(e.tx_amount()) %
+ print_money(e.fee());
++ if (max_coin_control_input != 0 &&
++ max_coin_control_input != e.available()) {
++ writer << std::endl << boost::format(tr("In addition, coin control was enabled for this transaction, limiting available balance to %s. Make sure that you have enough outputs selected in coin control" %
++ print_money(max_coin_control_input)));
++ }
+ setStatusError(writer.str());
+ } catch (const tools::error::not_enough_outs_to_mix& e) {
+ std::ostringstream writer;
+--
+2.39.5 (Apple Git-154)
+