aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2023-04-25 11:13:44 -0400
committerluigi1111 <luigi1111w@gmail.com>2023-04-25 11:13:44 -0400
commitaa5382c4703954470c657a890594ea72a7d4a11e (patch)
treee6a1cdd4dc0d9c89667be5134809667ec1d4a1e6
parentMerge pull request #8698 (diff)
parentwallet2: add on_reorg callback (diff)
downloadmonero-aa5382c4703954470c657a890594ea72a7d4a11e.tar.xz
Merge pull request #8716
9c7d28b wallet2: add on_reorg callback (Crypto City)
-rw-r--r--src/wallet/wallet2.cpp5
-rw-r--r--src/wallet/wallet2.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index 5136b71f0..6c474abc7 100644
--- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp
@@ -3980,7 +3980,7 @@ void wallet2::detach_blockchain(uint64_t height, std::map<std::pair<uint64_t, ui
transfers_detached = std::distance(it, m_transfers.end());
m_transfers.erase(it, m_transfers.end());
- size_t blocks_detached = m_blockchain.size() - height;
+ const uint64_t blocks_detached = m_blockchain.size() - height;
m_blockchain.crop(height);
for (auto it = m_payments.begin(); it != m_payments.end(); )
@@ -3999,6 +3999,9 @@ void wallet2::detach_blockchain(uint64_t height, std::map<std::pair<uint64_t, ui
++it;
}
+ if (m_callback)
+ m_callback->on_reorg(height, blocks_detached, transfers_detached);
+
LOG_PRINT_L0("Detached blockchain on height " << height << ", transfers detached " << transfers_detached << ", blocks detached " << blocks_detached);
}
//----------------------------------------------------------------------------------------------------
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h
index 230eb77e7..142c8edea 100644
--- a/src/wallet/wallet2.h
+++ b/src/wallet/wallet2.h
@@ -139,6 +139,7 @@ private:
public:
// Full wallet callbacks
virtual void on_new_block(uint64_t height, const cryptonote::block& block) {}
+ virtual void on_reorg(uint64_t height, uint64_t blocks_detached, size_t transfers_detached) {}
virtual void on_money_received(uint64_t height, const crypto::hash &txid, const cryptonote::transaction& tx, uint64_t amount, uint64_t burnt, const cryptonote::subaddress_index& subaddr_index, bool is_change, uint64_t unlock_time) {}
virtual void on_unconfirmed_money_received(uint64_t height, const crypto::hash &txid, const cryptonote::transaction& tx, uint64_t amount, const cryptonote::subaddress_index& subaddr_index) {}
virtual void on_money_spent(uint64_t height, const crypto::hash &txid, const cryptonote::transaction& in_tx, uint64_t amount, const cryptonote::transaction& spend_tx, const cryptonote::subaddress_index& subaddr_index) {}