diff options
Diffstat (limited to 'patches/monero/0019-fix-for-coin-control-patch.patch')
| -rw-r--r-- | patches/monero/0019-fix-for-coin-control-patch.patch | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/patches/monero/0019-fix-for-coin-control-patch.patch b/patches/monero/0019-fix-for-coin-control-patch.patch deleted file mode 100644 index b7ff7f9..0000000 --- a/patches/monero/0019-fix-for-coin-control-patch.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 8f93306ed526e0e573b33fc7dd40abbba7e7a00a Mon Sep 17 00:00:00 2001 -From: Czarek Nakamoto <cyjan@mrcyjanek.net> -Date: Tue, 15 Oct 2024 18:00:05 +0200 -Subject: [PATCH] fix for coin control patch - ---- - src/wallet/api/coins.cpp | 1 + - src/wallet/api/wallet.cpp | 36 +++++++++++++++++++++++++++++++++++- - 2 files changed, 36 insertions(+), 1 deletion(-) - -diff --git a/src/wallet/api/coins.cpp b/src/wallet/api/coins.cpp -index 2321c638d..ef12141cf 100644 ---- a/src/wallet/api/coins.cpp -+++ b/src/wallet/api/coins.cpp -@@ -114,6 +114,7 @@ void CoinsImpl::setFrozen(int index) - { - try - { -+ LOG_ERROR("Freezing coin: " << index); - m_wallet->m_wallet->freeze(index); - refresh(); - } -diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp -index ec7d60ec0..db127dae4 100644 ---- a/src/wallet/api/wallet.cpp -+++ b/src/wallet/api/wallet.cpp -@@ -2116,6 +2116,7 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri - } - } - bool error = false; -+ uint64_t amountSum = 0; - for (size_t i = 0; i < dst_addr.size() && !error; i++) { - if(!cryptonote::get_account_address_from_str(info, m_wallet->nettype(), dst_addr[i])) { - // TODO: copy-paste 'if treating as an address fails, try as url' from simplewallet.cpp:1982 -@@ -2137,6 +2138,7 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri - de.original = dst_addr[i]; - de.addr = info.address; - de.amount = (*amount)[i]; -+ amountSum += (*amount)[i]; - de.is_subaddress = info.is_subaddress; - de.is_integrated = info.has_payment_id; - dsts.push_back(de); -@@ -2147,18 +2149,50 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri - } - } - } -+ // uint64_t maxAllowedSpend = m_wallet->unlocked_balance(subaddr_account, true); -+ // if (maxAllowedSpend < amountSum) { -+ // error = true; -+ // setStatusError(tr("Amount you are trying to spend is larger than unlocked amount")); -+ // break; -+ // } - std::vector<crypto::key_image> preferred_input_list; - if (!preferred_inputs.empty()) { -+ LOG_ERROR("empty"); -+ - for (const auto &public_key : preferred_inputs) { - crypto::key_image keyImage; - bool r = epee::string_tools::hex_to_pod(public_key, keyImage); -- if (!r) { -+ if (!r) { - error = true; - setStatusError(tr("failed to parse key image")); - break; - } -+ if (m_wallet->frozen(keyImage)) { -+ error = true; -+ setStatusError(tr("refusing to spend frozen coin")); -+ break; -+ } -+ - preferred_input_list.push_back(keyImage); - } -+ } else { -+ LOG_ERROR("not empty"); -+ -+ boost::shared_lock<boost::shared_mutex> transfers_lock(m_wallet->m_transfers_mutex); -+ 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); -+ LOG_ERROR("COIN: " << i << ": " << td.amount() << "; "<<td.m_spent << ";" << td.m_frozen << ";" << m_wallet->frozen(td)); -+ if (td.m_spent) continue; -+ LOG_ERROR("is frozen"); -+ if (!td.m_frozen) { -+ LOG_ERROR("isn't:"); -+ LOG_ERROR("hash: " << td.m_key_image << "; " << td.amount()); -+ preferred_input_list.push_back(td.m_key_image); -+ } -+ } -+ } -+ for (const auto &de : preferred_input_list) { -+ LOG_ERROR("preferred input: " << de); - } - if (error) { - break; --- -2.39.5 (Apple Git-154) - |
