Files
paperclip-wallet/renderer/addressBook.js
2019-03-19 20:04:49 +01:00

153 lines
4.7 KiB
JavaScript

const {ipcRenderer} = require("electron");
class AddressBook {
constructor() {}
setAddressName(address, name) {
var addressBook = EthoDatatabse.getAddresses();
// set the wallet name from the dialog box
addressBook.names[address.toUpperCase()] = name;
EthoDatatabse.setAddresses(addressBook);
}
getAddressName(address) {
var addressBook = EthoDatatabse.getAddresses();
// set the wallet name from the dialog box
return addressBook.names[address.toUpperCase()] || "";
}
getAddressList() {
var addressBook = EthoDatatabse.getAddresses();
return addressBook.names;
}
deleteAddress(address) {
var addressBook = EthoDatatabse.getAddresses();
delete addressBook.names[address];
EthoDatatabse.setAddresses(addressBook);
}
enableButtonTooltips() {}
renderAddressBook() {
var addressObject = EthoAddressBook.getAddressList();
var renderData = {
addressData: []
};
for (var key in addressObject) {
if (addressObject.hasOwnProperty(key)) {
var addressEntry = {};
addressEntry.name = addressObject[key];
addressEntry.address = key;
renderData.addressData.push(addressEntry);
}
}
// render the wallets current state
EthoMainGUI.renderTemplate("addressBook.html", renderData);
$(document).trigger("render_addressBook");
EthoAddressBook.enableButtonTooltips();
}
}
// the event to tell us that the wallets are rendered
$(document).on("render_addressBook", function () {
if ($("#addressTable").length > 0) {
new Tablesort(document.getElementById("addressTable"));
$("#addressTable").floatThead();
}
$("#btnNewAddress").off("click").on("click", function () {
$("#dlgCreateAddressAndName").iziModal();
$("#addressName").val("");
$("#addressHash").val("");
$("#dlgCreateAddressAndName").iziModal("open");
function doCreateNewWallet() {
$("#dlgCreateAddressAndName").iziModal("close");
if (!EthoBlockchain.isAddress($("#addressHash").val())) {
EthoMainGUI.showGeneralError("Address must be a valid address!");
} else {
EthoAddressBook.setAddressName($("#addressHash").val(), $("#addressName").val());
EthoAddressBook.renderAddressBook();
iziToast.success({title: "Created", message: "New address was successfully created", position: "topRight", timeout: 5000});
}
}
$("#btnCreateAddressConfirm").off("click").on("click", function () {
doCreateNewWallet();
});
$("#dlgCreateAddressAndName").off("keypress").on("keypress", function (e) {
if (e.which == 13) {
doCreateNewWallet();
}
});
});
$(".btnChangAddressName").off("click").on("click", function () {
var walletAddress = $(this).attr("data-address");
var walletName = $(this).attr("data-name");
$("#dlgChangeAddressName").iziModal();
$("#inputAddressName").val(walletName);
$("#dlgChangeAddressName").iziModal("open");
function doChangeAddressName() {
EthoAddressBook.setAddressName(walletAddress, $("#inputAddressName").val());
$("#dlgChangeAddressName").iziModal("close");
EthoAddressBook.renderAddressBook();
}
$("#btnChangeAddressNameConfirm").off("click").on("click", function () {
doChangeAddressName();
});
$("#dlgChangeAddressName").off("keypress").on("keypress", function (e) {
if (e.which == 13) {
doChangeAddressName();
}
});
});
$(".btnDeleteAddress").off("click").on("click", function () {
var deleteAddress = $(this).attr("data-address");
$("#dlgDeleteAddressConfirm").iziModal();
$("#dlgDeleteAddressConfirm").iziModal("open");
$("#btnDeleteAddressCancel").off("click").on("click", function () {
$("#dlgDeleteAddressConfirm").iziModal("close");
});
$("#btnDeleteAddressConfirm").off("click").on("click", function () {
$("#dlgDeleteAddressConfirm").iziModal("close");
EthoAddressBook.deleteAddress(deleteAddress);
EthoAddressBook.renderAddressBook();
});
});
$(".btnShowQRCode").off("click").on("click", function () {
var QRCodeAddress = $(this).attr("data-address");
$("#dlgShowAddressQRCode").iziModal();
$("#addrQRCode").html("");
$("#addrQRCode").qrcode(QRCodeAddress);
$("#dlgShowAddressQRCode").iziModal("open");
$("#btnScanQRCodeClose").off("click").on("click", function () {
$("#dlgShowAddressQRCode").iziModal("close");
});
});
$(".textAddress").off("click").on("click", function () {
EthoMainGUI.copyToClipboard($(this).html());
iziToast.success({title: "Copied", message: "Address was copied to clipboard", position: "topRight", timeout: 2000});
});
});
EthoAddressBook = new AddressBook();