ripple-binary-codec 1.2.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/enums/definitions.json +13 -1
- package/dist/enums/index.d.ts +1 -0
- package/dist/enums/index.js +13 -1
- package/dist/enums/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/types/currency.js +10 -7
- package/dist/types/currency.js.map +1 -1
- package/package.json +4 -5
- package/test/fixtures/nf-token.json +1 -1
- package/test/hash.test.js +22 -4
- package/test/tx-encode-decode.test.js +22 -0
|
@@ -855,6 +855,16 @@
|
|
|
855
855
|
"type": "Amount"
|
|
856
856
|
}
|
|
857
857
|
],
|
|
858
|
+
[
|
|
859
|
+
"BrokerFee",
|
|
860
|
+
{
|
|
861
|
+
"nth": 19,
|
|
862
|
+
"isVLEncoded": false,
|
|
863
|
+
"isSerialized": true,
|
|
864
|
+
"isSigningField": true,
|
|
865
|
+
"type": "Amount"
|
|
866
|
+
}
|
|
867
|
+
],
|
|
858
868
|
[
|
|
859
869
|
"taker_gets_funded",
|
|
860
870
|
{
|
|
@@ -1536,7 +1546,7 @@
|
|
|
1536
1546
|
}
|
|
1537
1547
|
],
|
|
1538
1548
|
[
|
|
1539
|
-
"
|
|
1549
|
+
"TokenOffers",
|
|
1540
1550
|
{
|
|
1541
1551
|
"nth": 4,
|
|
1542
1552
|
"isVLEncoded": true,
|
|
@@ -1856,6 +1866,8 @@
|
|
|
1856
1866
|
"tefBAD_AUTH_MASTER": -183,
|
|
1857
1867
|
"tefINVARIANT_FAILED": -182,
|
|
1858
1868
|
"tefTOO_BIG": -181,
|
|
1869
|
+
"tefNO_TICKET": -180,
|
|
1870
|
+
"tefTOKEN_IS_NOT_TRANSFERABLE": -179,
|
|
1859
1871
|
|
|
1860
1872
|
"terRETRY": -99,
|
|
1861
1873
|
"terFUNDS_SPENT": -98,
|
package/dist/enums/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SerializedType } from '../types/serialized-type';
|
|
2
2
|
import { Buffer } from 'buffer/';
|
|
3
3
|
import { BytesList } from '../binary';
|
|
4
|
+
export declare const TRANSACTION_TYPES: string[];
|
|
4
5
|
export declare class Bytes {
|
|
5
6
|
readonly name: string;
|
|
6
7
|
readonly ordinal: number;
|
package/dist/enums/index.js
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TransactionType = exports.TransactionResult = exports.LedgerEntryType = exports.Type = exports.Field = exports.Bytes = void 0;
|
|
3
|
+
exports.TransactionType = exports.TransactionResult = exports.LedgerEntryType = exports.Type = exports.Field = exports.Bytes = exports.TRANSACTION_TYPES = void 0;
|
|
4
4
|
var enums = require("./definitions.json");
|
|
5
5
|
var serialized_type_1 = require("../types/serialized-type");
|
|
6
6
|
var buffer_1 = require("buffer/");
|
|
7
|
+
/*
|
|
8
|
+
* @brief: All valid transaction types
|
|
9
|
+
*/
|
|
10
|
+
exports.TRANSACTION_TYPES = Object.entries(enums.TRANSACTION_TYPES)
|
|
11
|
+
.filter(function (_a) {
|
|
12
|
+
var _key = _a[0], value = _a[1];
|
|
13
|
+
return value >= 0;
|
|
14
|
+
})
|
|
15
|
+
.map(function (_a) {
|
|
16
|
+
var key = _a[0], _value = _a[1];
|
|
17
|
+
return key;
|
|
18
|
+
});
|
|
7
19
|
var TYPE_WIDTH = 2;
|
|
8
20
|
var LEDGER_ENTRY_WIDTH = 2;
|
|
9
21
|
var TRANSACTION_TYPE_WIDTH = 2;
|
package/dist/enums/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var assert = require("assert");
|
|
3
3
|
var coretypes_1 = require("./coretypes");
|
|
4
4
|
var ledger_hashes_1 = require("./ledger-hashes");
|
|
5
|
+
var enums_1 = require("./enums");
|
|
5
6
|
var signingData = coretypes_1.binary.signingData, signingClaimData = coretypes_1.binary.signingClaimData, multiSigningData = coretypes_1.binary.multiSigningData, binaryToJSON = coretypes_1.binary.binaryToJSON, serializeObject = coretypes_1.binary.serializeObject;
|
|
6
7
|
/**
|
|
7
8
|
* Decode a transaction
|
|
@@ -94,5 +95,6 @@ module.exports = {
|
|
|
94
95
|
encodeQuality: encodeQuality,
|
|
95
96
|
decodeQuality: decodeQuality,
|
|
96
97
|
decodeLedgerData: ledger_hashes_1.decodeLedgerData,
|
|
98
|
+
TRANSACTION_TYPES: enums_1.TRANSACTION_TYPES,
|
|
97
99
|
};
|
|
98
100
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,+BAAgC;AAChC,yCAA6C;AAC7C,iDAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,+BAAgC;AAChC,yCAA6C;AAC7C,iDAAkD;AAGlD,iCAA2C;AAGzC,IAAA,WAAW,GAKT,kBAAM,YALG,EACX,gBAAgB,GAId,kBAAM,iBAJQ,EAChB,gBAAgB,GAGd,kBAAM,iBAHQ,EAChB,YAAY,GAEV,kBAAM,aAFI,EACZ,eAAe,GACb,kBAAM,gBADO,CACP;AAEV;;;;;GAKG;AACH,SAAS,MAAM,CAAC,MAAc;IAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,EAAE,6BAA6B,CAAC,CAAA;IACpE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;AAC7B,CAAC;AAED;;;;;GAKG;AACH,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAA;IACnC,OAAO,eAAe,CAAC,IAAkB,CAAC;SACvC,QAAQ,CAAC,KAAK,CAAC;SACf,WAAW,EAAE,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAA;IACnC,OAAO,WAAW,CAAC,IAAkB,CAAC;SACnC,QAAQ,CAAC,KAAK,CAAC;SACf,WAAW,EAAE,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAA;IACnC,OAAO,gBAAgB,CAAC,IAAmB,CAAC;SACzC,QAAQ,CAAC,KAAK,CAAC;SACf,WAAW,EAAE,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,IAAY,EAAE,MAAc;IACzD,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAA;IACnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,CAAA;IACvC,OAAO,gBAAgB,CAAC,IAAkB,EAAE,MAAM,CAAC;SAChD,QAAQ,CAAC,KAAK,CAAC;SACf,WAAW,EAAE,CAAA;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAA;IACpC,OAAO,mBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;AAC5D,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAA;IACpC,OAAO,mBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;AACzC,CAAC;AAED,iBAAS;IACP,MAAM,QAAA;IACN,MAAM,QAAA;IACN,gBAAgB,kBAAA;IAChB,qBAAqB,uBAAA;IACrB,qBAAqB,uBAAA;IACrB,aAAa,eAAA;IACb,aAAa,eAAA;IACb,gBAAgB,kCAAA;IAChB,iBAAiB,2BAAA;CAClB,CAAA"}
|
package/dist/types/currency.js
CHANGED
|
@@ -18,8 +18,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.Currency = void 0;
|
|
19
19
|
var hash_160_1 = require("./hash-160");
|
|
20
20
|
var buffer_1 = require("buffer/");
|
|
21
|
+
var XRP_HEX_REGEX = /^0{40}$/;
|
|
21
22
|
var ISO_REGEX = /^[A-Z0-9]{3}$/;
|
|
22
23
|
var HEX_REGEX = /^[A-F0-9]{40}$/;
|
|
24
|
+
// eslint-disable-next-line no-control-regex
|
|
25
|
+
var STANDARD_FORMAT_HEX_REGEX = /^0{24}[\x00-\x7F]{6}0{10}$/;
|
|
23
26
|
/**
|
|
24
27
|
* Convert an ISO code to a currency bytes representation
|
|
25
28
|
*/
|
|
@@ -40,7 +43,7 @@ function isIsoCode(iso) {
|
|
|
40
43
|
function isoCodeFromHex(code) {
|
|
41
44
|
var iso = code.toString();
|
|
42
45
|
if (iso === 'XRP') {
|
|
43
|
-
|
|
46
|
+
return null;
|
|
44
47
|
}
|
|
45
48
|
if (isIsoCode(iso)) {
|
|
46
49
|
return iso;
|
|
@@ -89,15 +92,15 @@ var Currency = /** @class */ (function (_super) {
|
|
|
89
92
|
__extends(Currency, _super);
|
|
90
93
|
function Currency(byteBuf) {
|
|
91
94
|
var _this = _super.call(this, byteBuf !== null && byteBuf !== void 0 ? byteBuf : Currency.XRP.bytes) || this;
|
|
92
|
-
var
|
|
93
|
-
if (
|
|
94
|
-
_this._iso = null;
|
|
95
|
-
}
|
|
96
|
-
else if (code.toString('hex') === '000000') {
|
|
95
|
+
var hex = _this.bytes.toString('hex');
|
|
96
|
+
if (XRP_HEX_REGEX.test(hex)) {
|
|
97
97
|
_this._iso = 'XRP';
|
|
98
98
|
}
|
|
99
|
+
else if (STANDARD_FORMAT_HEX_REGEX.test(hex)) {
|
|
100
|
+
_this._iso = isoCodeFromHex(_this.bytes.slice(12, 15));
|
|
101
|
+
}
|
|
99
102
|
else {
|
|
100
|
-
_this._iso =
|
|
103
|
+
_this._iso = null;
|
|
101
104
|
}
|
|
102
105
|
return _this;
|
|
103
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../src/types/currency.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAoC;AACpC,kCAAgC;AAEhC,IAAM,SAAS,GAAG,eAAe,CAAA;AACjC,IAAM,SAAS,GAAG,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../src/types/currency.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ripple-binary-codec",
|
|
3
|
-
"version": "1.2
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"description": "XRP Ledger binary codec",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/*",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"buffer": "5.6.0",
|
|
18
18
|
"create-hash": "^1.2.0",
|
|
19
19
|
"decimal.js": "^10.2.0",
|
|
20
|
-
"ripple-address-codec": "^4.2.
|
|
20
|
+
"ripple-address-codec": "^4.2.3"
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
23
|
"build": "run-script-os",
|
|
@@ -35,12 +35,11 @@
|
|
|
35
35
|
"bugs": {
|
|
36
36
|
"url": "https://github.com/XRPLF/xrpl.js/issues"
|
|
37
37
|
},
|
|
38
|
-
"homepage": "https://github.com/XRPLF/xrpl.js/packages/ripple-binary-codec#readme",
|
|
38
|
+
"homepage": "https://github.com/XRPLF/xrpl.js/tree/main/packages/ripple-binary-codec#readme",
|
|
39
39
|
"license": "ISC",
|
|
40
40
|
"readmeFilename": "README.md",
|
|
41
41
|
"prettier": "@xrplf/prettier-config",
|
|
42
42
|
"engines": {
|
|
43
43
|
"node": ">=10.22.0"
|
|
44
|
-
}
|
|
45
|
-
"gitHead": "7c6230b18ec2ed031c7e379ffb94e34b940b6542"
|
|
44
|
+
}
|
|
46
45
|
}
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
"LastLedgerSequence": 27,
|
|
329
329
|
"Sequence": 10,
|
|
330
330
|
"SigningPubKey": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020",
|
|
331
|
-
"
|
|
331
|
+
"TokenOffers": [
|
|
332
332
|
"00090032B5F762798A53D543A014CAF8B297CFF8F2F937E80000099B00000000"
|
|
333
333
|
],
|
|
334
334
|
"TransactionType": "NFTokenCancelOffer",
|
package/test/hash.test.js
CHANGED
|
@@ -50,10 +50,9 @@ describe('Hash256', function () {
|
|
|
50
50
|
})
|
|
51
51
|
|
|
52
52
|
describe('Currency', function () {
|
|
53
|
-
test('
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
).toThrow()
|
|
53
|
+
test('Decoding allows dodgy XRP without throwing', function () {
|
|
54
|
+
const currencyCode = '0000000000000000000000005852500000000000'
|
|
55
|
+
expect(Currency.from(currencyCode).toJSON()).toBe(currencyCode)
|
|
57
56
|
})
|
|
58
57
|
test('Currency with lowercase letters decode to hex', () => {
|
|
59
58
|
expect(Currency.from('xRp').toJSON()).toBe(
|
|
@@ -69,6 +68,19 @@ describe('Currency', function () {
|
|
|
69
68
|
expect(Currency.from('X8P').toJSON()).toBe('X8P')
|
|
70
69
|
expect(Currency.from('USD').toJSON()).toBe('USD')
|
|
71
70
|
})
|
|
71
|
+
|
|
72
|
+
test('Currency codes with no contiguous zeroes in first 96 type code & reserved bits', function () {
|
|
73
|
+
expect(
|
|
74
|
+
Currency.from('0000000023410000000000005852520000000000').iso(),
|
|
75
|
+
).toBe(null)
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
test('Currency codes with no contiguous zeroes in last 40 reserved bits', function () {
|
|
79
|
+
expect(
|
|
80
|
+
Currency.from('0000000000000000000000005852527570656500').iso(),
|
|
81
|
+
).toBe(null)
|
|
82
|
+
})
|
|
83
|
+
|
|
72
84
|
test('can be constructed from a Buffer', function () {
|
|
73
85
|
const xrp = new Currency(Buffer.alloc(20))
|
|
74
86
|
expect(xrp.iso()).toBe('XRP')
|
|
@@ -77,6 +89,12 @@ describe('Currency', function () {
|
|
|
77
89
|
const currency = '015841551A748AD2C1F76FF6ECB0CCCD00000000'
|
|
78
90
|
expect(Currency.from(currency).toJSON()).toBe(currency)
|
|
79
91
|
})
|
|
92
|
+
|
|
93
|
+
test('Can handle other non-standard currency codes', () => {
|
|
94
|
+
const currency = '0000000000414C6F676F30330000000000000000'
|
|
95
|
+
expect(Currency.from(currency).toJSON()).toBe(currency)
|
|
96
|
+
})
|
|
97
|
+
|
|
80
98
|
test('throws on invalid reprs', function () {
|
|
81
99
|
expect(() => Currency.from(Buffer.alloc(19))).toThrow()
|
|
82
100
|
expect(() => Currency.from(1)).toThrow()
|
|
@@ -50,6 +50,28 @@ describe('encoding and decoding tx_json', function () {
|
|
|
50
50
|
const decoded = decode(encoded)
|
|
51
51
|
expect(my_tx).toEqual(decoded)
|
|
52
52
|
})
|
|
53
|
+
test('can decode a transaction with an issued currency that evaluates to XRP', function () {
|
|
54
|
+
// Encoding is done prior, because this is disallowed during encoding with client libraries to avoid scam XRP tokens.
|
|
55
|
+
const expectedTx = {
|
|
56
|
+
TransactionType: 'TrustSet',
|
|
57
|
+
Flags: 0,
|
|
58
|
+
Sequence: 19,
|
|
59
|
+
LimitAmount: {
|
|
60
|
+
value: '200',
|
|
61
|
+
currency: '0000000000000000000000005852500000000000',
|
|
62
|
+
issuer: 'r9hEDb4xBGRfBCcX3E4FirDWQBAYtpxC8K',
|
|
63
|
+
},
|
|
64
|
+
Fee: '10',
|
|
65
|
+
SigningPubKey:
|
|
66
|
+
'023076CBB7A61837F1A23D4A3DD7CE810B694992EB0959AB9D6F4BB6FED6F8CC26',
|
|
67
|
+
TxnSignature:
|
|
68
|
+
'304502202D0CD77D8E765E3783C309CD663723B18406B7950A348A6F301492916A990FC70221008A76D586111205304F10ADEFDFDDAF804EF202D8CD1E492DC6E1AA8030EA1844',
|
|
69
|
+
Account: 'rPtfQWdcdhuL9eNeNv5YfmekSX3K7vJHbG',
|
|
70
|
+
}
|
|
71
|
+
const encoded = encode(expectedTx)
|
|
72
|
+
const decoded = decode(encoded)
|
|
73
|
+
expect(expectedTx).toEqual(decoded)
|
|
74
|
+
})
|
|
53
75
|
test('throws when Amount is invalid', function () {
|
|
54
76
|
const my_tx = Object.assign({}, tx_json, {
|
|
55
77
|
Amount: '1000.001',
|