aboutsummaryrefslogtreecommitdiff
path: root/src/blockchain_db
diff options
context:
space:
mode:
Diffstat (limited to 'src/blockchain_db')
-rw-r--r--src/blockchain_db/berkeleydb/db_bdb.cpp2
-rw-r--r--src/blockchain_db/blockchain_db.cpp5
-rw-r--r--src/blockchain_db/blockchain_db.h7
-rw-r--r--src/blockchain_db/lmdb/db_lmdb.cpp2
4 files changed, 16 insertions, 0 deletions
diff --git a/src/blockchain_db/berkeleydb/db_bdb.cpp b/src/blockchain_db/berkeleydb/db_bdb.cpp
index f572ddf9d..cdbca52f9 100644
--- a/src/blockchain_db/berkeleydb/db_bdb.cpp
+++ b/src/blockchain_db/berkeleydb/db_bdb.cpp
@@ -781,6 +781,8 @@ BlockchainBDB::BlockchainBDB(bool batch_transactions) :
m_batch_transactions = batch_transactions;
m_write_txn = nullptr;
m_height = 0;
+
+ m_hardfork = nullptr;
}
void BlockchainBDB::open(const std::string& filename, const int db_flags)
diff --git a/src/blockchain_db/blockchain_db.cpp b/src/blockchain_db/blockchain_db.cpp
index b504f946a..4b05ddf24 100644
--- a/src/blockchain_db/blockchain_db.cpp
+++ b/src/blockchain_db/blockchain_db.cpp
@@ -138,6 +138,11 @@ uint64_t BlockchainDB::add_block( const block& blk
return prev_height;
}
+void BlockchainDB::set_hard_fork(HardFork*& hf)
+{
+ m_hardfork = hf;
+}
+
void BlockchainDB::pop_block(block& blk, std::vector<transaction>& txs)
{
blk = get_top_block();
diff --git a/src/blockchain_db/blockchain_db.h b/src/blockchain_db/blockchain_db.h
index 31d5e2644..5926f34a5 100644
--- a/src/blockchain_db/blockchain_db.h
+++ b/src/blockchain_db/blockchain_db.h
@@ -28,12 +28,15 @@
#ifndef BLOCKCHAIN_DB_H
#define BLOCKCHAIN_DB_H
+#pragma once
+
#include <list>
#include <string>
#include <exception>
#include "crypto/hash.h"
#include "cryptonote_core/cryptonote_basic.h"
#include "cryptonote_core/difficulty.h"
+#include "cryptonote_core/hardfork.h"
/* DB Driver Interface
*
@@ -322,6 +325,8 @@ protected:
uint64_t time_commit1 = 0;
bool m_auto_remove_logs = true;
+ HardFork* m_hardfork;
+
public:
// virtual dtor
@@ -372,6 +377,8 @@ public:
virtual void block_txn_stop() = 0;
virtual void block_txn_abort() = 0;
+ virtual void set_hard_fork(HardFork*& hf);
+
// adds a block with the given metadata to the top of the blockchain, returns the new height
// NOTE: subclass implementations of this (or the functions it calls) need
// to handle undoing any partially-added blocks in the event of a failure.
diff --git a/src/blockchain_db/lmdb/db_lmdb.cpp b/src/blockchain_db/lmdb/db_lmdb.cpp
index 8bd64e70d..28e6f5525 100644
--- a/src/blockchain_db/lmdb/db_lmdb.cpp
+++ b/src/blockchain_db/lmdb/db_lmdb.cpp
@@ -945,6 +945,8 @@ BlockchainLMDB::BlockchainLMDB(bool batch_transactions)
m_write_batch_txn = nullptr;
m_batch_active = false;
m_height = 0;
+
+ m_hardfork = nullptr;
}
void BlockchainLMDB::open(const std::string& filename, const int mdb_flags)