Skip to content

Commit

Permalink
Improve logic for restoring wallet
Browse files Browse the repository at this point in the history
  • Loading branch information
vncoelho committed Dec 19, 2023
1 parent 172eb9b commit 9620c9d
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 9 deletions.
2 changes: 1 addition & 1 deletion assets/eco-scripts/wallet_addNewAccounts.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ function addSafeAccount(accountToAdd, labelToAdd) {
addAccountAndDraw(accountToAdd, labelToAdd);
} else {
setMasterKey(() => {
console.log("dasidhsi")
addAccountAndDraw(accountToAdd, labelToAdd);
}, "Adding new account.");
}
Expand Down Expand Up @@ -123,6 +122,7 @@ function setMasterKey(callback, labelToAdd) {
callback();
}else{
swal2Simple("Be careful!", "A password is needed for this action.", 0, "error");
callback();
}
});
}
Expand Down
39 changes: 34 additions & 5 deletions assets/eco-scripts/wallet_localStorage.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ async function getExtraWalletAccountFromLocalStorage() {
var storedKey = accountData.key;
var label = accountData.label;
var print = accountData.print;

var myRestoredAccount = new Neon.wallet.Account(storedKey);

try {
if (!Neon.wallet.isAddress(storedKey) && !Neon.wallet.isPublicKey(storedKey))
await myRestoredAccount.decrypt(MASTER_KEY_WALLET);
Expand All @@ -43,22 +41,43 @@ async function getExtraWalletAccountFromLocalStorage() {
});
} catch (err) {
console.error(err);
swal2Simple("Decryption error", "Error when decrypting extra accounts!", 5500, "error");
myRecreatedExtraAccounts = [];
$("#btnWalletSaveID")[0].disabled = true;
$("#btnNewWallet")[0].disabled = true;
$("#btnLoadSavedAccount")[0].disabled = false;
MASTER_KEY_WALLET = "";
var footerMsg = "You can not save anything meanwhile. Try to clean or redefine password";
swal2Simple("Decryption error", "Error when decrypting extra accounts! TryAgain with new password.", 10000, "error", false, footerMsg);
}
}));

console.log(myRecreatedExtraAccounts)
if (myRecreatedExtraAccounts.length != 0) {
$("#btnWalletSaveID")[0].disabled = false;
$("#btnNewWallet")[0].disabled = false;
$("#btnLoadSavedAccount")[0].disabled = true;
}

return myRecreatedExtraAccounts;
}
return [];
}

function restoreWalletExtraAccountsLocalStorage() {
var mySafeExtraAccountsWallet = getLocalStorage("mySafeEncryptedExtraAccounts");
var mySafeExtraAccountsWalletJson = JSON.parse(mySafeExtraAccountsWallet);
var nAccounts = mySafeExtraAccountsWalletJson.length;
var nEncryptedAccounts = getNumberOfSafeEncryptedAccountsFromVector(mySafeExtraAccountsWalletJson);
console.log("You have " + nEncryptedAccounts + " encrypted accounts to be decrypted.");


if (mySafeExtraAccountsWallet && MASTER_KEY_WALLET == "") {
setMasterKey(() => {
updateExtraAndEcoWallet();
}, "Restoring accounts");
}, "Restoring: " + nAccounts + " accounts (" + nEncryptedAccounts + " encrypted)");
} else {
updateExtraAndEcoWallet();
console.error("restoreWalletExtraAccountsLocalStorage error. Trying to restore with a key already set. Not expected.")
//updateExtraAndEcoWallet();
}
}

Expand All @@ -71,6 +90,16 @@ async function updateExtraAndEcoWallet() {
}
}

function getNumberOfSafeEncryptedAccountsFromVector(mySafeExtraAccountsWallet) {
var nEncryptedAccounts = 0;
if (mySafeExtraAccountsWallet.length > 0)
for (ea = 0; ea < mySafeExtraAccountsWallet.length; ++ea)
if (!Neon.wallet.isAddress(mySafeExtraAccountsWallet[ea].key))
nEncryptedAccounts++;

return nEncryptedAccounts;
}

function btnWalletSave() {
if (ECO_EXTRA_ACCOUNTS.length > 0) {
if (MASTER_KEY_WALLET == "") {
Expand Down
7 changes: 4 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -739,13 +739,15 @@ <h4 class="green-title">Wallet
<button type="submit" onclick="populateAllWalletData()" class="btn btn-info btn-sm"><i
class="fas fa-sync-alt"></i>
</button>
<button type="submit" onclick="btnWalletSave()" class="btn btn-success btn-sm">
<button type="submit" onclick="btnWalletSave()" id="btnWalletSaveID" class="btn btn-success btn-sm">
Save <i class="fas fa-save"></i>
</button>
<button type="submit" onclick="btnWalletClean()" class="btn btn-danger btn-sm">
Clean Extra <i class="fas fa-trash"></i>
</button>

<button type="submit" disabled onclick="restoreWalletExtraAccountsLocalStorage()" id="btnLoadSavedAccount" class="btn btn-danger btn-sm">
Load Saved Accounts <i class="fas fa-trash"></i>
</button>
</h4>
<div class="container">
<div class="row" style="padding:0 20px 0 20px;">
Expand Down Expand Up @@ -1371,7 +1373,6 @@ <h4 class="green-title">
</div>
</div>
</div>

</div>
</div>
</div>
Expand Down

0 comments on commit 9620c9d

Please sign in to comment.