diff --git a/lib/bitcoin/BitcoinClient.ts b/lib/bitcoin/BitcoinClient.ts index 90a7c64..9145a49 100644 --- a/lib/bitcoin/BitcoinClient.ts +++ b/lib/bitcoin/BitcoinClient.ts @@ -308,7 +308,7 @@ export default class BitcoinClient { private async loadWallet () { const request = { method: 'loadwallet', - params: [this.walletNameToUse, true] // the wallet name + params: [this.walletNameToUse] // the wallet name }; // Intentionally not throwing because bitcoin returns 500 when a wallet is already loaded @@ -320,7 +320,9 @@ export default class BitcoinClient { } catch (e) { // using error message because bitcoin core error code is not reliable as a single code can contain multiple errors const duplicateLoadString = 'already loaded'; - if (e.toString().toLowerCase().includes(duplicateLoadString)) { + // this error is seen on some versions of bitcoin core when loading a loaded wallet, including v0.20.1 + const alternateDuplicateLoadString = 'Duplicate -wallet filename specified'; + if (e.toString().toLowerCase().includes(duplicateLoadString) || e.toString().includes(alternateDuplicateLoadString)) { Logger.info(`Wallet with name ${this.walletNameToUse} already loaded.`); } else { throw e; diff --git a/tests/bitcoin/BitcoinClient.spec.ts b/tests/bitcoin/BitcoinClient.spec.ts index cd325b4..bb0d55d 100644 --- a/tests/bitcoin/BitcoinClient.spec.ts +++ b/tests/bitcoin/BitcoinClient.spec.ts @@ -412,7 +412,7 @@ describe('BitcoinClient', async () => { await bitcoinClient['loadWallet'](); expect(rpcSpy).toHaveBeenCalledWith({ method: 'loadwallet', - params: ['sidetreeDefaultWallet', true] + params: ['sidetreeDefaultWallet'] }, true, false); expect(loggerSpy).toHaveBeenCalledWith(`Wallet loaded with name "sidetreeDefaultWallet".`); }); @@ -425,7 +425,7 @@ describe('BitcoinClient', async () => { } catch { expect(rpcSpy).toHaveBeenCalledWith({ method: 'loadwallet', - params: ['sidetreeDefaultWallet', true] + params: ['sidetreeDefaultWallet'] }, true, false); } }); @@ -436,7 +436,7 @@ describe('BitcoinClient', async () => { await bitcoinClient['loadWallet'](); expect(rpcSpy).toHaveBeenCalledWith({ method: 'loadwallet', - params: ['sidetreeDefaultWallet', true] + params: ['sidetreeDefaultWallet'] }, true, false); expect(loggerSpy).toHaveBeenCalledWith(`Wallet with name sidetreeDefaultWallet already loaded.`); });