ripple-binary-codec 1.5.0-beta.3 → 1.5.0-beta.4

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.
Files changed (54) hide show
  1. package/dist/binary.d.ts +21 -6
  2. package/dist/binary.js +28 -9
  3. package/dist/binary.js.map +1 -1
  4. package/dist/coretypes.d.ts +2 -2
  5. package/dist/coretypes.js +2 -1
  6. package/dist/coretypes.js.map +1 -1
  7. package/dist/enums/bytes.d.ts +1 -1
  8. package/dist/enums/bytes.js +24 -28
  9. package/dist/enums/bytes.js.map +1 -1
  10. package/dist/enums/definitions.json +78 -37
  11. package/dist/enums/field.d.ts +0 -1
  12. package/dist/enums/field.js +16 -22
  13. package/dist/enums/field.js.map +1 -1
  14. package/dist/enums/index.d.ts +12 -48
  15. package/dist/enums/index.js +18 -109
  16. package/dist/enums/index.js.map +1 -1
  17. package/dist/enums/src/enums/definitions.json +78 -37
  18. package/dist/enums/xrpl-definitions-base.d.ts +44 -0
  19. package/dist/enums/xrpl-definitions-base.js +59 -0
  20. package/dist/enums/xrpl-definitions-base.js.map +1 -0
  21. package/dist/enums/xrpl-definitions.d.ts +7 -30
  22. package/dist/enums/xrpl-definitions.js +12 -52
  23. package/dist/enums/xrpl-definitions.js.map +1 -1
  24. package/dist/index.d.ts +14 -6
  25. package/dist/index.js +24 -9
  26. package/dist/index.js.map +1 -1
  27. package/dist/ledger-hashes.d.ts +4 -1
  28. package/dist/ledger-hashes.js +4 -2
  29. package/dist/ledger-hashes.js.map +1 -1
  30. package/dist/serdes/binary-parser.d.ts +6 -3
  31. package/dist/serdes/binary-parser.js +5 -2
  32. package/dist/serdes/binary-parser.js.map +1 -1
  33. package/dist/serdes/binary-serializer.d.ts +1 -1
  34. package/dist/shamap.js +3 -1
  35. package/dist/shamap.js.map +1 -1
  36. package/dist/types/index.d.ts +3 -22
  37. package/dist/types/index.js +21 -8
  38. package/dist/types/index.js.map +1 -1
  39. package/dist/types/st-object.d.ts +6 -3
  40. package/dist/types/st-object.js +7 -5
  41. package/dist/types/st-object.js.map +1 -1
  42. package/package.json +6 -5
  43. package/test/definitions.test.js +100 -0
  44. package/test/fixtures/codec-fixtures.json +78 -78
  45. package/test/signing-data-encoding.test.js +103 -1
  46. package/dist/serdes/bytes-list.d.ts +0 -29
  47. package/dist/serdes/bytes-list.js +0 -48
  48. package/dist/serdes/bytes-list.js.map +0 -1
  49. package/dist/types/issued-currency.d.ts +0 -46
  50. package/dist/types/issued-currency.js +0 -108
  51. package/dist/types/issued-currency.js.map +0 -1
  52. package/dist/types/xchain-attestation-batch.d.ts +0 -44
  53. package/dist/types/xchain-attestation-batch.js +0 -90
  54. package/dist/types/xchain-attestation-batch.js.map +0 -1
