From 5f397e441275d0e282a371bcdeed963c9a9b69f1 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sun, 25 Oct 2015 10:45:25 +0000 Subject: Add functions to iterate through blocks, txes, outputs, key images --- src/cryptonote_core/blockchain_storage.cpp | 38 ++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'src/cryptonote_core/blockchain_storage.cpp') diff --git a/src/cryptonote_core/blockchain_storage.cpp b/src/cryptonote_core/blockchain_storage.cpp index 4a4d348ba..16aaf7079 100644 --- a/src/cryptonote_core/blockchain_storage.cpp +++ b/src/cryptonote_core/blockchain_storage.cpp @@ -1890,3 +1890,41 @@ void blockchain_storage::set_enforce_dns_checkpoints(bool enforce_checkpoints) { m_enforce_dns_checkpoints = enforce_checkpoints; } +//------------------------------------------------------------------ +bool blockchain_storage::for_all_key_images(std::function f) const +{ + for (key_images_container::const_iterator i = m_spent_keys.begin(); i != m_spent_keys.end(); ++i) { + if (!f(*i)) + return false; + } + return true; +} +//------------------------------------------------------------------ +bool blockchain_storage::for_all_blocks(std::function f) const +{ + for (blocks_container::const_iterator i = m_blocks.begin(); i != m_blocks.end(); ++i) { + if (!f(i->height, i->bl)) + return false; + } + return true; +} +//------------------------------------------------------------------ +bool blockchain_storage::for_all_transactions(std::function f) const +{ + for (transactions_container::const_iterator i = m_transactions.begin(); i != m_transactions.end(); ++i) { + if (!f(i->second.tx)) + return false; + } + return true; +} +//------------------------------------------------------------------ +bool blockchain_storage::for_all_outputs(std::function f) const +{ + for (outputs_container::const_iterator i = m_outputs.begin(); i != m_outputs.end(); ++i) { + for (size_t n = 0; n < i->second.size(); ++n) { + if (!f(i->first, i->second[n].first, i->second[n].second)) + return false; + } + } + return true; +} -- cgit v1.2.3