wallet: more user friendly print_ring

It can now take a txid (to display rings for all its inputs),
and will print rings in a format that set_ring understands
This commit is contained in:
moneromooo-monero
2018-03-14 19:13:55 +00:00
parent 798535149d
commit eac3a11ed3
6 changed files with 101 additions and 15 deletions

View File

@@ -1971,6 +1971,30 @@ bool WalletImpl::getRing(const std::string &key_image, std::vector<uint64_t> &ri
return true;
}
bool WalletImpl::getRings(const std::string &txid, std::vector<std::pair<std::string, std::vector<uint64_t>>> &rings) const
{
crypto::hash raw_txid;
if (!epee::string_tools::hex_to_pod(txid, raw_txid))
{
m_status = Status_Error;
m_errorString = tr("Failed to parse txid");
return false;
}
std::vector<std::pair<crypto::key_image, std::vector<uint64_t>>> raw_rings;
bool ret = m_wallet->get_rings(raw_txid, raw_rings);
if (!ret)
{
m_status = Status_Error;
m_errorString = tr("Failed to get rings");
return false;
}
for (const auto &r: raw_rings)
{
rings.push_back(std::make_pair(epee::string_tools::pod_to_hex(r.first), r.second));
}
return true;
}
bool WalletImpl::setRing(const std::string &key_image, const std::vector<uint64_t> &ring, bool relative)
{
crypto::key_image raw_key_image;