@@ -77,9 +77,10 @@ class STObject extends serialized_type_1.SerializedType {
77
77
  *
78
78
  * @param value An object to include
79
79
  * @param filter optional, denote which field to include in serialized object
80
+ * @param definitions optional, types and values to use to encode/decode a transaction
80
81
  * @returns a STObject object
81
82
  */
82
- static from(value, filter) {
83
+ static from(value, filter, definitions = enums_1.DEFAULT_DEFINITIONS) {
83
84
  if (value instanceof STObject) {
84
85
  return value;
85
86
  }
@@ -95,7 +96,7 @@ class STObject extends serialized_type_1.SerializedType {
95
96
  return Object.assign(acc, handled !== null && handled !== void 0 ? handled : { [key]: val });
96
97
  }, {});
97
98
  let sorted = Object.keys(xAddressDecoded)
98
- .map((f) => enums_1.Field[f])
99
+ .map((f) => definitions.field[f])
99
100
  .filter((f) => f !== undefined &&
100
101
  xAddressDecoded[f.name] !== undefined &&
101
102
  f.isSerialized)
@@ -127,11 +128,12 @@ class STObject extends serialized_type_1.SerializedType {
127
128
  }
128
129
  /**
129
130
  * Get the JSON interpretation of this.bytes
130
- *
131
+ * @param definitions rippled definitions used to parse the values of transaction types and such.
132
+ * Can be customized for sidechains and amendments.
131
133
  * @returns a JSON object
132
134
  */
133
- toJSON() {
134
- const objectParser = new binary_parser_1.BinaryParser(this.toString());
135
+ toJSON(definitions) {
136
+ const objectParser = new binary_parser_1.BinaryParser(this.toString(), definitions);
135
137
  const accumulator = {};
136
138
  while (!objectParser.end()) {
137
139
  const field = objectParser.readField();
@@ -1 +1 @@
1
- {"version":3,"file":"st-object.js","sourceRoot":"","sources":["../../src/types/st-object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"st-object.js","sourceRoot":"","sources":["../../src/types/st-object.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.5.0-beta.3",
3
+ "version": "1.5.0-beta.4",
4
4
  "description": "XRP Ledger binary codec",
5
5
  "files": [
6
6
  "dist/*",
@@ -14,15 +14,15 @@
14
14
  "dependencies": {
15
15
  "assert": "^2.0.0",
16
16
  "big-integer": "^1.6.48",
17
- "buffer": "5.6.0",
17
+ "buffer": "6.0.3",
18
18
  "create-hash": "^1.2.0",
19
19
  "decimal.js": "^10.2.0",
20
- "ripple-address-codec": "^4.2.4"
20
+ "ripple-address-codec": "^4.2.5"
21
21
  },
22
22
  "scripts": {
23
23
  "build": "tsc -b && copyfiles ./src/enums/definitions.json ./dist/enums/",
24
24
  "clean": "rm -rf ./dist && rm -rf tsconfig.tsbuildinfo",
25
- "prepare": "npm test",
25
+ "prepublishOnly": "npm test",
26
26
  "test": "npm run build && jest --verbose false --silent=false ./test/*.test.js",
27
27
  "lint": "eslint . --ext .ts --ext .test.js"
28
28
  },
@@ -39,5 +39,6 @@
39
39
  "prettier": "@xrplf/prettier-config",
40
40
  "engines": {
41
41
  "node": ">= 10"
42
- }
42
+ },
43
+ "gitHead": "4e03fbb78921c9e12562d65e3aa697849c290e9a"
43
44
  }
@@ -0,0 +1,100 @@
1
+ const { encode, decode, XrplDefinitions } = require('../src')
2
+ const normalDefinitionsJson = require('../src/enums/definitions.json')
3
+ const { UInt32 } = require('../dist/types/uint-32')
4
+
5
+ const txJson = {
6
+ Account: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
7
+ Amount: '1000',
8
+ Destination: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh',
9
+ Fee: '10',
10
+ Flags: 0,
11
+ Sequence: 1,
12
+ TransactionType: 'Payment',
13
+ }
14
+
15
+ describe('encode and decode using new types as a parameter', function () {
16
+ test('can encode and decode a new TransactionType', function () {
17
+ const tx = { ...txJson, TransactionType: 'NewTestTransaction' }
18
+ // Before updating the types, this should not be encodable
19
+ expect(() => encode(tx)).toThrow()
20
+
21
+ // Normally this would be generated directly from rippled with something like `server_definitions`.
22
+ // Added here to make it easier to see what is actually changing in the definitions.json file.
23
+ const definitions = JSON.parse(JSON.stringify(normalDefinitionsJson))
24
+ definitions.TRANSACTION_TYPES['NewTestTransaction'] = 30
25
+
26
+ const newDefs = new XrplDefinitions(definitions)
27
+
28
+ const encoded = encode(tx, newDefs)
29
+ expect(() => decode(encoded)).toThrow()
30
+ const decoded = decode(encoded, newDefs)
31
+ expect(decoded).toStrictEqual(tx)
32
+ })
33
+
34
+ test('can encode and decode a new Field', function () {
35
+ const tx = { ...txJson, NewFieldDefinition: 10 }
36
+
37
+ // Before updating the types, undefined fields will be ignored on encode
38
+ expect(decode(encode(tx))).not.toStrictEqual(tx)
39
+
40
+ // Normally this would be generated directly from rippled with something like `server_definitions`.
41
+ // Added here to make it easier to see what is actually changing in the definitions.json file.
42
+ const definitions = JSON.parse(JSON.stringify(normalDefinitionsJson))
43
+
44
+ definitions.FIELDS.push([
45
+ 'NewFieldDefinition',
46
+ {
47
+ nth: 100,
48
+ isVLEncoded: false,
49
+ isSerialized: true,
50
+ isSigningField: true,
51
+ type: 'UInt32',
52
+ },
53
+ ])
54
+
55
+ const newDefs = new XrplDefinitions(definitions)
56
+
57
+ const encoded = encode(tx, newDefs)
58
+ expect(() => decode(encoded)).toThrow()
59
+ const decoded = decode(encoded, newDefs)
60
+ expect(decoded).toStrictEqual(tx)
61
+ })
62
+
63
+ test('can encode and decode a new Type', function () {
64
+ const tx = {
65
+ ...txJson,
66
+ TestField: 10, // Should work the same as a UInt32
67
+ }
68
+
69
+ // Normally this would be generated directly from rippled with something like `server_definitions`.
70
+ // Added here to make it easier to see what is actually changing in the definitions.json file.
71
+ const definitions = JSON.parse(JSON.stringify(normalDefinitionsJson))
72
+ definitions.TYPES.NewType = 31
73
+ definitions.FIELDS.push([
74
+ 'TestField',
75
+ {
76
+ nth: 100,
77
+ isVLEncoded: true,
78
+ isSerialized: true,
79
+ isSigningField: true,
80
+ type: 'NewType',
81
+ },
82
+ ])
83
+
84
+ // Test that before updating the types this tx fails to decode correctly. Note that undefined fields are ignored on encode.
85
+ expect(decode(encode(tx))).not.toStrictEqual(tx)
86
+
87
+ class NewType extends UInt32 {
88
+ // Should be the same as UInt32
89
+ }
90
+
91
+ const extendedCoreTypes = { NewType }
92
+
93
+ const newDefs = new XrplDefinitions(definitions, extendedCoreTypes)
94
+
95
+ const encoded = encode(tx, newDefs)
96
+ expect(() => decode(encoded)).toThrow()
97
+ const decoded = decode(encoded, newDefs)
98
+ expect(decoded).toStrictEqual(tx)
99
+ })
100
+ })
@@ -4636,11 +4636,11 @@
4636
4636
  }
4637
4637
  },
4638
4638
  {
4639
- "binary": "12002315000A220000000024000000026140000000000027106840000000000000016BD5838D7EA4C680000000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C7321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D07440913E39EC2BA0E5BC4C5DF1222B1AE9E76758F2B8FFEF1F056076147BB0ADC8117CD0296360DA08B3D48BE9EFC8693C03A253E0D9F166C19CA8D936F9E61A1100811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E",
4639
+ "binary": "12002315000A2200000000240015DAE161400000000000271068400000000000000A6BD5838D7EA4C680000000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440B3154D968314FCEB58001E1B0C3A4CFB33DF9FF6C73207E5EAEB9BD07E2747672168E1A2786D950495C38BD8DEE3391BF45F3008DD36F4B12E7C07D82CA5250E8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A",
4640
4640
  "json": {
4641
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4641
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4642
4642
  "TransactionType": "AMMCreate",
4643
- "TxnSignature": "913E39EC2BA0E5BC4C5DF1222B1AE9E76758F2B8FFEF1F056076147BB0ADC8117CD0296360DA08B3D48BE9EFC8693C03A253E0D9F166C19CA8D936F9E61A1100",
4643
+ "TxnSignature": "B3154D968314FCEB58001E1B0C3A4CFB33DF9FF6C73207E5EAEB9BD07E2747672168E1A2786D950495C38BD8DEE3391BF45F3008DD36F4B12E7C07D82CA5250E",
4644
4644
  "Amount": "10000",
4645
4645
  "Amount2": {
4646
4646
  "currency": "ETH",
@@ -4648,198 +4648,198 @@
4648
4648
  "value": "10000"
4649
4649
  },
4650
4650
  "TradingFee": 10,
4651
- "Fee": "1",
4651
+ "Fee": "10",
4652
4652
  "Flags": 0,
4653
- "Sequence": 2,
4654
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0"
4653
+ "Sequence": 1432289,
4654
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8"
4655
4655
  }
4656
4656
  },
4657
4657
  {
4658
- "binary": "120024220001000024000000026840000000000000016014D5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D074409EEE8CF88C668B955E7EEAB1B4A1B059EDF4F51B7F1546810F87E3E48B09237F015C651E37FB40A979E00EA21361D4E18D7A33DB7DD23070CEEAB2648AB3BB0D811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4658
+ "binary": "1200242200010000240015DAE168400000000000000A6019D5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B874408073C588E7EF672DD171E414638D9AF8DBE9A1359E030DE3E1C9AA6A38A2CE9E138CB56482BB844F7228D48B1E4AD7D09BB7E9F639C115958EEEA374749CA00B8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4659
4659
  "json": {
4660
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4660
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4661
4661
  "TransactionType": "AMMDeposit",
4662
- "TxnSignature": "9EEE8CF88C668B955E7EEAB1B4A1B059EDF4F51B7F1546810F87E3E48B09237F015C651E37FB40A979E00EA21361D4E18D7A33DB7DD23070CEEAB2648AB3BB0D",
4662
+ "TxnSignature": "8073C588E7EF672DD171E414638D9AF8DBE9A1359E030DE3E1C9AA6A38A2CE9E138CB56482BB844F7228D48B1E4AD7D09BB7E9F639C115958EEEA374749CA00B",
4663
4663
  "Asset": {"currency": "XRP"},
4664
4664
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4665
4665
  "LPTokenOut": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "1000"},
4666
- "Fee": "1",
4666
+ "Fee": "10",
4667
4667
  "Flags": 65536,
4668
- "Sequence": 2,
4669
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0"
4668
+ "Sequence": 1432289,
4669
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8"
4670
4670
  }
4671
4671
  },
4672
4672
  {
4673
- "binary": "120024220008000024000000026140000000000003E86840000000000000017321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D07440BD18A6E2B10B451F61CFADC32B59A0243702DC5DAAE556D51CB9C79981D40C78101FFA9DE6163CFBDF6E7578DF02F2AE3B8A5AB60697E0746D65064D91E8F90A811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4673
+ "binary": "1200242200080000240015DAE16140000000000003E868400000000000000A7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8744096CA066F42871C55088D2758D64148921B1ACAA5C6C648D0F7D675BBF47F87DF711F17C5BD172666D5AEC257520C587A849A6E063345609D91E121A78816EB048114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4674
4674
  "json": {
4675
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4675
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4676
4676
  "TransactionType": "AMMDeposit",
4677
4677
  "Asset": {"currency": "XRP"},
4678
4678
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4679
4679
  "Amount": "1000",
4680
- "Fee": "1",
4680
+ "Fee": "10",
4681
4681
  "Flags": 524288,
4682
- "Sequence": 2,
4683
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4684
- "TxnSignature": "BD18A6E2B10B451F61CFADC32B59A0243702DC5DAAE556D51CB9C79981D40C78101FFA9DE6163CFBDF6E7578DF02F2AE3B8A5AB60697E0746D65064D91E8F90A"
4682
+ "Sequence": 1432289,
4683
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4684
+ "TxnSignature": "96CA066F42871C55088D2758D64148921B1ACAA5C6C648D0F7D675BBF47F87DF711F17C5BD172666D5AEC257520C587A849A6E063345609D91E121A78816EB04"
4685
4685
  }
4686
4686
  },
4687
4687
  {
4688
- "binary": "120024220010000024000000026140000000000003E86840000000000000016BD511C37937E080000000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C7321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D07440E0B1AE32A0F731BF0CEF0D019295BD7F35B22F11A5962F65FA99EE4D38993B14B53DB11C15E36D756E282812E9015D38A6F225940A157693F43F9B795C59950F811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4688
+ "binary": "1200242200100000240015DAE16140000000000003E868400000000000000A6BD511C37937E080000000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440FC22B16A098C236ED7EDB3EBC983026DFD218A03C8BAA848F3E1D5389D5B8B00473C1178C5BA257BFA2DCD433C414690A430A5CFD71C1C0A7F7BF725EC1759018114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4689
4689
  "json": {
4690
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4690
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4691
4691
  "TransactionType": "AMMDeposit",
4692
4692
  "Asset": {"currency": "XRP"},
4693
4693
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4694
4694
  "Amount": "1000",
4695
4695
  "Amount2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9", "value": "500"},
4696
- "Fee": "1",
4696
+ "Fee": "10",
4697
4697
  "Flags": 1048576,
4698
- "Sequence": 2,
4699
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4700
- "TxnSignature": "E0B1AE32A0F731BF0CEF0D019295BD7F35B22F11A5962F65FA99EE4D38993B14B53DB11C15E36D756E282812E9015D38A6F225940A157693F43F9B795C59950F"
4698
+ "Sequence": 1432289,
4699
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4700
+ "TxnSignature": "FC22B16A098C236ED7EDB3EBC983026DFD218A03C8BAA848F3E1D5389D5B8B00473C1178C5BA257BFA2DCD433C414690A430A5CFD71C1C0A7F7BF725EC175901"
4701
4701
  }
4702
4702
  },
4703
4703
  {
4704
- "binary": "120024220020000024000000026140000000000003E86840000000000000016014D5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D07440452BC59F9EE12C224EC983EFDF580F20C4A50E897105FD1FB13520D9753CFB02BD210599181574DF6AD0DB6A42C1EA48D9E48FC3D11B9008E4C76FBB163D5B00811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4704
+ "binary": "1200242200200000240015DAE16140000000000003E868400000000000000A6019D5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440117CF90F9B113AD3BD638B6DB63562B37C287D5180F278B3CCF58FC14A5BAEE98307EA0F6DFE19E2FBA887C92955BA5D1A04F92ADAAEB309DE89C3610D074C098114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4705
4705
  "json": {
4706
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4706
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4707
4707
  "TransactionType": "AMMDeposit",
4708
4708
  "Asset": {"currency": "XRP"},
4709
4709
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4710
4710
  "Amount": "1000",
4711
4711
  "LPTokenOut": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "1000"},
4712
- "Fee": "1",
4712
+ "Fee": "10",
4713
4713
  "Flags": 2097152,
4714
- "Sequence": 2,
4715
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4716
- "TxnSignature": "452BC59F9EE12C224EC983EFDF580F20C4A50E897105FD1FB13520D9753CFB02BD210599181574DF6AD0DB6A42C1EA48D9E48FC3D11B9008E4C76FBB163D5B00"
4714
+ "Sequence": 1432289,
4715
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4716
+ "TxnSignature": "117CF90F9B113AD3BD638B6DB63562B37C287D5180F278B3CCF58FC14A5BAEE98307EA0F6DFE19E2FBA887C92955BA5D1A04F92ADAAEB309DE89C3610D074C09"
4717
4717
  }
4718
4718
  },
4719
4719
  {
4720
- "binary": "120024220040000024000000026140000000000003E8684000000000000001601640000000000000197321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D07440DD6685DC586FAA6AD2D50D785900122EB147D4AC09A55D7080267A9B38180F87CEC44B823359FC3F0AC0104D47B53FFC6B80415664C3C4582672420A0100F70C811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4720
+ "binary": "1200242200400000240015DAE16140000000000003E868400000000000000A601B40000000000000197321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B874405E51EBC6B52A7C3BA5D0AE2FC8F62E779B80182009B3108A87AB6D770D68F56053C193DB0640128E4765565970625B1E2878E116AC854E6DED412202CCDE0B0D8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4721
4721
  "json": {
4722
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4722
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4723
4723
  "TransactionType": "AMMDeposit",
4724
4724
  "Asset": {"currency": "XRP"},
4725
4725
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4726
4726
  "Amount": "1000",
4727
4727
  "EPrice": "25",
4728
- "Fee": "1",
4728
+ "Fee": "10",
4729
4729
  "Flags": 4194304,
4730
- "Sequence": 2,
4731
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4732
- "TxnSignature": "DD6685DC586FAA6AD2D50D785900122EB147D4AC09A55D7080267A9B38180F87CEC44B823359FC3F0AC0104D47B53FFC6B80415664C3C4582672420A0100F70C"
4730
+ "Sequence": 1432289,
4731
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4732
+ "TxnSignature": "5E51EBC6B52A7C3BA5D0AE2FC8F62E779B80182009B3108A87AB6D770D68F56053C193DB0640128E4765565970625B1E2878E116AC854E6DED412202CCDE0B0D"
4733
4733
  }
4734
4734
  },
4735
4735
  {
4736
- "binary": "120025220001000024000000026840000000000000016015D5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0744066944797E9F03808C9A00AAEFF786AD74FEB2E64B51A9601E89ABA820AAA15927C2E961A9CCA22C4B0D2A2B55E342BD6E297BD765B6F4D3FDCA578A3416BB505811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4736
+ "binary": "1200252200010000240015DAE168400000000000000A601AD5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B874409D4F41FC452526C0AD17191959D9B6D04A3C73B3A6C29E0F34C8459675A83A7A7D6E3021390EC8C9BE6C93E11C167E12016465E523F64F9EB3194B0A52E418028114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4737
4737
  "json": {
4738
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4738
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4739
4739
  "TransactionType": "AMMWithdraw",
4740
4740
  "Asset": {"currency": "XRP"},
4741
4741
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4742
4742
  "LPTokenIn": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "1000"},
4743
- "Fee": "1",
4743
+ "Fee": "10",
4744
4744
  "Flags": 65536,
4745
- "Sequence": 2,
4746
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4747
- "TxnSignature": "66944797E9F03808C9A00AAEFF786AD74FEB2E64B51A9601E89ABA820AAA15927C2E961A9CCA22C4B0D2A2B55E342BD6E297BD765B6F4D3FDCA578A3416BB505"
4745
+ "Sequence": 1432289,
4746
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4747
+ "TxnSignature": "9D4F41FC452526C0AD17191959D9B6D04A3C73B3A6C29E0F34C8459675A83A7A7D6E3021390EC8C9BE6C93E11C167E12016465E523F64F9EB3194B0A52E41802"
4748
4748
  }
4749
4749
  },
