diff --git a/lib/plugins/wallet/monerod/monerod.js b/lib/plugins/wallet/monerod/monerod.js index f6f17fcd..2bc4f58d 100644 --- a/lib/plugins/wallet/monerod/monerod.js +++ b/lib/plugins/wallet/monerod/monerod.js @@ -64,6 +64,12 @@ function handleError (error, method) { } case -21: throw new Error('Wallet already exists!') + case -22: + try { + return openWalletWithPassword() + } catch { + throw new Error('Invalid wallet password!') + } case -17: throw new E.InsufficientFundsError() case -37: @@ -80,11 +86,16 @@ function handleError (error, method) { } function openWallet () { + return fetch('open_wallet', { filename: 'Wallet' }) + .catch(err => handleError(err, 'openWallet')) +} + +function openWalletWithPassword () { return fetch('open_wallet', { filename: 'Wallet', password: rpcConfig().password }) } function createWallet () { - return fetch('create_wallet', { filename: 'Wallet', password: rpcConfig().password, language: 'English' }) + return fetch('create_wallet', { filename: 'Wallet', language: 'English' }) .then(() => new Promise(() => setTimeout(() => openWallet(), 3000))) .then(() => fetch('auto_refresh')) }