summaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
Diffstat (limited to 'patches')
-rw-r--r--patches/monero/0021-fix-error-messages-with-coin-control.patch57
1 files changed, 50 insertions, 7 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
index b4e3625..1caf15c 100644
--- a/patches/monero/0021-fix-error-messages-with-coin-control.patch
+++ b/patches/monero/0021-fix-error-messages-with-coin-control.patch
@@ -1,28 +1,29 @@
-From 6259ee6acea965c2bc0bc2e4a24a73e543b062cb Mon Sep 17 00:00:00 2001
+From 1737ff03788db38d198955dab136d0388d674ba2 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(-)
+ src/wallet/api/wallet.cpp | 44 ++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 43 insertions(+), 1 deletion(-)
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
-index de507b3..731055a 100644
+index de507b3de..3e33a318c 100644
--- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp
-@@ -2156,8 +2156,9 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
+@@ -2156,8 +2156,10 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
// break;
// }
std::vector<crypto::key_image> preferred_input_list;
+ uint64_t max_coin_control_input = 0;
++ uint64_t max_frozen_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
+@@ -2173,6 +2175,16 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
break;
}
@@ -31,12 +32,49 @@ index de507b3..731055a 100644
+ if (td.m_key_image == keyImage) {
+ max_coin_control_input += td.amount();
+ }
++ if (td.m_frozen) {
++ max_frozen_input += td.amount();
++ }
+ }
+
preferred_input_list.push_back(keyImage);
}
} else {
-@@ -2252,6 +2260,11 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
+@@ -2236,6 +2248,16 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
+ writer << boost::format(tr("not enough money to transfer, available only %s, sent amount %s")) %
+ print_money(e.available()) %
+ print_money(e.tx_amount());
++ 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);
++ }
++ if (max_frozen_input != 0 &&
++ max_frozen_input != e.available()) {
++ writer << std::endl << boost::format(tr("In addition, some a total of %s is frozen. Make sure that you have enough outputs unforzen outputs in coin control")) %
++ print_money(max_frozen_input);
++ }
+ setStatusError(writer.str());
+ } catch (const tools::error::not_enough_money& e) {
+ std::ostringstream writer;
+@@ -2243,6 +2265,16 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
+ writer << boost::format(tr("not enough money to transfer, overall balance only %s, sent amount %s")) %
+ print_money(e.available()) %
+ print_money(e.tx_amount());
++ 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);
++ }
++ if (max_frozen_input != 0 &&
++ max_frozen_input != e.available()) {
++ writer << std::endl << boost::format(tr("In addition, some a total of %s is frozen. Make sure that you have enough outputs unforzen outputs in coin control")) %
++ print_money(max_frozen_input);
++ }
+ setStatusError(writer.str());
+ } catch (const tools::error::tx_not_possible& e) {
+ std::ostringstream writer;
+@@ -2252,6 +2284,16 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
print_money(e.tx_amount() + e.fee()) %
print_money(e.tx_amount()) %
print_money(e.fee());
@@ -45,6 +83,11 @@ index de507b3..731055a 100644
+ 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);
+ }
++ if (max_frozen_input != 0 &&
++ max_frozen_input != e.available()) {
++ writer << std::endl << boost::format(tr("In addition, some a total of %s is frozen. Make sure that you have enough outputs unforzen outputs in coin control")) %
++ print_money(max_frozen_input);
++ }
setStatusError(writer.str());
} catch (const tools::error::not_enough_outs_to_mix& e) {
std::ostringstream writer;