better error messages added to key image file checker

master
moneroexamples 8 years ago
parent 3a405627bb
commit 8a731907f5

@ -2031,18 +2031,52 @@ public:
string decoded_raw_data = epee::string_encoding::base64_decode(raw_data); string decoded_raw_data = epee::string_encoding::base64_decode(raw_data);
secret_key prv_view_key; secret_key prv_view_key;
// initalize page template context map
mstch::map context{
{"testnet" , testnet},
{"has_error", false},
{"error_msg", string{}},
};
// read page template
string checkrawkeyimgs_html = xmreg::read(TMPL_MY_CHECKRAWKEYIMGS);
// add footer
string full_page = checkrawkeyimgs_html + xmreg::read(TMPL_FOOTER);
add_css_style(context);
if (viewkey_str.empty())
{
string error_msg = fmt::format("View key not given. Cant decode "
"the key image data without it!");
context["has_error"] = true;
context["error_msg"] = error_msg;
return mstch::render(full_page, context);
}
if (!xmreg::parse_str_secret_key(viewkey_str, prv_view_key)) if (!xmreg::parse_str_secret_key(viewkey_str, prv_view_key))
{ {
cerr << "Cant parse the private key: " << viewkey_str << endl; string error_msg = fmt::format("Cant parse the private key: " + viewkey_str);
return string("Cant parse private key: " + viewkey_str);
context["has_error"] = true;
context["error_msg"] = error_msg;
return mstch::render(full_page, context);
} }
const size_t magiclen = strlen(KEY_IMAGE_EXPORT_FILE_MAGIC); const size_t magiclen = strlen(KEY_IMAGE_EXPORT_FILE_MAGIC);
if (!strncmp(decoded_raw_data.c_str(), KEY_IMAGE_EXPORT_FILE_MAGIC, magiclen) == 0) if (!strncmp(decoded_raw_data.c_str(), KEY_IMAGE_EXPORT_FILE_MAGIC, magiclen) == 0)
{ {
cout << "This does not seem to be key image export data" << endl; string error_msg = fmt::format("This does not seem to be key image export data.");
return string {"This does not seem to be key image export data"};
context["has_error"] = true;
context["error_msg"] = error_msg;
return mstch::render(full_page, context);
} }
// decrypt key images data using private view key // decrypt key images data using private view key
@ -2052,8 +2086,13 @@ public:
if (decoded_raw_data.empty()) if (decoded_raw_data.empty())
{ {
return string {"Failed to authenticate key images data. " string error_msg = fmt::format("Failed to authenticate key images data. "
"Maybe wrong viewkey was porvided?"}; "Maybe wrong viewkey was porvided?");
context["has_error"] = true;
context["error_msg"] = error_msg;
return mstch::render(full_page, context);
} }
// header is public spend and keys // header is public spend and keys
@ -2064,8 +2103,13 @@ public:
if (decoded_raw_data.size() < header_lenght) if (decoded_raw_data.size() < header_lenght)
{ {
cerr << "Bad data size from submitted key images raw data" << endl; string error_msg = fmt::format("Bad data size from submitted key images raw data.");
return string {"Bad data size from submitted key images raw data"};
context["has_error"] = true;
context["error_msg"] = error_msg;
return mstch::render(full_page, context);
} }
// get xmr address stored in this key image file // get xmr address stored in this key image file
@ -2073,15 +2117,11 @@ public:
reinterpret_cast<const account_public_address*>( reinterpret_cast<const account_public_address*>(
decoded_raw_data.data()); decoded_raw_data.data());
// initalize page template context map context.insert({"address" , REMOVE_HASH_BRAKETS(xmreg::print_address(*xmr_address, testnet))});
mstch::map context { context.insert({"viewkey" , REMOVE_HASH_BRAKETS(fmt::format("{:s}", prv_view_key))});
{"testnet" , testnet}, context.insert({"has_total_xmr" , false});
{"address" , REMOVE_HASH_BRAKETS(xmreg::print_address(*xmr_address, testnet))}, context.insert({"total_xmr" , string{}});
{"viewkey" , REMOVE_HASH_BRAKETS(fmt::format("{:s}", prv_view_key))}, context.insert({"key_imgs" , mstch::array{}});
{"has_total_xmr" , false},
{"total_xmr" , string{}},
{"key_imgs" , mstch::array{}}
};
unique_ptr<xmreg::MyLMDB> mylmdb; unique_ptr<xmreg::MyLMDB> mylmdb;
@ -2189,13 +2229,6 @@ public:
context["total_xmr"] = xmreg::xmr_amount_to_str(total_xmr); context["total_xmr"] = xmreg::xmr_amount_to_str(total_xmr);
} }
string checkrawkeyimgs_html = xmreg::read(TMPL_MY_CHECKRAWKEYIMGS);
// add footer
string full_page = checkrawkeyimgs_html + xmreg::read(TMPL_FOOTER);
add_css_style(context);
// render the page // render the page
return mstch::render(full_page, context); return mstch::render(full_page, context);
} }

