diff options
| author | cyan <cyjan@mrcyjanek.net> | 2024-12-11 20:48:13 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-11 20:48:13 -0500 |
| commit | b39712e526ff18ed82091af4da644140d340262a (patch) | |
| tree | bc19655c2d05186c3e3b5e1e5dc9b98f6a4352a8 /patches/monero | |
| parent | 65950f46f40561f594114064009670d96a47301c (diff) | |
detailed error messages (#95)
Diffstat (limited to 'patches/monero')
| -rw-r--r-- | patches/monero/0021-fix-error-messages-with-coin-control.patch | 57 |
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; |
