mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-23 05:35:48 +00:00
Fix deriveXAddress null behavior (#1964)
* Fix deriveXAddress null behavior * Also check for undefined * Simplify theTag * Add test case for undefined
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
# ripple-address-codec
|
# ripple-address-codec
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
- Fixed `encodeXAddress` to handle `null` equivalently to `false`.
|
||||||
|
|
||||||
## 4.2.1 (2021-12-1)
|
## 4.2.1 (2021-12-1)
|
||||||
- Fix issue where npm < 7 could not install the library
|
- Fix issue where npm < 7 could not install the library
|
||||||
- Initial pass at linting this codebase with new rules
|
- Initial pass at linting this codebase with new rules
|
||||||
|
|||||||
@@ -43,8 +43,9 @@ function encodeXAddress(
|
|||||||
if (tag > MAX_32_BIT_UNSIGNED_INT) {
|
if (tag > MAX_32_BIT_UNSIGNED_INT) {
|
||||||
throw new Error('Invalid tag')
|
throw new Error('Invalid tag')
|
||||||
}
|
}
|
||||||
const theTag = tag === false ? 0 : tag
|
const theTag = tag || 0
|
||||||
const flag = tag === false ? 0 : 1
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Passing null is a common js mistake
|
||||||
|
const flag = tag === false || tag == null ? 0 : 1
|
||||||
/* eslint-disable no-bitwise ---
|
/* eslint-disable no-bitwise ---
|
||||||
* need to use bitwise operations here */
|
* need to use bitwise operations here */
|
||||||
const bytes = Buffer.concat([
|
const bytes = Buffer.concat([
|
||||||
|
|||||||
@@ -22,4 +22,30 @@ describe('deriveXAddress', function () {
|
|||||||
'TVVrSWtmQQssgVcmoMBcFQZKKf56QscyWLKnUyiuZW8ALU4',
|
'TVVrSWtmQQssgVcmoMBcFQZKKf56QscyWLKnUyiuZW8ALU4',
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('does not include tag when null', function () {
|
||||||
|
assert.equal(
|
||||||
|
deriveXAddress({
|
||||||
|
publicKey:
|
||||||
|
'ED02C98225BD1C79E9A4F95C6978026D300AFB7CA2A34358920BCFBCEBE6AFCD6A',
|
||||||
|
// @ts-expect-error -- Assessing null behavior (Common js mistake)
|
||||||
|
tag: null,
|
||||||
|
test: false,
|
||||||
|
}),
|
||||||
|
'X7FbrqVEqdTNoX5qq94rTdarGjeVYmkxi8A1TKAJUnyLL9g',
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('does not include tag when undefined', function () {
|
||||||
|
assert.equal(
|
||||||
|
deriveXAddress({
|
||||||
|
publicKey:
|
||||||
|
'ED02C98225BD1C79E9A4F95C6978026D300AFB7CA2A34358920BCFBCEBE6AFCD6A',
|
||||||
|
// @ts-expect-error -- Assessing undefined behavior
|
||||||
|
tag: undefined,
|
||||||
|
test: false,
|
||||||
|
}),
|
||||||
|
'X7FbrqVEqdTNoX5qq94rTdarGjeVYmkxi8A1TKAJUnyLL9g',
|
||||||
|
)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user