feat: add method for fetching both clockhain and target height

This commit is contained in:
acx
2025-08-31 23:32:28 +02:00
committed by nahuhh
parent 27baf4e4ba
commit 48845d06f7
3 changed files with 17 additions and 0 deletions

View File

@@ -32,6 +32,7 @@
#include <string> #include <string>
#include <utility>
#include <vector> #include <vector>
#include <list> #include <list>
#include <set> #include <set>
@@ -1424,6 +1425,9 @@ struct WalletManager
//! returns current blockchain target height //! returns current blockchain target height
virtual uint64_t blockchainTargetHeight() = 0; virtual uint64_t blockchainTargetHeight() = 0;
//! returns current blockchain and target height
virtual std::pair<uint64_t, uint64_t> blockchainAndTargetHeight() = 0;
//! returns current network difficulty //! returns current network difficulty
virtual uint64_t networkDifficulty() = 0; virtual uint64_t networkDifficulty() = 0;

View File

@@ -280,6 +280,18 @@ uint64_t WalletManagerImpl::blockchainTargetHeight()
return ires.target_height >= ires.height ? ires.target_height : ires.height; return ires.target_height >= ires.height ? ires.target_height : ires.height;
} }
std::pair<uint64_t, uint64_t> WalletManagerImpl::blockchainAndTargetHeight()
{
cryptonote::COMMAND_RPC_GET_INFO::request ireq;
cryptonote::COMMAND_RPC_GET_INFO::response ires;
if (!epee::net_utils::invoke_http_json("/getinfo", ireq, ires, m_http_client))
return std::make_pair(0, 0);
uint64_t height = ires.height;
uint64_t target_height = ires.target_height >= ires.height ? ires.target_height : ires.height;
return std::make_pair(height, target_height);
}
uint64_t WalletManagerImpl::networkDifficulty() uint64_t WalletManagerImpl::networkDifficulty()
{ {
cryptonote::COMMAND_RPC_GET_INFO::request ireq; cryptonote::COMMAND_RPC_GET_INFO::request ireq;

View File

@@ -95,6 +95,7 @@ public:
bool connected(uint32_t *version = NULL) override; bool connected(uint32_t *version = NULL) override;
uint64_t blockchainHeight() override; uint64_t blockchainHeight() override;
uint64_t blockchainTargetHeight() override; uint64_t blockchainTargetHeight() override;
std::pair<uint64_t, uint64_t> blockchainAndTargetHeight() override;
uint64_t networkDifficulty() override; uint64_t networkDifficulty() override;
double miningHashRate() override; double miningHashRate() override;
uint64_t blockTarget() override; uint64_t blockTarget() override;