summaryrefslogtreecommitdiff
path: root/patches/wownero/0004-coin-control.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/wownero/0004-coin-control.patch')
-rw-r--r--patches/wownero/0004-coin-control.patch257
1 files changed, 132 insertions, 125 deletions
diff --git a/patches/wownero/0004-coin-control.patch b/patches/wownero/0004-coin-control.patch
index 1a7d08c..45ed9d8 100644
--- a/patches/wownero/0004-coin-control.patch
+++ b/patches/wownero/0004-coin-control.patch
@@ -1,25 +1,128 @@
-From bb9282a07934c0d4c389e6e10971f5e6f9f563b7 Mon Sep 17 00:00:00 2001
+From 1d12f355eeeba80930f38d398c758154d2d4c340 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net>
-Date: Wed, 27 Mar 2024 14:33:07 +0100
-Subject: [PATCH] coin control
+Date: Wed, 27 Mar 2024 16:31:36 +0100
+Subject: [PATCH 4/4] coin control
---
- src/wallet/api/wallet.cpp | 5 +++--
- src/wallet/api/wallet2_api.h | 3 +++
- src/wallet/wallet2.cpp | 21 +++++++++++++++++++++
- src/wallet/wallet2.h | 3 +++
- src/wallet/api/coins.cpp |
- 4 files changed, 29 insertions(+), 2 deletions(-)
+ src/wallet/api/coins.cpp | 62 ++++++++++++++++++++++++++++++++++++
+ src/wallet/api/coins.h | 4 +++
+ src/wallet/api/wallet.cpp | 4 +--
+ src/wallet/api/wallet2_api.h | 3 ++
+ src/wallet/wallet2.cpp | 22 +++++++++++++
+ src/wallet/wallet2.h | 4 +++
+ 6 files changed, 97 insertions(+), 2 deletions(-)
+diff --git a/src/wallet/api/coins.cpp b/src/wallet/api/coins.cpp
+index fe54b82cf..5ce69b5b9 100644
+--- a/src/wallet/api/coins.cpp
++++ b/src/wallet/api/coins.cpp
+@@ -90,6 +90,26 @@ namespace Monero {
+ }
+ }
+
++ void CoinsImpl::setFrozen(std::string public_key)
++ {
++ crypto::public_key pk;
++ if (!epee::string_tools::hex_to_pod(public_key, pk))
++ {
++ LOG_ERROR("Invalid public key: " << public_key);
++ return;
++ }
++
++ try
++ {
++ m_wallet->m_wallet->freeze(pk);
++ refresh();
++ }
++ catch (const std::exception& e)
++ {
++ LOG_ERROR("setFrozen: " << e.what());
++ }
++ }
++
+ void CoinsImpl::setFrozen(int index)
+ {
+ try
+@@ -103,6 +123,26 @@ namespace Monero {
+ }
+ }
+
++ void CoinsImpl::thaw(std::string public_key)
++ {
++ crypto::public_key pk;
++ if (!epee::string_tools::hex_to_pod(public_key, pk))
++ {
++ LOG_ERROR("Invalid public key: " << public_key);
++ return;
++ }
++
++ try
++ {
++ m_wallet->m_wallet->thaw(pk);
++ refresh();
++ }
++ catch (const std::exception& e)
++ {
++ LOG_ERROR("thaw: " << e.what());
++ }
++ }
++
+ void CoinsImpl::thaw(int index)
+ {
+ try
+@@ -120,4 +160,26 @@ namespace Monero {
+ return m_wallet->m_wallet->is_transfer_unlocked(unlockTime, blockHeight);
+ }
+
++ void CoinsImpl::setDescription(const std::string &public_key, const std::string &description)
++ {
++ crypto::public_key pk;
++ if (!epee::string_tools::hex_to_pod(public_key, pk))
++ {
++ LOG_ERROR("Invalid public key: " << public_key);
++ return;
++ }
++
++ try
++ {
++ const size_t index = m_wallet->m_wallet->get_transfer_details(pk);
++ const tools::wallet2::transfer_details &td = m_wallet->m_wallet->get_transfer_details(index);
++ m_wallet->m_wallet->set_tx_note(td.m_txid, description);
++ refresh();
++ }
++ catch (const std::exception& e)
++ {
++ LOG_ERROR("setDescription: " << e.what());
++ }
++ }
++
+ } // namespace
+diff --git a/src/wallet/api/coins.h b/src/wallet/api/coins.h
+index 3293d8ae9..bcd8b517f 100644
+--- a/src/wallet/api/coins.h
++++ b/src/wallet/api/coins.h
+@@ -18,11 +18,15 @@ namespace Monero {
+ std::vector<CoinsInfo*> getAll() const override;
+ void refresh() override;
+
++ void setFrozen(std::string public_key) override;
+ void setFrozen(int index) override;
++ void thaw(std::string public_key) override;
+ void thaw(int index) override;
+
+ bool isTransferUnlocked(uint64_t unlockTime, uint64_t blockHeight) override;
+
++ void setDescription(const std::string &public_key, const std::string &description) override;
++
+ private:
+ WalletImpl *m_wallet;
+ std::vector<CoinsInfo*> m_rows;
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp
-index 63ed26a11..ca83812f3 100644
+index 63ed26a11..3bbc60d74 100644
--- a/src/wallet/api/wallet.cpp
+++ b/src/wallet/api/wallet.cpp
-@@ -2016,13 +2016,14 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
- fake_outs_count = m_wallet->adjust_mixin(mixin_count);
-
+@@ -2018,11 +2018,11 @@ PendingTransaction *WalletImpl::createTransactionMultDest(const std::vector<stri
if (amount) {
-+ // (std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t>& extra, uint32_t subaddr_account, std::set<uint32_t> subaddr_indices, const unique_index_container& subtract_fee_from_outputs, const std::vector<crypto::key_image>& preferred_input_list)
transaction->m_pending_tx = m_wallet->create_transactions_2(dsts, fake_outs_count, 0 /* unlock_time */,
adjusted_priority,
- extra, subaddr_account, subaddr_indices);
@@ -33,35 +136,35 @@ index 63ed26a11..ca83812f3 100644
pendingTxPostProcess(transaction);
diff --git a/src/wallet/api/wallet2_api.h b/src/wallet/api/wallet2_api.h
-index c2fa3d95b..ece303c37 100644
+index c2fa3d95b..99616b025 100644
--- a/src/wallet/api/wallet2_api.h
+++ b/src/wallet/api/wallet2_api.h
-@@ -352,7 +352,9 @@ struct Coins
+@@ -352,9 +352,12 @@ struct Coins
virtual CoinsInfo * coin(int index) const = 0;
virtual std::vector<CoinsInfo*> getAll() const = 0;
virtual void refresh() = 0;
+ virtual void setFrozen(std::string public_key) = 0;
virtual void setFrozen(int index) = 0;
-+ virtual void thaw(std::string public_key) = 0;
virtual void thaw(int index) = 0;
++ virtual void thaw(std::string public_key) = 0;
virtual bool isTransferUnlocked(uint64_t unlockTime, uint64_t blockHeight) = 0;
+ virtual void setDescription(const std::string &public_key, const std::string &description) = 0;
};
struct SubaddressRow {
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
-index 00d9c133e..674126b87 100644
+index 00d9c133e..ae0305d28 100644
--- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp
-@@ -2091,12 +2091,21 @@ bool wallet2::frozen(const multisig_tx_set& txs) const
-
+@@ -2092,11 +2092,21 @@ bool wallet2::frozen(const multisig_tx_set& txs) const
return false;
}
+ //----------------------------------------------------------------------------------------------------
+void wallet2::freeze(const crypto::public_key &pk)
+{
+ freeze(get_transfer_details(pk));
+}
- //----------------------------------------------------------------------------------------------------
++//----------------------------------------------------------------------------------------------------
void wallet2::freeze(const crypto::key_image &ki)
{
freeze(get_transfer_details(ki));
@@ -75,7 +178,7 @@ index 00d9c133e..674126b87 100644
void wallet2::thaw(const crypto::key_image &ki)
{
thaw(get_transfer_details(ki));
-@@ -2107,6 +2116,18 @@ bool wallet2::frozen(const crypto::key_image &ki) const
+@@ -2107,6 +2117,18 @@ bool wallet2::frozen(const crypto::key_image &ki) const
return frozen(get_transfer_details(ki));
}
//----------------------------------------------------------------------------------------------------
@@ -95,18 +198,19 @@ index 00d9c133e..674126b87 100644
{
for (size_t idx = 0; idx < m_transfers.size(); ++idx)
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h
-index 40997cdbb..fd6dd09e3 100644
+index 40997cdbb..6fa955681 100644
--- a/src/wallet/wallet2.h
+++ b/src/wallet/wallet2.h
-@@ -1562,6 +1562,7 @@ private:
+@@ -1562,6 +1562,8 @@ private:
uint64_t get_num_rct_outputs();
size_t get_num_transfer_details() const { return m_transfers.size(); }
const transfer_details &get_transfer_details(size_t idx) const;
+ size_t get_transfer_details(const crypto::public_key &pk) const;
++
uint8_t get_current_hard_fork();
void get_hard_fork_info(uint8_t version, uint64_t &earliest_height);
-@@ -1792,7 +1793,9 @@ private:
+@@ -1792,7 +1794,9 @@ private:
void freeze(size_t idx);
void thaw(size_t idx);
bool frozen(size_t idx) const;
@@ -116,103 +220,6 @@ index 40997cdbb..fd6dd09e3 100644
void thaw(const crypto::key_image &ki);
bool frozen(const crypto::key_image &ki) const;
bool frozen(const transfer_details &td) const;
-diff --git a/src/wallet/api/coins.cpp b/src/wallet/api/coins.cpp
-index fe54b82cf..fdd1c3c7a 100644
---- a/src/wallet/api/coins.cpp
-+++ b/src/wallet/api/coins.cpp
-@@ -90,6 +90,26 @@ namespace Monero {
- }
- }
-
-+ void CoinsImpl::setFrozen(std::string public_key)
-+ {
-+ crypto::public_key pk;
-+ if (!epee::string_tools::hex_to_pod(public_key, pk))
-+ {
-+ LOG_ERROR("Invalid public key: " << public_key);
-+ return;
-+ }
-+
-+ try
-+ {
-+ m_wallet->m_wallet->freeze(pk);
-+ refresh();
-+ }
-+ catch (const std::exception& e)
-+ {
-+ LOG_ERROR("setFrozen: " << e.what());
-+ }
-+ }
-+
- void CoinsImpl::setFrozen(int index)
- {
- try
-@@ -103,6 +123,27 @@ namespace Monero {
- }
- }
-
-+ void CoinsImpl::thaw(std::string public_key)
-+ {
-+ crypto::public_key pk;
-+ if (!epee::string_tools::hex_to_pod(public_key, pk))
-+ {
-+ LOG_ERROR("Invalid public key: " << public_key);
-+ return;
-+ }
-+
-+ try
-+ {
-+ m_wallet->m_wallet->thaw(pk);
-+ refresh();
-+ }
-+ catch (const std::exception& e)
-+ {
-+ LOG_ERROR("thaw: " << e.what());
-+ }
-+ }
-+
-+
-+void CoinsImpl::setDescription(const std::string &public_key, const std::string &description)
-+{
-+ crypto::public_key pk;
-+ if (!epee::string_tools::hex_to_pod(public_key, pk))
-+ {
-+ LOG_ERROR("Invalid public key: " << public_key);
-+ return;
-+ }
-+
-+ try
-+ {
-+ const size_t index = m_wallet->m_wallet->get_transfer_details(pk);
-+ const tools::wallet2::transfer_details &td = m_wallet->m_wallet->get_transfer_details(index);
-+ m_wallet->m_wallet->set_tx_note(td.m_txid, description);
-+ refresh();
-+ }
-+ catch (const std::exception& e)
-+ {
-+ LOG_ERROR("setDescription: " << e.what());
-+ }
-+}
-+
- void CoinsImpl::thaw(int index)
- {
- try
-diff --git a/src/wallet/api/coins.h b/src/wallet/api/coins.h
-index 3293d8ae9..eb8d54fa6 100644
---- a/src/wallet/api/coins.h
-+++ b/src/wallet/api/coins.h
-@@ -19,10 +19,14 @@ namespace Monero {
- void refresh() override;
-
- void setFrozen(int index) override;
-+ void setFrozen(std::string public_key) override;
- void thaw(int index) override;
-+ void thaw(std::string public_key) override;
-
- bool isTransferUnlocked(uint64_t unlockTime, uint64_t blockHeight) override;
-
-+ void setDescription(const std::string &public_key, const std::string &description) override;
-+
- private:
- WalletImpl *m_wallet;
- std::vector<CoinsInfo*> m_rows;
+--
+2.39.2
+