4750
4750
  {
4751
- "binary": "120025220008000024000000026140000000000003E86840000000000000017321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D07440E30397CE7E99B13D35FFB5C66725B17F4F103675E10293C7B1D63C1BE3FA81B884BD3FBD31B52F6B811F99C5FBB5102D170EC379C268DF80DABF04E7F2DD4F0C811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4751
+ "binary": "1200252200080000240015DAE16140000000000003E868400000000000000A7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440E2C60D56C337D6D73E4B7D53579C93C666605494E82A89DD58CFDE79E2A4866BCF52370A2146877A2EF748E98168373710001133A51B645D89491849079035018114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4752
4752
  "json": {
4753
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4753
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4754
4754
  "TransactionType": "AMMWithdraw",
4755
4755
  "Asset": {"currency": "XRP"},
4756
4756
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4757
4757
  "Amount": "1000",
4758
- "Fee": "1",
4758
+ "Fee": "10",
4759
4759
  "Flags": 524288,
4760
- "Sequence": 2,
4761
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4762
- "TxnSignature": "E30397CE7E99B13D35FFB5C66725B17F4F103675E10293C7B1D63C1BE3FA81B884BD3FBD31B52F6B811F99C5FBB5102D170EC379C268DF80DABF04E7F2DD4F0C"
4760
+ "Sequence": 1432289,
4761
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4762
+ "TxnSignature": "E2C60D56C337D6D73E4B7D53579C93C666605494E82A89DD58CFDE79E2A4866BCF52370A2146877A2EF748E98168373710001133A51B645D8949184907903501"
4763
4763
  }
4764
4764
  },
