adding timestamp to key images

master
moneroexamples 8 years ago
parent f3411767cc
commit 566201c4bc

@ -2026,12 +2026,30 @@ namespace xmreg {
{"key_imgs" , mstch::array{}} {"key_imgs" , mstch::array{}}
}; };
unique_ptr<xmreg::MyLMDB> mylmdb;
if (bf::is_directory(lmdb2_path))
{
mylmdb = make_unique<xmreg::MyLMDB>(lmdb2_path);
}
else
{
cout << "Custom lmdb database seem does not exist at: " << lmdb2_path << endl;
}
size_t no_key_images = (decoded_raw_data.size() - header_lenght) / record_lenght; size_t no_key_images = (decoded_raw_data.size() - header_lenght) / record_lenght;
//vector<pair<crypto::key_image, crypto::signature>> signed_key_images; //vector<pair<crypto::key_image, crypto::signature>> signed_key_images;
mstch::array& key_imgs_ctx = boost::get<mstch::array>(context["key_imgs"]); mstch::array& key_imgs_ctx = boost::get<mstch::array>(context["key_imgs"]);
for (size_t n = 0; n < no_key_images; ++n) for (size_t n = 0; n < no_key_images; ++n)
{ {
const char* record_ptr = decoded_raw_data.data() + header_lenght + n * record_lenght; const char* record_ptr = decoded_raw_data.data() + header_lenght + n * record_lenght;
@ -2042,12 +2060,53 @@ namespace xmreg {
crypto::signature signature crypto::signature signature
= *reinterpret_cast<const crypto::signature*>(record_ptr + key_img_size); = *reinterpret_cast<const crypto::signature*>(record_ptr + key_img_size);
key_imgs_ctx.push_back(mstch::map{
vector<string> found_tx_hashes;
if (mylmdb)
{
mylmdb->search(epee::string_tools::pod_to_hex(key_image),
found_tx_hashes, "key_images");
}
mstch::map key_img_info {
{"key_no" , fmt::format("{:03d}", n)}, {"key_no" , fmt::format("{:03d}", n)},
{"key_image" , REMOVE_HASH_BRAKETS(fmt::format("{:s}", key_image))}, {"key_image" , REMOVE_HASH_BRAKETS(fmt::format("{:s}", key_image))},
{"signature" , fmt::format("{:s}", signature)}, {"signature" , fmt::format("{:s}", signature)},
{"is_spent" , core_storage->have_tx_keyimg_as_spent(key_image)} {"is_spent" , core_storage->have_tx_keyimg_as_spent(key_image)},
}); {"tx_hash_found" , !found_tx_hashes.empty()},
{"tx_hash" , string{}},
};
if (!found_tx_hashes.empty())
{
string tx_hash_str = found_tx_hashes.at(0);
key_img_info["tx_hash"] = tx_hash_str;
key_img_info["timestamp"] = "0";
transaction tx;
if (mcore->get_tx(tx_hash_str, tx))
{
crypto::hash tx_hash;
epee::string_tools::hex_to_pod(tx_hash_str, tx_hash);
// get timestamp of the tx's block
uint64_t blk_height = core_storage
->get_db().get_tx_block_height(tx_hash);
uint64_t blk_timestamp = core_storage
->get_db().get_block_timestamp(blk_height);
key_img_info["timestamp"] = xmreg::timestamp_to_str(blk_timestamp);
}
}
key_imgs_ctx.push_back(key_img_info);
//signed_key_images.push_back(make_pair(key_image, signature)); //signed_key_images.push_back(make_pair(key_image, signature));
} }

@ -25,17 +25,27 @@
<div class="center"> <div class="center">
<table class="center" style="width:80%"> <table class="center" style="width:80%">
<tr><td>Key no.</td><td>Key image</td><td>Is spent?</td></tr> <tr><td>Key no.</td><td>Key image</td><td>Timestamp</td></td><td>Is spent?</td></tr>
{{#key_imgs}} {{#key_imgs}}
<tr> <tr>
<td>{{key_no}}</td> <td>{{key_no}}</td>
<td>{{key_image}}</td> <td>
{{#is_spent}} {{#tx_hash_found}}
<td><span style="color: #008009;font-weight: bold">{{is_spent}}</span></td> <a href="/tx/{{tx_hash}}">{{key_image}}</a>
{{/is_spent}} {{/tx_hash_found}}
{{^is_spent}} {{^tx_hash_found}}
<td>{{is_spent}}</td> {{key_image}}
{{/is_spent}} {{/tx_hash_found}}
</td>
<td>{{timestamp}}</td>
<td>
{{#is_spent}}
<span style="color: #008009;font-weight: bold">{{is_spent}}</span>
{{/is_spent}}
{{^is_spent}}
{{is_spent}}
{{/is_spent}}
</td>
</tr> </tr>
{{/key_imgs}} {{/key_imgs}}
</table> </table>

Loading…
Cancel
Save