@ -21,52 +21,60 @@
<h4 style="font-size: 15px; margin: 0px">(no javascript - no cookies - no web analytics trackers - no images - open sourced)</h4> <h4 style="font-size: 15px; margin: 0px">(no javascript - no cookies - no web analytics trackers - no images - open sourced)</h4>
</div> </div>
<h4>Key images for address: {{address}}</h4>
<h4>Viewkey: {{viewkey}}</h4>
{{#has_total_xmr}}
<h4>Total value of xmr spend: {{total_xmr}}</h4>
{{/has_total_xmr}}
<div class="center"> {{#has_error}}
<h4 style="color:red">Attempt failed</h4>
<h4>{{error_msg}}</h4>
{{/has_error}}
{{^has_error}}
<h4>Key images for address: {{address}}</h4>
<h4>Viewkey: {{viewkey}}</h4>
{{#has_total_xmr}}
<h4>Total value of xmr spend: {{total_xmr}}</h4>
{{/has_total_xmr}}
<div class="center">
<form action="/genrawkeyimgs" method="post" style="width:100%; margin-top:15px" class="style-1"> <form action="/genrawkeyimgs" method="post" style="width:100%; margin-top:15px" class="style-1">
<table class="center" style="width:80%"> <table class="center" style="width:80%">
<tr>
<td>Key no.</td>
<td>Key image</td>
<td>Timestamp</td>
<td>Amount</td>
<td>Is spent?</td>
</tr>
{{#key_imgs}}
<input type="hidden" id="key_img_{{key_image}}" name="key_sig_pair_{{key_image}}" value="{{signature}}">
<tr> <tr>
<td>{{key_no}}</td> <td>Key no.</td>
<td> <td>Key image</td>
{{#tx_hash_found}} <td>Timestamp</td>
<a href="/tx/{{tx_hash}}">{{key_image}}</a> <td>Amount</td>
{{/tx_hash_found}} <td>Is spent?</td>
{{^tx_hash_found}}
{{key_image}}
{{/tx_hash_found}}
</td>
<td>{{timestamp}}</td>
<td>{{amount}}</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> <input type="hidden" id="key_img_{{key_image}}" name="key_sig_pair_{{key_image}}" value="{{signature}}">
<br/> <tr>
<!-- <input type="submit" name="action" value="remove selected keys">--> <td>{{key_no}}</td>
</form> <td>
{{#tx_hash_found}}
<a href="/tx/{{tx_hash}}">{{key_image}}</a>
{{/tx_hash_found}}
{{^tx_hash_found}}
{{key_image}}
{{/tx_hash_found}}
</td>
<td>{{timestamp}}</td>
<td>{{amount}}</td>
<td>
{{#is_spent}}
<span style="color: #008009;font-weight: bold">{{is_spent}}</span>
{{/is_spent}}
{{^is_spent}}
{{is_spent}}
{{/is_spent}}
</td>
</tr>
{{/key_imgs}}
</table>
<br/>
<!-- <input type="submit" name="action" value="remove selected keys">-->
</form>
</div> </div>
{{/has_error}}
</div> </div>
Loading…
Cancel
Save