4765
4765
  {
4766
- "binary": "120025220010000024000000026140000000000003E86840000000000000016BD511C37937E080000000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C7321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D07440C0818312B269A4EF16C1C7EBBB74EFD1852A288BB214A714B8BE3B5F4B2F9CFDFF4F66C931B8434244A8016035B9EC9493B7CF5E0ACF4570A88DF808D79E4300811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4766
+ "binary": "1200252200100000240015DAE16140000000000003E868400000000000000A6BD511C37937E080000000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440D2FCD7D03E53358BC6188BA88A7BA4FF2519B639C3B5C0EBCBDCB704426CA2837111430E92A6003D1CD0D81C63682C74839320539EC4F89B82AA5607714952028114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4767
4767
  "json": {
4768
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4768
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4769
4769
  "TransactionType": "AMMWithdraw",
4770
4770
  "Asset": {"currency": "XRP"},
4771
4771
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4772
4772
  "Amount": "1000",
4773
4773
  "Amount2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9", "value": "500"},
4774
- "Fee": "1",
4774
+ "Fee": "10",
4775
4775
  "Flags": 1048576,
4776
- "Sequence": 2,
4777
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4778
- "TxnSignature": "C0818312B269A4EF16C1C7EBBB74EFD1852A288BB214A714B8BE3B5F4B2F9CFDFF4F66C931B8434244A8016035B9EC9493B7CF5E0ACF4570A88DF808D79E4300"
4776
+ "Sequence": 1432289,
4777
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4778
+ "TxnSignature": "D2FCD7D03E53358BC6188BA88A7BA4FF2519B639C3B5C0EBCBDCB704426CA2837111430E92A6003D1CD0D81C63682C74839320539EC4F89B82AA560771495202"
4779
4779
  }
