diff --git a/.gitignore b/.gitignore index d54c2ba0..344f55d9 100644 --- a/.gitignore +++ b/.gitignore @@ -76,3 +76,6 @@ node_modules/ !.yarn/releases !.yarn/sdks !.yarn/versions + +# exclude webstorm profile file +.idea/ diff --git a/src/ledger-keyring.test.ts b/src/ledger-keyring.test.ts index f82c3828..f2845840 100644 --- a/src/ledger-keyring.test.ts +++ b/src/ledger-keyring.test.ts @@ -330,6 +330,14 @@ describe('LedgerKeyring', function () { expect(keyring.hdk.publicKey).not.toBe('ABC'); }); + it('throws an error when the bridge getPublicKey method throws an error and it is not an error type', async function () { + keyring.setHdPath(`m/44'/60'/0'/0`); + jest.spyOn(bridge, 'getPublicKey').mockRejectedValue('Some error'); + await expect(keyring.unlock()).rejects.toThrow( + 'Ledger Ethereum app closed. Open it to unlock.', + ); + }); + it('does not update hdk.publicKey if updateHdk is false', async function () { // @ts-expect-error we want to bypass the publicKey property set method keyring.hdk = { publicKey: 'ABC' }; @@ -366,12 +374,6 @@ describe('LedgerKeyring', function () { .mockRejectedValue(new Error('Some error')); await expect(keyring.unlock()).rejects.toThrow('Some error'); }); - - it('throws an error when the bridge getPublicKey method throws an error and it is not an error type', async function () { - keyring.setHdPath(`m/44'/60'/0'/0`); - jest.spyOn(bridge, 'getPublicKey').mockRejectedValue('Some error'); - await expect(keyring.unlock()).rejects.toThrow('Unknown error'); - }); }); describe('addAccounts', function () { diff --git a/src/ledger-keyring.ts b/src/ledger-keyring.ts index 727aa6da..b2104799 100644 --- a/src/ledger-keyring.ts +++ b/src/ledger-keyring.ts @@ -213,7 +213,9 @@ export class LedgerKeyring extends EventEmitter { hdPath: path, }); } catch (error) { - throw error instanceof Error ? error : new Error('Unknown error'); + throw error instanceof Error + ? error + : new Error('Ledger Ethereum app closed. Open it to unlock.'); } if (updateHdk && payload.chainCode) {