diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp index 13e5badd..62c536ab 100644 --- a/src/cryptonote_core/cryptonote_core.cpp +++ b/src/cryptonote_core/cryptonote_core.cpp @@ -1232,6 +1232,16 @@ namespace cryptonote return true; } //----------------------------------------------------------------------------------------------- + uint8_t core::get_ideal_hard_fork_version(uint64_t height) const + { + return get_blockchain_storage().get_ideal_hard_fork_version(height); + } + //----------------------------------------------------------------------------------------------- + uint8_t core::get_hard_fork_version(uint64_t height) const + { + return get_blockchain_storage().get_hard_fork_version(height); + } + //----------------------------------------------------------------------------------------------- bool core::check_updates() { static const char software[] = "monero"; diff --git a/src/cryptonote_core/cryptonote_core.h b/src/cryptonote_core/cryptonote_core.h index 171c3cb9..63d3cd16 100644 --- a/src/cryptonote_core/cryptonote_core.h +++ b/src/cryptonote_core/cryptonote_core.h @@ -620,6 +620,20 @@ namespace cryptonote */ uint64_t get_target_blockchain_height() const; + /** + * @brief return the ideal hard fork version for a given block height + * + * @return what it says above + */ + uint8_t get_ideal_hard_fork_version(uint64_t height) const; + + /** + * @brief return the hard fork version for a given block height + * + * @return what it says above + */ + uint8_t get_hard_fork_version(uint64_t height) const; + /** * @brief gets start_time * diff --git a/src/cryptonote_protocol/cryptonote_protocol_handler.inl b/src/cryptonote_protocol/cryptonote_protocol_handler.inl index e4ce4511..5b3b059a 100644 --- a/src/cryptonote_protocol/cryptonote_protocol_handler.inl +++ b/src/cryptonote_protocol/cryptonote_protocol_handler.inl @@ -259,7 +259,7 @@ namespace cryptonote return true; // from v6, if the peer advertises a top block version, reject if it's not what it should be (will only work if no voting) - const uint8_t version = m_core.get_blockchain_storage().get_ideal_hard_fork_version(hshd.current_height - 1); + const uint8_t version = m_core.get_ideal_hard_fork_version(hshd.current_height - 1); if (version >= 6 && version != hshd.top_version) { LOG_DEBUG_CC(context, "Ignoring due to wrong top version " << (unsigned)hshd.top_version << ", expected " << (unsigned)version); @@ -308,7 +308,7 @@ namespace cryptonote bool t_cryptonote_protocol_handler::get_payload_sync_data(CORE_SYNC_DATA& hshd) { m_core.get_blockchain_top(hshd.current_height, hshd.top_id); - hshd.top_version = m_core.get_blockchain_storage().get_hard_fork_version(hshd.current_height); + hshd.top_version = m_core.get_hard_fork_version(hshd.current_height); hshd.current_height +=1; return true; } diff --git a/tests/core_proxy/core_proxy.h b/tests/core_proxy/core_proxy.h index 35e88081..b7d5725f 100644 --- a/tests/core_proxy/core_proxy.h +++ b/tests/core_proxy/core_proxy.h @@ -96,5 +96,7 @@ namespace tests bool get_blocks(uint64_t start_offset, size_t count, std::list>& blocks, std::list& txs) const { return false; } bool get_transactions(const std::vector& txs_ids, std::list& txs, std::list& missed_txs) const { return false; } bool get_block_by_hash(const crypto::hash &h, cryptonote::block &blk, bool *orphan = NULL) const { return false; } + uint8_t get_ideal_hard_fork_version(uint64_t height) const { return 0; } + uint8_t get_hard_fork_version(uint64_t height) const { return 0; } }; } diff --git a/tests/unit_tests/ban.cpp b/tests/unit_tests/ban.cpp index 694d733e..6fc8b83d 100644 --- a/tests/unit_tests/ban.cpp +++ b/tests/unit_tests/ban.cpp @@ -73,6 +73,8 @@ public: bool get_blocks(uint64_t start_offset, size_t count, std::list>& blocks, std::list& txs) const { return false; } bool get_transactions(const std::vector& txs_ids, std::list& txs, std::list& missed_txs) const { return false; } bool get_block_by_hash(const crypto::hash &h, cryptonote::block &blk, bool *orphan = NULL) const { return false; } + uint8_t get_ideal_hard_fork_version(uint64_t height) const { return 0; } + uint8_t get_hard_fork_version(uint64_t height) const { return 0; } }; typedef nodetool::node_server> Server;