parse_str_secret_key js function added

This commit is contained in:
moneroexamples 2018-01-24 12:22:30 +08:00
parent 589a5d9548
commit d2c0a4895d
2 changed files with 30 additions and 1 deletions

View File

@ -211,11 +211,17 @@
return;
}
// when using subaddress, there can be more than one tx_prv_key
var multiple_tx_prv_keys = parse_str_secret_key(tx_prv_key);
console.log("multiple_tx_prv_keys: ", multiple_tx_prv_keys);
try {
var address_decoded = decode_address(address);
decodeOutputs(tx_json, address_decoded.view, tx_prv_key,
address_decoded.spend, payment_id,
add_tx_pub_keys);
multiple_tx_prv_keys);
} catch(err){
console.log(err);
$("#decode-prove-results").html('<h4>Error:' + err.message + '</h4>' );
@ -224,6 +230,25 @@
});
// based on C++ by stoffu
function parse_str_secret_key(key_str) {
var multiple_tx_secret_keys = [];
var num_keys = Math.floor(key_str.length / 64);
if (num_keys * 64 != key_str.length)
throw "num_keys * 64 != key_str.length for " + num_keys + " and " + key_str;
for (var i = 0; i < num_keys; i++)
{
multiple_tx_secret_keys.push(key_str.slice(64*i, 64*i + 64));
}
return multiple_tx_secret_keys;
}
function decodeOutputs(tx_json, pub_key, sec_key,
address_pub_key, payment_id, add_tx_pub_keys) {
//console.log(tx_json);

View File

@ -77,14 +77,18 @@ bool
parse_str_secret_key(const string& key_str, std::vector<T>& secret_keys)
{
const size_t num_keys = key_str.size() / 64;
if (num_keys * 64 != key_str.size())
return false;
secret_keys.resize(num_keys);
for (size_t i = 0; i < num_keys; ++i)
{
if (!parse_str_secret_key(key_str.substr(64*i, 64), secret_keys[i]))
return false;
}
return true;
}