4780
4780
  },
4781
4781
  {
4782
- "binary": "120025220020000024000000026140000000000003E86840000000000000016015D5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0744073552B3DC7AE99DDF4E4FF0D60E6D0BE4688E3474D363603FA25DA6AD8BBA8F0E4E3EA82ADB2B57F5B9A6C379969E00095546DDA0E74FF3D0F0689351C2F8C06811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4782
+ "binary": "1200252200200000240015DAE16140000000000003E868400000000000000A601AD5438D7EA4C68000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8744042DA5620E924E2D2059BBB4E0C4F03244140ACED93B543136FEEDF802165F814D09F45C7E2A4618468442516F4712A23B1D3332D5DBDBAE830337F39F259C90F8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4783
4783
  "json": {
4784
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4784
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4785
4785
  "TransactionType": "AMMWithdraw",
4786
4786
  "Asset": {"currency": "XRP"},
4787
4787
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4788
4788
  "Amount": "1000",
4789
4789
  "LPTokenIn": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "1000"},
4790
- "Fee": "1",
4790
+ "Fee": "10",
4791
4791
  "Flags": 2097152,
4792
- "Sequence": 2,
4793
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4794
- "TxnSignature": "73552B3DC7AE99DDF4E4FF0D60E6D0BE4688E3474D363603FA25DA6AD8BBA8F0E4E3EA82ADB2B57F5B9A6C379969E00095546DDA0E74FF3D0F0689351C2F8C06"
4792
+ "Sequence": 1432289,
4793
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4794
+ "TxnSignature": "42DA5620E924E2D2059BBB4E0C4F03244140ACED93B543136FEEDF802165F814D09F45C7E2A4618468442516F4712A23B1D3332D5DBDBAE830337F39F259C90F"
4795
4795
  }
