+ basic address book support

+ notify of new transactions
+ refresh transactions
! fixed a lot of transactions bugs
This commit is contained in:
Taegus
2018-12-26 10:12:42 +01:00
parent 655cd441b7
commit 3315677ede
13 changed files with 382 additions and 46 deletions

159
renderer/addressBook.js Normal file
View 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();