Merge pull request #2012

c2f1d01 main: automatically fix common wallet cache errors (mmbyday)
pull/2/head
luigi1111 5 years ago
commit f3cc2818c5
No known key found for this signature in database
GPG Key ID: F4ACA0183641E010

@ -436,12 +436,30 @@ ApplicationWindow {
wizard.wizardState = "wizardHome"; wizard.wizardState = "wizardHome";
rootItem.state = "wizard"; rootItem.state = "wizard";
} }
// opening with password but password doesn't match // try to resolve common wallet cache errors automatically
console.error("Error opening wallet with password: ", wallet.errorString); switch (wallet.errorString) {
passwordDialog.showError(qsTr("Couldn't open wallet: ") + wallet.errorString); case "basic_string::_M_replace_aux":
console.log("closing wallet async : " + wallet.address) walletManager.clearWalletCache(wallet.path);
closeWallet(); walletPassword = passwordDialog.password;
return; appWindow.initialize();
console.error("Repairing wallet cache with error: ", wallet.errorString);
appWindow.showStatusMessage(qsTr("Repairing incompatible wallet cache. Resyncing wallet."),6);
return;
case "std::bad_alloc":
walletManager.clearWalletCache(wallet.path);
walletPassword = passwordDialog.password;
appWindow.initialize();
console.error("Repairing wallet cache with error: ", wallet.errorString);
appWindow.showStatusMessage(qsTr("Repairing incompatible wallet cache. Resyncing wallet."),6);
return;
default:
// opening with password but password doesn't match
console.error("Error opening wallet with password: ", wallet.errorString);
passwordDialog.showError(qsTr("Couldn't open wallet: ") + wallet.errorString);
console.log("closing wallet async : " + wallet.address)
closeWallet();
return;
}
} }
// wallet opened successfully, subscribing for wallet updates // wallet opened successfully, subscribing for wallet updates
@ -451,7 +469,6 @@ ApplicationWindow {
rootItem.state = "normal"; rootItem.state = "normal";
} }
function onWalletClosed(walletAddress) { function onWalletClosed(walletAddress) {
console.log(">>> wallet closed: " + walletAddress) console.log(">>> wallet closed: " + walletAddress)
} }