From edcdd3a0fcd21389d36a9b65e6e47b52fc1ca101 Mon Sep 17 00:00:00 2001 From: Nathan Nichols Date: Mon, 27 Sep 2021 12:40:28 -0700 Subject: [PATCH] feat: adds isValidAddress (#1672) * feat: adds isValidAddress --- src/utils/index.ts | 12 ++++++++++++ test/utils/isValidAddress.ts | 25 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 test/utils/isValidAddress.ts diff --git a/src/utils/index.ts b/src/utils/index.ts index 010623d6..1beb3d7c 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -56,6 +56,17 @@ function isValidSecret(secret: string): boolean { } } +/** + * Validates that a given address is a valid X-Address or a valid classic + * address. + * + * @param address - Address to validate. + * @returns True if address is a valid X-Address or classic address. + */ +function isValidAddress(address: string): boolean { + return isValidXAddress(address) || isValidClassicAddress(address) +} + /** * Removes undefined values from an object. * @@ -94,6 +105,7 @@ export { rippleTimeToUnixTime, unixTimeToRippleTime, isValidSecret, + isValidAddress, computeSignedTransactionHash, computeBinaryTransactionSigningHash, computeAccountRootIndex, diff --git a/test/utils/isValidAddress.ts b/test/utils/isValidAddress.ts new file mode 100644 index 00000000..967d7bcd --- /dev/null +++ b/test/utils/isValidAddress.ts @@ -0,0 +1,25 @@ +import { assert } from 'chai' + +import { isValidAddress } from 'xrpl-local' + +describe('isValidAddress', function () { + it('Validates valid classic address', function () { + const classic = 'r3rhWeE31Jt5sWmi4QiGLMZnY3ENgqw96W' + assert(isValidAddress(classic)) + }) + + it('Does not validate invalid classic address', function () { + const classic = 'r3rhWeE31Jt5sWmi4QiGLMZnY3ENhqw96W' + assert(!isValidAddress(classic)) + }) + + it('Validates valid X-Address', function () { + const xAddress = 'XV5sbjUmgPpvXv4ixFWZ5ptAYZ6PD28Sq49uo34VyjnmK5H' + assert(isValidAddress(xAddress)) + }) + + it('Does not validate invalid X-Address', function () { + const xAddress = 'XV5sbjUmgPpvXv4ixFWZ5pfAYZ6PD28Sq49uo34VyjnmK5H' + assert(!isValidAddress(xAddress)) + }) +})