+ basic address book support
+ notify of new transactions + refresh transactions ! fixed a lot of transactions bugs
This commit is contained in:
159
renderer/addressBook.js
Normal file
159
renderer/addressBook.js
Normal file
@@ -0,0 +1,159 @@
|
||||
const {ipcRenderer} = require('electron');
|
||||
|
||||
class AddressBook {
|
||||
constructor() {
|
||||
}
|
||||
|
||||
setAddressName(address, name) {
|
||||
console.log(address);
|
||||
console.log(name);
|
||||
var addressBook = ipcRenderer.sendSync('getJSONFile', 'addresses.json');
|
||||
|
||||
if (!addressBook) {
|
||||
addressBook = { names: {} };
|
||||
}
|
||||
|
||||
// set the wallet name from the dialog box
|
||||
addressBook.names[address] = name;
|
||||
ipcRenderer.sendSync('setJSONFile',
|
||||
{
|
||||
file: 'addresses.json',
|
||||
data: addressBook
|
||||
});
|
||||
}
|
||||
|
||||
getAddressName(address) {
|
||||
var addressBook = ipcRenderer.sendSync('getJSONFile', 'addresses.json');
|
||||
|
||||
if (!addressBook) {
|
||||
addressBook = { names: {} };
|
||||
}
|
||||
|
||||
// set the wallet name from the dialog box
|
||||
return addressBook.names[address] || "";
|
||||
}
|
||||
|
||||
getAddressList() {
|
||||
var addressBook = ipcRenderer.sendSync('getJSONFile', 'addresses.json');
|
||||
|
||||
if (!addressBook) {
|
||||
addressBook = { names: {} };
|
||||
}
|
||||
|
||||
return addressBook.names;
|
||||
}
|
||||
|
||||
deleteAddress(address) {
|
||||
var addressBook = ipcRenderer.sendSync('getJSONFile', 'addresses.json');
|
||||
|
||||
if (!addressBook) {
|
||||
addressBook = { names: {} };
|
||||
} else {
|
||||
delete addressBook.names[address];
|
||||
}
|
||||
|
||||
ipcRenderer.sendSync('setJSONFile',
|
||||
{
|
||||
file: 'addresses.json',
|
||||
data: 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() {
|
||||
$("#btnNewAddress").off('click').on('click', function() {
|
||||
$("#dlgCreateAddressAndName").iziModal();
|
||||
$("#addressName").val("");
|
||||
$("#addressHash").val("");
|
||||
$('#dlgCreateAddressAndName').iziModal('open');
|
||||
|
||||
function doCreateNewWallet() {
|
||||
$('#dlgCreateAddressAndName').iziModal('close');
|
||||
|
||||
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() {
|
||||
$("#dlgDeleteAddressConfirm").iziModal();
|
||||
$('#dlgDeleteAddressConfirm').iziModal('open');
|
||||
|
||||
$("#btnDeleteAddressCancel").off('click').on('click', function() {
|
||||
$('#dlgDeleteAddressConfirm').iziModal('close');
|
||||
});
|
||||
|
||||
$("#btnDeleteAddressConfirm").off('click').on('click', function() {
|
||||
EthoAddressBook.deleteAddress($(this).attr('data-address'));
|
||||
$('#dlgDeleteAddressConfirm').iziModal('close');
|
||||
EthoAddressBook.renderAddressBook();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
EthoAddressBook = new AddressBook();
|
||||
Reference in New Issue
Block a user