diff --git a/src/account.ts b/src/account.ts index a6df78e..18faa9f 100644 --- a/src/account.ts +++ b/src/account.ts @@ -52,7 +52,11 @@ export class Account { * @param accountNumber the given account number hex string */ static isValidPair(signingKey: string, accountNumber: string) { - return new Account(signingKey).accountNumberHex === accountNumber; + try { + return new Account(signingKey).accountNumberHex === accountNumber; + } catch (_) { + return false; + } } /** The 32 byte account number as a 32 byte hex string. */ diff --git a/tests/account.test.js b/tests/account.test.js index f47249c..7b87129 100644 --- a/tests/account.test.js +++ b/tests/account.test.js @@ -46,6 +46,15 @@ describe("Account", () => { expect(Account.isValidPair(defaultAccount.accountNumber, defaultAccount.signingKey)).toBeFalsy(); }); + it("isValidPair doesn't throw errors", () => { + const results = [ + Account.isValidPair("asdf", "asdf"), + Account.isValidPair(defaultAccount.signingKey, "asdf"), + Account.isValidPair("asdf", defaultAccount.accountNumber), + ]; + expect(results.every((val) => typeof val === "boolean")).toBeTruthy(); + }); + it("createSignature(message)", () => { const account = createDefaultAccount(); assertAccountBasics(account);