From 5b416a8862fe4d2a4f3c78c8a6ef82909eb67d8e Mon Sep 17 00:00:00 2001 From: Elliot Lee Date: Thu, 20 Aug 2020 15:33:36 -0700 Subject: [PATCH] Fix docs for xAddressToClassicAddress when there is no tag (#114) Add a redundant test to ensure the behavior is abundantly clear --- packages/ripple-address-codec/README.md | 2 +- .../ripple-address-codec/src/index.test.ts | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/ripple-address-codec/README.md b/packages/ripple-address-codec/README.md index 3445b295..b5b301e5 100644 --- a/packages/ripple-address-codec/README.md +++ b/packages/ripple-address-codec/README.md @@ -30,7 +30,7 @@ Encode a test address e.g. for use with [Testnet or Devnet](https://xrpl.org/xrp ### xAddressToClassicAddress(xAddress: string): {classicAddress: string, tag: number | false, test: boolean} -Convert an X-address to a classic address and tag. If the X-address did not have a tag, the returned object will not have a `tag` field. If the X-address is intended for use on test network(s), `test` will be `true`; if it is intended for use on the main network (mainnet), `test` will be `false`. +Convert an X-address to a classic address and tag. If the X-address did not have a tag, the returned object's `tag` will be `false`. (Since `0` is a valid tag, instead of `if (tag)`, use `if (tag !== false)` if you want to check for a tag.) If the X-address is intended for use on test network(s), `test` will be `true`; if it is intended for use on the main network (mainnet), `test` will be `false`. ```js > const api = require('ripple-address-codec') diff --git a/packages/ripple-address-codec/src/index.test.ts b/packages/ripple-address-codec/src/index.test.ts index 5f13ebe6..e1dbf453 100644 --- a/packages/ripple-address-codec/src/index.test.ts +++ b/packages/ripple-address-codec/src/index.test.ts @@ -239,3 +239,21 @@ test(`Invalid Account ID throws`, () => { test(`isValidXAddress returns false for invalid X-address`, () => { expect(isValidXAddress('XVLhHMPHU98es4dbozjVtdWzVrDjtV18pX8zeUygYrCgrPh')).toBe(false) }) + +test(`Converts X7AcgcsBL6XDcUb289X4mJ8djcdyKaB5hJDWMArnXr61cqZ to r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 and tag: false`, () => { + const classicAddress = 'r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59' + const tag = false + const xAddress = 'X7AcgcsBL6XDcUb289X4mJ8djcdyKaB5hJDWMArnXr61cqZ' + const isTestAddress = false + expect(classicAddressToXAddress(classicAddress, tag, isTestAddress)).toBe(xAddress) + const myClassicAddress = xAddressToClassicAddress(xAddress) + expect(myClassicAddress).toEqual({ + classicAddress, + tag, + test: isTestAddress + }) + expect(isValidXAddress(xAddress)).toBe(true) + + // Notice that converting an X-address to a classic address has `result.tag === false` (not undefined) + expect(myClassicAddress.tag).toEqual(false) +})