73 lines
No EOL
2.8 KiB
JavaScript
73 lines
No EOL
2.8 KiB
JavaScript
ninja.wallets.bulkwallet = {
|
|
open: function () {
|
|
document.getElementById("bulkarea").style.display = "block";
|
|
// show a default CSV list if the text area is empty
|
|
if (document.getElementById("bulktextarea").value == "") {
|
|
// return control of the thread to the browser to render the tab switch UI then build a default CSV list
|
|
setTimeout(function () { ninja.wallets.bulkwallet.buildCSV(3, 1, document.getElementById("bulkcompressed").checked); }, 200);
|
|
}
|
|
},
|
|
|
|
close: function () {
|
|
document.getElementById("bulkarea").style.display = "none";
|
|
},
|
|
|
|
// use this function to bulk generate addresses
|
|
// rowLimit: number of Bitcoin Addresses to generate
|
|
// startIndex: add this number to the row index for output purposes
|
|
// returns:
|
|
// index,bitcoinAddress,privateKeyWif
|
|
buildCSV: function (rowLimit, startIndex, compressedAddrs) {
|
|
var bulkWallet = ninja.wallets.bulkwallet;
|
|
document.getElementById("bulktextarea").value = ninja.translator.get("bulkgeneratingaddresses") + rowLimit;
|
|
bulkWallet.csv = [];
|
|
bulkWallet.csvRowLimit = rowLimit;
|
|
bulkWallet.csvRowsRemaining = rowLimit;
|
|
bulkWallet.csvStartIndex = --startIndex;
|
|
bulkWallet.compressedAddrs = !!compressedAddrs;
|
|
setTimeout(bulkWallet.batchCSV, 0);
|
|
},
|
|
|
|
csv: [],
|
|
csvRowsRemaining: null, // use to keep track of how many rows are left to process when building a large CSV array
|
|
csvRowLimit: 0,
|
|
csvStartIndex: 0,
|
|
|
|
batchCSV: function () {
|
|
var bulkWallet = ninja.wallets.bulkwallet;
|
|
if (bulkWallet.csvRowsRemaining > 0) {
|
|
bulkWallet.csvRowsRemaining--;
|
|
var key = new Bitcoin.ECKey(false);
|
|
key.setCompressed(bulkWallet.compressedAddrs);
|
|
|
|
bulkWallet.csv.push((bulkWallet.csvRowLimit - bulkWallet.csvRowsRemaining + bulkWallet.csvStartIndex)
|
|
+ ",\"" + key.getBitcoinAddress() + "\",\"" + key.toString("wif")
|
|
//+ "\",\"" + key.toString("wifcomp") // uncomment these lines to add different private key formats to the CSV
|
|
//+ "\",\"" + key.getBitcoinHexFormat()
|
|
//+ "\",\"" + key.toString("base64")
|
|
+ "\"");
|
|
|
|
document.getElementById("bulktextarea").value = ninja.translator.get("bulkgeneratingaddresses") + bulkWallet.csvRowsRemaining;
|
|
|
|
// release thread to browser to render UI
|
|
setTimeout(bulkWallet.batchCSV, 0);
|
|
}
|
|
// processing is finished so put CSV in text area
|
|
else if (bulkWallet.csvRowsRemaining === 0) {
|
|
document.getElementById("bulktextarea").value = bulkWallet.csv.join("\n");
|
|
}
|
|
},
|
|
|
|
openCloseFaq: function (faqNum) {
|
|
// do close
|
|
if (document.getElementById("bulka" + faqNum).style.display == "block") {
|
|
document.getElementById("bulka" + faqNum).style.display = "none";
|
|
document.getElementById("bulke" + faqNum).setAttribute("class", "more");
|
|
}
|
|
// do open
|
|
else {
|
|
document.getElementById("bulka" + faqNum).style.display = "block";
|
|
document.getElementById("bulke" + faqNum).setAttribute("class", "less");
|
|
}
|
|
}
|
|
}; |