From bf6d1474c097ee0affe827fe2e3dac489b290f40 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sat, 30 Jan 2016 13:28:26 +0000 Subject: new flush_txpool command, and associated RPC call It can flush a particular tx, or the whole pool (the RPC command can flush a list of transactions too) --- src/cryptonote_core/blockchain_storage.cpp | 19 +++++++++++++++++++ 1 file changed, 19 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 f656f938b..e1b89f887 100644 --- a/src/cryptonote_core/blockchain_storage.cpp +++ b/src/cryptonote_core/blockchain_storage.cpp @@ -1892,6 +1892,25 @@ void blockchain_storage::set_enforce_dns_checkpoints(bool enforce_checkpoints) m_enforce_dns_checkpoints = enforce_checkpoints; } //------------------------------------------------------------------ +bool blockchain_storage::flush_txes_from_pool(const std::list &txids) +{ + bool res = true; + for (const auto &txid: txids) + { + cryptonote::transaction tx; + size_t blob_size; + uint64_t fee; + bool relayed; + LOG_PRINT_L1("Removing txid " << txid << " from the pool"); + if(!m_tx_pool->take_tx(txid, tx, blob_size, fee, relayed)) + { + LOG_PRINT_L0("Failed to remove txid " << txid << " from the pool"); + res = false; + } + } + return res; +} +//------------------------------------------------------------------ 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) { -- cgit v1.2.3