68 lines
No EOL
2.6 KiB
JavaScript
68 lines
No EOL
2.6 KiB
JavaScript
ninja.wallets.brainwallet = {
|
|
isOpen: function () {
|
|
return (document.getElementById("brainwallet").className.indexOf("selected") != -1);
|
|
},
|
|
|
|
open: function () {
|
|
document.getElementById("brainarea").style.display = "block";
|
|
document.getElementById("brainpassphrase").focus();
|
|
document.getElementById("brainwarning").innerHTML = ninja.translator.get("brainalertpassphrasewarning");
|
|
},
|
|
|
|
close: function () {
|
|
document.getElementById("brainarea").style.display = "none";
|
|
},
|
|
|
|
minPassphraseLength: 15,
|
|
|
|
view: function () {
|
|
var key = document.getElementById("brainpassphrase").value.toString()
|
|
document.getElementById("brainpassphrase").value = key;
|
|
var keyConfirm = document.getElementById("brainpassphraseconfirm").value.toString()
|
|
document.getElementById("brainpassphraseconfirm").value = keyConfirm;
|
|
|
|
if (key == keyConfirm || document.getElementById("brainpassphraseshow").checked) {
|
|
// enforce a minimum passphrase length
|
|
if (key.length >= ninja.wallets.brainwallet.minPassphraseLength) {
|
|
var bytes = Crypto.SHA256(key, { asBytes: true });
|
|
var btcKey = new Bitcoin.ECKey(bytes);
|
|
var isCompressed = document.getElementById("braincompressed").checked;
|
|
btcKey.setCompressed(isCompressed);
|
|
var bitcoinAddress = btcKey.getBitcoinAddress();
|
|
var privWif = btcKey.getBitcoinWalletImportFormat();
|
|
document.getElementById("brainbtcaddress").innerHTML = bitcoinAddress;
|
|
document.getElementById("brainbtcprivwif").innerHTML = privWif;
|
|
ninja.qrCode.showQrCode({
|
|
"brainqrcodepublic": bitcoinAddress,
|
|
"brainqrcodeprivate": privWif
|
|
});
|
|
document.getElementById("brainkeyarea").style.visibility = "visible";
|
|
}
|
|
else {
|
|
alert(ninja.translator.get("brainalertpassphrasetooshort") + ninja.translator.get("brainalertpassphrasewarning"));
|
|
ninja.wallets.brainwallet.clear();
|
|
}
|
|
}
|
|
else {
|
|
alert(ninja.translator.get("brainalertpassphrasedoesnotmatch"));
|
|
ninja.wallets.brainwallet.clear();
|
|
}
|
|
},
|
|
|
|
clear: function () {
|
|
document.getElementById("brainkeyarea").style.visibility = "hidden";
|
|
},
|
|
|
|
showToggle: function (element) {
|
|
if (element.checked) {
|
|
document.getElementById("brainpassphrase").setAttribute("type", "text");
|
|
document.getElementById("brainpassphraseconfirm").style.visibility = "hidden";
|
|
document.getElementById("brainlabelconfirm").style.visibility = "hidden";
|
|
}
|
|
else {
|
|
document.getElementById("brainpassphrase").setAttribute("type", "password");
|
|
document.getElementById("brainpassphraseconfirm").style.visibility = "visible";
|
|
document.getElementById("brainlabelconfirm").style.visibility = "visible";
|
|
}
|
|
}
|
|
}; |