4796
4796
  },
4797
4797
  {
4798
- "binary": "120025220040000024000000026140000000000003E8684000000000000001601640000000000000197321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0744023BAFE5BFE58E7BF0B02B5875983D007C10796C8E62A190BF688EBE5D8A104DAD2DE7EDE995FE2E494883FD8140F38E22E3376A2F49C50EFCAA00C7499A4690E811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4798
+ "binary": "1200252200400000240015DAE16140000000000003E868400000000000000A601B40000000000000197321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8744045BCEE5A12E5F5F1FB085A24F2F7FD962BBCB0D89A44A5319E3F7E3799E1870341880B6F684132971DDDF2E6B15356B3F407962D6D4E8DE10989F3B16E3CB90D8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4799
4799
  "json": {
4800
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4800
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4801
4801
  "TransactionType": "AMMWithdraw",
4802
4802
  "Asset": {"currency": "XRP"},
4803
4803
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4804
4804
  "Amount": "1000",
4805
4805
  "EPrice": "25",
4806
- "Fee": "1",
4806
+ "Fee": "10",
4807
4807
  "Flags": 4194304,
4808
- "Sequence": 2,
4809
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4810
- "TxnSignature": "23BAFE5BFE58E7BF0B02B5875983D007C10796C8E62A190BF688EBE5D8A104DAD2DE7EDE995FE2E494883FD8140F38E22E3376A2F49C50EFCAA00C7499A4690E"
4808
+ "Sequence": 1432289,
4809
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4810
+ "TxnSignature": "45BCEE5A12E5F5F1FB085A24F2F7FD962BBCB0D89A44A5319E3F7E3799E1870341880B6F684132971DDDF2E6B15356B3F407962D6D4E8DE10989F3B16E3CB90D"
4811
4811
  }
4812
4812
  },
