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 () { 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(); }); }); $(".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();