+ import from private key added

This commit is contained in:
Taegus
2019-03-07 08:25:18 +01:00
parent 6692e5219a
commit 9518b59508
3 changed files with 55 additions and 12 deletions

View File

@@ -89,6 +89,14 @@
<label for="inputPrivateKey">Private Key:</label>
<input type="password" class="form-control" id="inputPrivateKey">
</div>
<div class="form-group">
<label for="walletPasswordSecond">Account Password:</label>
<input type="password" class="form-control" id="keyPasswordFirst">
</div>
<div class="form-group">
<label for="walletPasswordSecond">Confirm Password:</label>
<input type="password" class="form-control" id="keyPasswordSecond">
</div>
<button type="button" class="btn btn-etho btn-dialog-confirm" id="btnImportFromPrivateKeyConfirm">Import</button>
</div>
</div>

View File

@@ -213,10 +213,14 @@ class Blockchain {
});
}
importFromPrivateKey(privateKey, password) {
web3Local.eth.accounts.wallet.clear();
web3Local.eth.accounts.wallet.add(privateKey);
return web3Local.eth.accounts.wallet.encrypt("123456789");
importFromPrivateKey(privateKey, keyPassword, clbError, clbSuccess) {
web3Local.eth.personal.importRawKey(privateKey, keyPassword, function (error, account) {
if (error) {
clbError(error);
} else {
clbSuccess(account);
}
});
}
subsribePendingTransactions(clbError, clbSuccess, clbData) {

View File

@@ -70,6 +70,34 @@ class Wallets {
}
}
validateImportFromKeyForm() {
if (EthoMainGUI.getAppState() == "account") {
if (!$("#inputPrivateKey").val()) {
EthoMainGUI.showGeneralError("Private key cannot be empty!");
return false;
}
if (!$("#keyPasswordFirst").val()) {
EthoMainGUI.showGeneralError("Password cannot be empty!");
return false;
}
if (!$("#keyPasswordSecond").val()) {
EthoMainGUI.showGeneralError("Password cannot be empty!");
return false;
}
if ($("#keyPasswordFirst").val() !== $("#keyPasswordSecond").val()) {
EthoMainGUI.showGeneralError("Passwords do not match!");
return false;
}
return true;
} else {
return false;
}
}
renderWalletsState() {
// clear the list of addresses
EthoWallets.clearAddressList();
@@ -193,17 +221,20 @@ $(document).on("render_wallets", function () {
$("#dlgImportFromPrivateKey").iziModal("open");
function doImportFromPrivateKeys() {
var account = EthoBlockchain.importFromPrivateKey($("#inputPrivateKey").val());
$("#dlgImportFromPrivateKey").iziModal("close");
if (EthoWallets.validateImportFromKeyForm()) {
var account = EthoBlockchain.importFromPrivateKey($("#inputPrivateKey").val(), $("#keyPasswordFirst").val(), function (error) {
EthoMainGUI.showGeneralError(error);
}, function (account) {
if (account) {
ipcRenderer.sendSync("saveAccount", account[0]);
EthoWallets.renderWalletsState();
iziToast.success({title: "Imported", message: "Account was succesfully imported", position: "topRight", timeout: 2000});
} else {
EthoMainGUI.showGeneralError("Error importing account from private key!");
}
});
}
}
$("#btnImportFromPrivateKeyConfirm").off("click").on("click", function () {