add prove and myoutpus shortcut links

This commit is contained in:
moneroexamples 2017-09-02 08:59:45 +08:00
parent 4fee4e25c9
commit f290c1db43
3 changed files with 51 additions and 5 deletions

View File

@ -253,6 +253,12 @@ main(int ac, const char* av[])
// crow instance // crow instance
crow::SimpleApp app; crow::SimpleApp app;
// get domian url based on the request
auto get_domain = [&use_ssl](crow::request const& req) {
return (use_ssl ? "https://" : "http://")
+ req.get_header_value("Host");
};
CROW_ROUTE(app, "/") CROW_ROUTE(app, "/")
([&](const crow::request& req) { ([&](const crow::request& req) {
return crow::response(xmrblocks.index2()); return crow::response(xmrblocks.index2());
@ -304,8 +310,22 @@ main(int ac, const char* av[])
// using tx pusher // using tx pusher
string raw_tx_data = post_body["raw_tx_data"]; string raw_tx_data = post_body["raw_tx_data"];
string domain = get_domain(req);
return xmrblocks.show_my_outputs(tx_hash, xmr_address, return xmrblocks.show_my_outputs(tx_hash, xmr_address,
viewkey, raw_tx_data); viewkey, raw_tx_data,
domain);
});
CROW_ROUTE(app, "/myoutputs/<string>/<string>/<string>")
([&](const crow::request& req, string tx_hash,
string xmr_address, string viewkey) {
string domain = get_domain(req);
return xmrblocks.show_my_outputs(tx_hash, xmr_address,
viewkey, string {},
domain);
}); });
CROW_ROUTE(app, "/prove").methods("POST"_method) CROW_ROUTE(app, "/prove").methods("POST"_method)
@ -326,7 +346,21 @@ main(int ac, const char* av[])
string tx_prv_key = post_body["txprvkey"];; string tx_prv_key = post_body["txprvkey"];;
string xmr_address = post_body["xmraddress"];; string xmr_address = post_body["xmraddress"];;
return xmrblocks.show_prove(tx_hash, xmr_address, tx_prv_key); string domain = get_domain(req);
return xmrblocks.show_prove(tx_hash, xmr_address,
tx_prv_key, domain);
});
CROW_ROUTE(app, "/prove/<string>/<string>/<string>")
([&](const crow::request& req, string tx_hash,
string xmr_address, string tx_prv_key) {
string domain = get_domain(req);
return xmrblocks.show_prove(tx_hash, xmr_address,
tx_prv_key, domain);
}); });
if (enable_pusher) if (enable_pusher)

View File

@ -1412,6 +1412,7 @@ namespace xmreg
string xmr_address_str, string xmr_address_str,
string viewkey_str, /* or tx_prv_key_str when tx_prove == true */ string viewkey_str, /* or tx_prv_key_str when tx_prove == true */
string raw_tx_data, string raw_tx_data,
string domain,
bool tx_prove = false) bool tx_prove = false)
{ {
@ -1595,6 +1596,11 @@ namespace xmreg
string pid_str = pod_to_hex(txd.payment_id); string pid_str = pod_to_hex(txd.payment_id);
string pid8_str = pod_to_hex(txd.payment_id8); string pid8_str = pod_to_hex(txd.payment_id8);
string shortcut_url = domain
+ (tx_prove ? "/prove" : "/myoutputs")
+ "/" + tx_hash_str
+ "/" + xmr_address_str
+ "/" + viewkey_str;
// initalise page tempate map with basic info about blockchain // initalise page tempate map with basic info about blockchain
mstch::map context { mstch::map context {
@ -1616,7 +1622,8 @@ namespace xmreg
{"payment_id" , pid_str}, {"payment_id" , pid_str},
{"payment_id8" , pid8_str}, {"payment_id8" , pid8_str},
{"decrypted_payment_id8", string{}}, {"decrypted_payment_id8", string{}},
{"tx_prove" , tx_prove} {"tx_prove" , tx_prove},
{"shortcut_url" , shortcut_url}
}; };
string server_time_str = xmreg::timestamp_to_str_gm(server_timestamp, "%F"); string server_time_str = xmreg::timestamp_to_str_gm(server_timestamp, "%F");
@ -2096,12 +2103,14 @@ namespace xmreg
string string
show_prove(string tx_hash_str, show_prove(string tx_hash_str,
string xmr_address_str, string xmr_address_str,
string tx_prv_key_str) string tx_prv_key_str,
string domain)
{ {
string raw_tx_data {""}; // not using it in prove tx. only for outputs string raw_tx_data {""}; // not using it in prove tx. only for outputs
return show_my_outputs(tx_hash_str, xmr_address_str, return show_my_outputs(tx_hash_str, xmr_address_str,
tx_prv_key_str, raw_tx_data, true); tx_prv_key_str, raw_tx_data,
domain, true);
} }
string string

View File

@ -76,6 +76,9 @@
0.000000000000 0.000000000000
{{/found_our_outputs}} {{/found_our_outputs}}
</h3> </h3>
<h4>
<a href="{{shortcut_url}}" target="_blank">link to this page</a>
</h4>
</div> </div>