4813
4813
  {
4814
- "binary": "120027220000000024000000026840000000000000016CD4C8E1BC9BF04000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0486DD4CC6F3B40B6C000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D074406B2A1548E6DC14681356C27CCBE7072CAB2AD8C72D0D7A045916FB0E0DBE6BF71A429CC519E9200172829D3EEF79100899D3A8710C1C3C1A2B664FD64086AD0A811462D4D845D20B4F09CFEA8BB4C01063D99FC9673EF01AE01C81149A91957F8F16BC57F3F200CD8C98375BF1791586E1F10318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4814
+ "binary": "1200272200000000240015DAE168400000000000000A6CD4C8E1BC9BF04000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0486DD4CC6F3B40B6C000B3813FCAB4EE68B3D0D735D6849465A9113EE048B3813FCAB4EE68B3D0D735D6849465A9113EE0487321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440F8EAAFB5EC1A69275167589969F0B9764BACE6BC8CC81482C2FC5ACCE691EDBD0D88D141137B1253BB1B9AC90A8A52CB37F5B6F7E1028B06DD06F91BE06F5A0F8114F92F27CC5EE2F2760278FE096D0CBE32BDD3653AF019E01B81149A91957F8F16BC57F3F200CD8C98375BF1791586E1F10318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4815
4815
  "json": {
4816
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4816
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4817
4817
  "TransactionType": "AMMBid",
4818
4818
  "Asset": {"currency": "XRP"},
4819
4819
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4820
4820
  "AuthAccounts": [{"AuthAccount": {"Account": "rEaHTti4HZsMBpxTAF4ncWxkcdqDh1h6P7"}}],
4821
4821
  "BidMax": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "35"},
4822
4822
  "BidMin": {"currency": "B3813FCAB4EE68B3D0D735D6849465A9113EE048", "issuer": "rH438jEAzTs5PYtV6CHZqpDpwCKQmPW9Cg", "value": "25"},
4823
- "Fee": "1",
4823
+ "Fee": "10",
4824
4824
  "Flags": 0,
4825
- "Sequence": 2,
4826
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4827
- "TxnSignature": "6B2A1548E6DC14681356C27CCBE7072CAB2AD8C72D0D7A045916FB0E0DBE6BF71A429CC519E9200172829D3EEF79100899D3A8710C1C3C1A2B664FD64086AD0A"
4825
+ "Sequence": 1432289,
4826
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4827
+ "TxnSignature": "F8EAAFB5EC1A69275167589969F0B9764BACE6BC8CC81482C2FC5ACCE691EDBD0D88D141137B1253BB1B9AC90A8A52CB37F5B6F7E1028B06DD06F91BE06F5A0F"
4828
4828
  }
4829
4829
  },
4830
4830
  {
4831
- "binary": "1200261500EA220000000024000000026840000000000000017321ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0744072767CF9A0F5E9C9DA6BBB6E84905B0ECDF122D3E2D730843EFD377521E8E73664AD809D0A54E8C75CD1735ACB64E310BB49FDED10913FA150B8C006D4ACEC00811462D4D845D20B4F09CFEA8BB4C01063D99FC9673E0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4831
+ "binary": "1200261500EA2200000000240015DAE168400000000000000A7321ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B87440BC2F6E76969E3747E9BDE183C97573B086212F09D5387460E6EE2F32953E85EAEB9618FBBEF077276E30E59D619FCF7C7BDCDDDD9EB94D7CE1DD5CE9246B21078114F92F27CC5EE2F2760278FE096D0CBE32BDD3653A0318000000000000000000000000000000000000000004180000000000000000000000004554480000000000FBEF9A3A2B814E807745FA3D9C32FFD155FA2E8C",
4832
4832
  "json": {
4833
- "Account": "rwr2UWxNwoBdysPSiDDraTQjAQKZEeZAcV",
4833
+ "Account": "rP5ZkB5RZQaECsSVR4DeSFK4fAw52BYtbw",
4834
4834
  "TransactionType": "AMMVote",
4835
4835
  "Asset": {"currency": "XRP"},
4836
4836
  "Asset2": {"currency": "ETH", "issuer": "rPyfep3gcLzkosKC9XiE77Y8DZWG6iWDT9"},
4837
4837
  "TradingFee": 234,
4838
- "Fee": "1",
4838
+ "Fee": "10",
4839
4839
  "Flags": 0,
4840
- "Sequence": 2,
4841
- "SigningPubKey": "ED8A00C1D29E762266576408B08D583B987673550655F930635678B436D5CDF7D0",
4842
- "TxnSignature": "72767CF9A0F5E9C9DA6BBB6E84905B0ECDF122D3E2D730843EFD377521E8E73664AD809D0A54E8C75CD1735ACB64E310BB49FDED10913FA150B8C006D4ACEC00"
4840
+ "Sequence": 1432289,
4841
+ "SigningPubKey": "ED7453D2572A2104E7B266A45888C53F503CEB1F11DC4BB3710EB2995238EC65B8",
4842
+ "TxnSignature": "BC2F6E76969E3747E9BDE183C97573B086212F09D5387460E6EE2F32953E85EAEB9618FBBEF077276E30E59D619FCF7C7BDCDDDD9EB94D7CE1DD5CE9246B2107"
4843
4843
  }
4844
4844
  }
