diff --git a/packages/ripple-binary-codec/package.json b/packages/ripple-binary-codec/package.json index 9b23674e..2679351a 100644 --- a/packages/ripple-binary-codec/package.json +++ b/packages/ripple-binary-codec/package.json @@ -12,6 +12,7 @@ }, "dependencies": { "buffer": "6.0.3", + "bignumber.js": "^9.0.0", "create-hash": "^1.2.0", "ripple-address-codec": "^4.3.1" }, diff --git a/packages/ripple-binary-codec/src/types/amount.ts b/packages/ripple-binary-codec/src/types/amount.ts index a389459b..4dcc1867 100644 --- a/packages/ripple-binary-codec/src/types/amount.ts +++ b/packages/ripple-binary-codec/src/types/amount.ts @@ -17,7 +17,7 @@ const MIN_XRP = new BigNumber('1e-6') const mask = BigInt(0x00000000ffffffff) /** - * decimal.js configuration for Amount IOUs + * BigNumber configuration for Amount IOUs */ BigNumber.config({ EXPONENTIAL_AT: [ @@ -207,7 +207,7 @@ class Amount extends SerializedType { /** * Validate IOU.value amount * - * @param decimal Decimal.js object representing IOU.value + * @param decimal BigNumber object representing IOU.value * @returns void, but will throw if invalid amount */ private static assertIouIsValid(decimal: BigNumber): void { diff --git a/packages/ripple-keypairs/test/codec.test.ts b/packages/ripple-keypairs/test/codec.test.ts deleted file mode 100644 index 11953745..00000000 --- a/packages/ripple-keypairs/test/codec.test.ts +++ /dev/null @@ -1,58 +0,0 @@ -import assert from 'assert' -import * as api from 'ripple-address-codec' - -function toHex(bytes) { - return Buffer.from(bytes).toString('hex').toUpperCase() -} - -function toBytes(hex) { - return Buffer.from(hex, 'hex').toJSON().data -} - -describe('ripple-address-codec', function () { - function makeTest(type, base58, hex) { - it(`can translate between ${hex} and ${base58} (encode ${type})`, () => { - const actual = api[`encode${type}`](toBytes(hex)) - assert.equal(actual, base58) - }) - it(`can translate between ${base58} and ${hex} (decode ${type})`, () => { - const buf = api[`decode${type}`](base58) - assert.equal(toHex(buf), hex) - }) - } - - makeTest( - 'AccountID', - 'rJrRMgiRgrU6hDF4pgu5DXQdWyPbY35ErN', - 'BA8E78626EE42C41B46D46C3048DF3A1C3C87072', - ) - - makeTest( - 'NodePublic', - 'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH', - '0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828', - ) - - it('can decode arbitrary seeds', () => { - const decoded = api.decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') - assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341') - assert.equal(decoded.type, 'ed25519') - - const decoded2 = api.decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL') - assert.equal(toHex(decoded2.bytes), 'CF2DE378FBDD7E2EE87D486DFB5A7BFF') - assert.equal(decoded2.type, 'secp256k1') - }) - - it('can pass a type as second arg to encodeSeed', () => { - const edSeed = 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2' - const decoded = api.decodeSeed(edSeed) - assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341') - assert.equal(decoded.type, 'ed25519') - if (decoded.type === null) { - assert.fail('decoded.type should not be null') - } - assert.equal(api.encodeSeed(decoded.bytes, decoded.type), edSeed) - }) -}) - -export {} diff --git a/packages/ripple-keypairs/test/xrp-codec.test.ts b/packages/ripple-keypairs/test/xrp-codec.test.ts deleted file mode 100644 index 05bd7655..00000000 --- a/packages/ripple-keypairs/test/xrp-codec.test.ts +++ /dev/null @@ -1,99 +0,0 @@ -import assert from 'assert' -import * as api from 'ripple-address-codec' - -function toHex(bytes: Buffer) { - return Buffer.from(bytes).toString('hex').toUpperCase() -} - -function toBytes(hex: string) { - return Buffer.from(hex, 'hex').toJSON().data -} - -describe('ripple-address-codec', function () { - describe('encodeSeed', function () { - it('encodes a secp256k1 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('CF2DE378FBDD7E2EE87D486DFB5A7BFF')), - 'secp256k1', - ) - assert.equal(result, 'sn259rEFXrQrWyx3Q7XneWcwV6dfL') - }) - - it('encodes low secp256k1 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('00000000000000000000000000000000')), - 'secp256k1', - ) - assert.equal(result, 'sp6JS7f14BuwFY8Mw6bTtLKWauoUs') - }) - - it('encodes high secp256k1 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')), - 'secp256k1', - ) - assert.equal(result, 'saGwBRReqUNKuWNLpUAq8i8NkXEPN') - }) - - it('encodes an ed25519 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('4C3A1D213FBDFB14C7C28D609469B341')), - 'ed25519', - ) - assert.equal(result, 'sEdTM1uX8pu2do5XvTnutH6HsouMaM2') - }) - - it('encodes low ed25519 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('00000000000000000000000000000000')), - 'ed25519', - ) - assert.equal(result, 'sEdSJHS4oiAdz7w2X2ni1gFiqtbJHqE') - }) - - it('encodes high ed25519 seed', () => { - const result = api.encodeSeed( - Buffer.from(toBytes('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')), - 'ed25519', - ) - assert.equal(result, 'sEdV19BLfeQeKdEXyYA4NhjPJe6XBfG') - }) - }) - - describe('decodeSeed', function () { - it('can decode an Ed25519 seed', () => { - const decoded = api.decodeSeed('sEdTM1uX8pu2do5XvTnutH6HsouMaM2') - assert.equal(toHex(decoded.bytes), '4C3A1D213FBDFB14C7C28D609469B341') - assert.equal(decoded.type, 'ed25519') - }) - - it('can decode a secp256k1 seed', () => { - const decoded = api.decodeSeed('sn259rEFXrQrWyx3Q7XneWcwV6dfL') - assert.equal(toHex(decoded.bytes), 'CF2DE378FBDD7E2EE87D486DFB5A7BFF') - assert.equal(decoded.type, 'secp256k1') - }) - }) - - describe('encodeAccountID', function () { - it('can encode an AccountID', () => { - const encoded = api.encodeAccountID( - Buffer.from(toBytes('BA8E78626EE42C41B46D46C3048DF3A1C3C87072')), - ) - assert.equal(encoded, 'rJrRMgiRgrU6hDF4pgu5DXQdWyPbY35ErN') - }) - }) - - describe('decodeNodePublic', function () { - it('can decode a NodePublic', () => { - const decoded = api.decodeNodePublic( - 'n9MXXueo837zYH36DvMc13BwHcqtfAWNJY5czWVbp7uYTj7x17TH', - ) - assert.equal( - toHex(decoded), - '0388E5BA87A000CB807240DF8C848EB0B5FFA5C8E5A521BC8E105C0F0A44217828', - ) - }) - }) -}) - -export {}