aboutsummaryrefslogtreecommitdiff
path: root/src/blockchain_utilities
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/blockchain_utilities/blockchain_ancestry.cpp4
-rw-r--r--src/blockchain_utilities/blockchain_depth.cpp4
-rw-r--r--src/blockchain_utilities/blockchain_export.cpp2
-rw-r--r--src/blockchain_utilities/blockchain_prune.cpp3
-rw-r--r--src/blockchain_utilities/blockchain_prune_known_spent_data.cpp4
-rw-r--r--src/blockchain_utilities/blockchain_stats.cpp3
-rw-r--r--src/blockchain_utilities/blockchain_usage.cpp4
-rw-r--r--src/cryptonote_core/blockchain_and_pool.h (renamed from src/blockchain_utilities/blockchain_and_pool.h)28
8 files changed, 21 insertions, 31 deletions
diff --git a/src/blockchain_utilities/blockchain_ancestry.cpp b/src/blockchain_utilities/blockchain_ancestry.cpp
index c226da230..36c17357a 100644
--- a/src/blockchain_utilities/blockchain_ancestry.cpp
+++ b/src/blockchain_utilities/blockchain_ancestry.cpp
@@ -37,11 +37,7 @@
#include "common/command_line.h"
#include "common/varint.h"
#include "cryptonote_basic/cryptonote_boost_serialization.h"
-#include "cryptonote_core/tx_pool.h"
#include "cryptonote_core/cryptonote_core.h"
-#include "cryptonote_core/blockchain.h"
-#include "blockchain_db/blockchain_db.h"
-#include "blockchain_and_pool.h"
#include "version.h"
#undef MONERO_DEFAULT_LOG_CATEGORY
diff --git a/src/blockchain_utilities/blockchain_depth.cpp b/src/blockchain_utilities/blockchain_depth.cpp
index 4ebc90fb9..f49211233 100644
--- a/src/blockchain_utilities/blockchain_depth.cpp
+++ b/src/blockchain_utilities/blockchain_depth.cpp
@@ -31,11 +31,7 @@
#include <boost/algorithm/string.hpp>
#include "common/command_line.h"
#include "common/varint.h"
-#include "cryptonote_core/tx_pool.h"
#include "cryptonote_core/cryptonote_core.h"
-#include "cryptonote_core/blockchain.h"
-#include "blockchain_db/blockchain_db.h"
-#include "blockchain_and_pool.h"
#include "version.h"
#undef MONERO_DEFAULT_LOG_CATEGORY
diff --git a/src/blockchain_utilities/blockchain_export.cpp b/src/blockchain_utilities/blockchain_export.cpp
index 890edba09..1f8370034 100644
--- a/src/blockchain_utilities/blockchain_export.cpp
+++ b/src/blockchain_utilities/blockchain_export.cpp
@@ -28,9 +28,7 @@
#include "bootstrap_file.h"
#include "blocksdat_file.h"
-#include "blockchain_and_pool.h"
#include "common/command_line.h"
-#include "cryptonote_core/tx_pool.h"
#include "cryptonote_core/cryptonote_core.h"
#include "blockchain_db/blockchain_db.h"
#include "version.h"
diff --git a/src/blockchain_utilities/blockchain_prune.cpp b/src/blockchain_utilities/blockchain_prune.cpp
index 28e8d2cbe..1a9618617 100644
--- a/src/blockchain_utilities/blockchain_prune.cpp
+++ b/src/blockchain_utilities/blockchain_prune.cpp
@@ -33,11 +33,8 @@
#include <boost/system/error_code.hpp>
#include <boost/filesystem.hpp>
#include "common/command_line.h"
-#include "blockchain_and_pool.h"
#include "common/pruning.h"
#include "cryptonote_core/cryptonote_core.h"
-#include "cryptonote_core/blockchain.h"
-#include "blockchain_db/blockchain_db.h"
#include "blockchain_db/lmdb/db_lmdb.h"
#include "version.h"
diff --git a/src/blockchain_utilities/blockchain_prune_known_spent_data.cpp b/src/blockchain_utilities/blockchain_prune_known_spent_data.cpp
index e0a853fbf..4a459dc66 100644
--- a/src/blockchain_utilities/blockchain_prune_known_spent_data.cpp
+++ b/src/blockchain_utilities/blockchain_prune_known_spent_data.cpp
@@ -30,11 +30,7 @@
#include <boost/filesystem.hpp>
#include "common/command_line.h"
#include "serialization/crypto.h"
-#include "cryptonote_core/tx_pool.h"
#include "cryptonote_core/cryptonote_core.h"
-#include "cryptonote_core/blockchain.h"
-#include "blockchain_db/blockchain_db.h"
-#include "blockchain_and_pool.h"
#include "version.h"
#undef MONERO_DEFAULT_LOG_CATEGORY
diff --git a/src/blockchain_utilities/blockchain_stats.cpp b/src/blockchain_utilities/blockchain_stats.cpp
index c2fae4039..f65054fc5 100644
--- a/src/blockchain_utilities/blockchain_stats.cpp
+++ b/src/blockchain_utilities/blockchain_stats.cpp
@@ -31,10 +31,7 @@
#include "common/command_line.h"
#include "common/varint.h"
#include "cryptonote_basic/cryptonote_boost_serialization.h"
-#include "blockchain_and_pool.h"
-#include "cryptonote_core/tx_pool.h"
#include "cryptonote_core/cryptonote_core.h"
-#include "cryptonote_core/blockchain.h"
#include "blockchain_db/blockchain_db.h"
#include "version.h"
diff --git a/src/blockchain_utilities/blockchain_usage.cpp b/src/blockchain_utilities/blockchain_usage.cpp
index d2ecf2abf..0b9686765 100644
--- a/src/blockchain_utilities/blockchain_usage.cpp
+++ b/src/blockchain_utilities/blockchain_usage.cpp
@@ -31,11 +31,7 @@
#include <boost/filesystem/path.hpp>
#include "common/command_line.h"
#include "common/varint.h"
-#include "cryptonote_core/tx_pool.h"
#include "cryptonote_core/cryptonote_core.h"
-#include "cryptonote_core/blockchain.h"
-#include "blockchain_db/blockchain_db.h"
-#include "blockchain_and_pool.h"
#include "version.h"
#undef MONERO_DEFAULT_LOG_CATEGORY
diff --git a/src/blockchain_utilities/blockchain_and_pool.h b/src/cryptonote_core/blockchain_and_pool.h
index 8d26c7a61..c0f607f64 100644
--- a/src/blockchain_utilities/blockchain_and_pool.h
+++ b/src/cryptonote_core/blockchain_and_pool.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2020, The Monero Project
+// Copyright (c) 2023, The Monero Project
//
// All rights reserved.
//
@@ -33,12 +33,26 @@
#pragma once
-#include "cryptonote_core/blockchain.h"
-#include "cryptonote_core/tx_pool.h"
+#include <memory>
-struct BlockchainAndPool {
- cryptonote::Blockchain blockchain;
- cryptonote::tx_memory_pool tx_pool;
+#include "blockchain.h"
+#include "tx_pool.h"
- BlockchainAndPool() : blockchain(tx_pool), tx_pool(blockchain) {}
+namespace cryptonote
+{
+/**
+ * @brief Container for safely constructing Blockchain and tx_memory_pool classes
+ *
+ * The reason for this class existing is that the constructors for both Blockchain and
+ * tx_memory_pool take a reference for tx_memory_pool and Blockchain, respectively. Because of this
+ * circular reference, it is annoying/unsafe to construct these normally. This class guarantees that
+ * we don't make any silly mistakes with pointers / dangling references.
+ */
+struct BlockchainAndPool
+{
+ Blockchain blockchain;
+ tx_memory_pool tx_pool;
+
+ BlockchainAndPool(): blockchain(tx_pool), tx_pool(blockchain) {}
};
+}