Merge pull request #1173
65ea836
wallet2_api: added Wallet::daemonBlockChainTargetHeight() libwallet_api: Wallet::blockChainTargetHeight (Jacob Brydolf)
This commit is contained in:
commit
2723cd12e1
|
@ -438,6 +438,23 @@ uint64_t WalletImpl::daemonBlockChainHeight() const
|
|||
return result;
|
||||
}
|
||||
|
||||
uint64_t WalletImpl::daemonBlockChainTargetHeight() const
|
||||
{
|
||||
std::string err;
|
||||
uint64_t result = m_wallet->get_daemon_blockchain_target_height(err);
|
||||
if (!err.empty()) {
|
||||
LOG_ERROR(__FUNCTION__ << ": " << err);
|
||||
result = 0;
|
||||
m_errorString = err;
|
||||
m_status = Status_Error;
|
||||
|
||||
} else {
|
||||
m_status = Status_Ok;
|
||||
m_errorString = "";
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
bool WalletImpl::refresh()
|
||||
{
|
||||
clearStatus();
|
||||
|
|
|
@ -77,6 +77,7 @@ public:
|
|||
uint64_t unlockedBalance() const;
|
||||
uint64_t blockChainHeight() const;
|
||||
uint64_t daemonBlockChainHeight() const;
|
||||
uint64_t daemonBlockChainTargetHeight() const;
|
||||
bool refresh();
|
||||
void refreshAsync();
|
||||
void setAutoRefreshInterval(int millis);
|
||||
|
|
|
@ -4266,6 +4266,38 @@ uint64_t wallet2::get_daemon_blockchain_height(string &err)
|
|||
return res.height;
|
||||
}
|
||||
|
||||
uint64_t wallet2::get_daemon_blockchain_target_height(string &err)
|
||||
{
|
||||
epee::json_rpc::request<cryptonote::COMMAND_RPC_GET_INFO::request> req_t = AUTO_VAL_INIT(req_t);
|
||||
epee::json_rpc::response<cryptonote::COMMAND_RPC_GET_INFO::response, std::string> resp_t = AUTO_VAL_INIT(resp_t);
|
||||
m_daemon_rpc_mutex.lock();
|
||||
req_t.jsonrpc = "2.0";
|
||||
req_t.id = epee::serialization::storage_entry(0);
|
||||
req_t.method = "get_info";
|
||||
bool ok = net_utils::invoke_http_json_remote_command2(m_daemon_address + "/json_rpc", req_t, resp_t, m_http_client);
|
||||
m_daemon_rpc_mutex.unlock();
|
||||
if (ok)
|
||||
{
|
||||
if (resp_t.result.status == CORE_RPC_STATUS_BUSY)
|
||||
{
|
||||
err = "daemon is busy. Please try again later.";
|
||||
}
|
||||
else if (resp_t.result.status != CORE_RPC_STATUS_OK)
|
||||
{
|
||||
err = resp_t.result.status;
|
||||
}
|
||||
else // success, cleaning up error message
|
||||
{
|
||||
err = "";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
err = "possibly lost connection to daemon";
|
||||
}
|
||||
return resp_t.result.target_height;
|
||||
}
|
||||
|
||||
void wallet2::set_tx_note(const crypto::hash &txid, const std::string ¬e)
|
||||
{
|
||||
m_tx_notes[txid] = note;
|
||||
|
|
|
@ -456,6 +456,7 @@ namespace tools
|
|||
std::string get_keys_file() const;
|
||||
std::string get_daemon_address() const;
|
||||
uint64_t get_daemon_blockchain_height(std::string& err);
|
||||
uint64_t get_daemon_blockchain_target_height(std::string& err);
|
||||
|
||||
std::vector<size_t> select_available_outputs_from_histogram(uint64_t count, bool atleast, bool unlocked, bool trusted_daemon);
|
||||
std::vector<size_t> select_available_outputs(const std::function<bool(const transfer_details &td)> &f);
|
||||
|
|
|
@ -248,6 +248,12 @@ struct Wallet
|
|||
*/
|
||||
virtual uint64_t daemonBlockChainHeight() const = 0;
|
||||
|
||||
/**
|
||||
* @brief daemonBlockChainTargetHeight - returns daemon blockchain target height
|
||||
* @return 0 - in case error communicating with the daemon.
|
||||
* status() will return Status_Error and errorString() will return verbose error description
|
||||
*/
|
||||
virtual uint64_t daemonBlockChainTargetHeight() const = 0;
|
||||
|
||||
static std::string displayAmount(uint64_t amount);
|
||||
static uint64_t amountFromString(const std::string &amount);
|
||||
|
|
Loading…
Reference in New Issue