4845
4845
  ],
@@ -4,6 +4,9 @@ const {
4
4
  encodeForSigningClaim,
5
5
  encodeForMultisigning,
6
6
  } = require('../src')
7
+ const { XrplDefinitions } = require('../src/enums/xrpl-definitions')
8
+
9
+ const normalDefinitions = require('../src/enums/definitions.json')
7
10
 
8
11
  const tx_json = {
9
12
  Account: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
@@ -67,6 +70,53 @@ describe('Signing data', function () {
67
70
  )
68
71
  })
69
72
 
73
+ test('can create single signing blobs with modified type', function () {
74
+ const customPaymentDefinitions = JSON.parse(
75
+ JSON.stringify(normalDefinitions),
76
+ )
77
+ customPaymentDefinitions.TRANSACTION_TYPES.Payment = 31
78
+
79
+ const newDefs = new XrplDefinitions(customPaymentDefinitions)
80
+ const actual = encodeForSigning(tx_json, newDefs)
81
+ expect(actual).toBe(
82
+ [
83
+ '53545800', // signingPrefix
84
+ // TransactionType
85
+ '12',
86
+ '001F',
87
+ // Flags
88
+ '22',
89
+ '80000000',
90
+ // Sequence
91
+ '24',
92
+ '00000001',
93
+ // Amount
94
+ '61',
95
+ // native amount
96
+ '40000000000003E8',
97
+ // Fee
98
+ '68',
99
+ // native amount
100
+ '400000000000000A',
101
+ // SigningPubKey
102
+ '73',
103
+ // VLLength
104
+ '21',
105
+ 'ED5F5AC8B98974A3CA843326D9B88CEBD0560177B973EE0B149F782CFAA06DC66A',
106
+ // Account
107
+ '81',
108
+ // VLLength
109
+ '14',
110
+ '5B812C9D57731E27A2DA8B1830195F88EF32A3B6',
111
+ // Destination
112
+ '83',
113
+ // VLLength
114
+ '14',
115
+ 'B5F762798A53D543A014CAF8B297CFF8F2F937E8',
116
+ ].join(''),
117
+ )
118
+ })
119
+
70
120
  test('can fail gracefully for invalid TransactionType', function () {
71
121
  const invalidTransactionType = {
72
122
  ...tx_json,
@@ -78,7 +128,7 @@ describe('Signing data', function () {
78
128
 
79
129
  test('can create multi signing blobs', function () {
80
130
  const signingAccount = 'rJZdUusLDtY9NEsGea7ijqhVrXv98rYBYN'
81
- const signingJson = Object.assign({}, tx_json, { SigningPubKey: '' })
131
+ const signingJson = { ...tx_json, SigningPubKey: '' }
82
132
  const actual = encodeForMultisigning(signingJson, signingAccount)
83
133
  expect(actual).toBe(
84
134
  [
@@ -120,6 +170,58 @@ describe('Signing data', function () {
120
170
  ].join(''),
121
171
  )
122
172
  })
173
+
174
+ test('can create multi signing blobs with custom definitions', function () {
175
+ const customPaymentDefinitions = JSON.parse(
176
+ JSON.stringify(normalDefinitions),
177
+ )
178
+ customPaymentDefinitions.TRANSACTION_TYPES.Payment = 31
179
+
180
+ const newDefs = new XrplDefinitions(customPaymentDefinitions)
181
+ const signingAccount = 'rJZdUusLDtY9NEsGea7ijqhVrXv98rYBYN'
182
+ const signingJson = { ...tx_json, SigningPubKey: '' }
183
+ const actual = encodeForMultisigning(signingJson, signingAccount, newDefs)
184
+ expect(actual).toBe(
185
+ [
186
+ '534D5400', // signingPrefix
187
+ // TransactionType
188
+ '12',
189
+ '001F',
190
+ // Flags
191
+ '22',
192
+ '80000000',
193
+ // Sequence
194
+ '24',
195
+ '00000001',
196
+ // Amount
197
+ '61',
198
+ // native amount
199
+ '40000000000003E8',
200
+ // Fee
201
+ '68',
202
+ // native amount
203
+ '400000000000000A',
204
+ // SigningPubKey
205
+ '73',
206
+ // VLLength
207
+ '00',
208
+ // '',
209
+ // Account
210
+ '81',
211
+ // VLLength
212
+ '14',
213
+ '5B812C9D57731E27A2DA8B1830195F88EF32A3B6',
214
+ // Destination
215
+ '83',
216
+ // VLLength
217
+ '14',
218
+ 'B5F762798A53D543A014CAF8B297CFF8F2F937E8',
219
+ // signingAccount suffix
220
+ 'C0A5ABEF242802EFED4B041E8F2D4A8CC86AE3D1',
221
+ ].join(''),
222
+ )
223
+ })
224
+
123
225
  test('can create native claim blob', function () {
124
226
  const channel =
125
227
  '43904CBFCDCEC530B4037871F86EE90BF799DF8D2E0EA564BC8A3F332E4F5FB1'