rpc: make wide_difficulty hexadecimal

This should be friendlier for clients which don't have bignum support
This commit is contained in:
moneromooo-monero 2019-04-05 16:28:15 +00:00
parent fe3403c8f0
commit cbf3224180
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
4 changed files with 26 additions and 8 deletions

View file

@ -239,4 +239,19 @@ namespace cryptonote {
return res.convert_to<difficulty_type>();
}
std::string hex(difficulty_type v)
{
static const char chars[] = "0123456789abcdef";
std::string s;
while (v > 0)
{
s.push_back(chars[(v & 0xf).convert_to<unsigned>()]);
v >>= 4;
}
if (s.empty())
s += "0";
std::reverse(s.begin(), s.end());
return "0x" + s;
}
}

View file

@ -32,6 +32,7 @@
#include <cstdint>
#include <vector>
#include <string>
#include <boost/multiprecision/cpp_int.hpp>
#include "crypto/hash.h"
@ -58,4 +59,6 @@ namespace cryptonote
bool check_hash_128(const crypto::hash &hash, difficulty_type difficulty);
bool check_hash(const crypto::hash &hash, difficulty_type difficulty);
difficulty_type next_difficulty(std::vector<std::uint64_t> timestamps, std::vector<difficulty_type> cumulative_difficulties, size_t target_seconds);
std::string hex(difficulty_type v);
}