(function (wallets, translator, privateKey) {
var bulk = wallets.bulkwallet = {
isOpen: function () {
return (document.getElementById("bulkwallet").className.indexOf("selected") != -1);
},
open: function () {
document.getElementById("bulkarea").style.display = "block";
if (document.getElementById("bulktextarea").value == "") {
setTimeout(function () { bulk.buildCSV(3, 1, document.getElementById("bulkcompressed").checked); }, 200);
}
document.getElementById("bulkpassphrase").disabled = !document.getElementById("bulkencrypt").checked;
},
close: function () {
document.getElementById("bulkarea").style.display = "none";
},
buildCSV: function (rowLimit, startIndex, compressedAddrs, passphrase) {
document.getElementById("bulktextarea").value = translator.get("bulkgeneratingaddresses") + rowLimit;
bulk.csv = [];
bulk.csvRowLimit = rowLimit;
bulk.csvRowsRemaining = rowLimit;
bulk.csvStartIndex = --startIndex;
bulk.compressedAddrs = !!compressedAddrs;
if (bulk.encrypt) {
if (passphrase == "") {
alert(translator.get("bip38alertpassphraserequired"));
return;
}
document.getElementById("busyblock").className = "busy";
privateKey.BIP38GenerateIntermediatePointAsync(passphrase, null, null, function (intermediate) {
bulk.intermediatePoint = intermediate;
document.getElementById("busyblock").className = "";
setTimeout(bulk.batchCSV, 0);
});
}
else {
setTimeout(bulk.batchCSV, 0);
}
},
csv: [],
csvRowsRemaining: null,
csvRowLimit: 0,
csvStartIndex: 0,
batchCSV: function () {
if (bulk.csvRowsRemaining > 0) {
bulk.csvRowsRemaining--;
if (bulk.encrypt) {
privateKey.BIP38GenerateECAddressAsync(bulk.intermediatePoint, bulk.compressedAddrs, function (address, encryptedKey) {
Bitcoin.KeyPool.push(new Bitcoin.Bip38Key(address, encryptedKey));
bulk.csv.push((bulk.csvRowLimit - bulk.csvRowsRemaining + bulk.csvStartIndex)
+ ",\"" + address + "\",\"" + encryptedKey
+ "\"");
document.getElementById("bulktextarea").value = translator.get("bulkgeneratingaddresses") + bulk.csvRowsRemaining;
setTimeout(bulk.batchCSV, 0);
});
}
else {
var key = new Bitcoin.ECKey(false);
key.setCompressed(bulk.compressedAddrs);
bulk.csv.push((bulk.csvRowLimit - bulk.csvRowsRemaining + bulk.csvStartIndex)
+ ",\"" + key.getBitcoinAddress() + "\",\"" + key.toString("wif")
+ "\"");
document.getElementById("bulktextarea").value = translator.get("bulkgeneratingaddresses") + bulk.csvRowsRemaining;
setTimeout(bulk.batchCSV, 0);
}
}
else if (bulk.csvRowsRemaining === 0) {
document.getElementById("bulktextarea").value = bulk.csv.join("\n");
}
},
openCloseFaq: function (faqNum) {
if (document.getElementById("bulka" + faqNum).style.display == "block") {
document.getElementById("bulka" + faqNum).style.display = "none";
document.getElementById("bulke" + faqNum).setAttribute("class", "more");
}
else {
document.getElementById("bulka" + faqNum).style.display = "block";
document.getElementById("bulke" + faqNum).setAttribute("class", "less");
}
},
toggleEncrypt: function (element) {
document.getElementById("bulkpassphrase").disabled = !element.checked;
bulk.encrypt = element.checked;
}
};
})(ninja.wallets, ninja.translator, ninja.privateKey);