@ledgerhq/coin-xrp 0.9.2 → 1.0.0-next.0

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 (144) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +11 -0
  3. package/lib/api/index.d.ts.map +1 -1
  4. package/lib/api/index.integ.test.js +35 -36
  5. package/lib/api/index.integ.test.js.map +1 -1
  6. package/lib/api/index.js +65 -50
  7. package/lib/api/index.js.map +1 -1
  8. package/lib/api/index.test.js +66 -44
  9. package/lib/api/index.test.js.map +1 -1
  10. package/lib/bridge/broadcast.js +3 -12
  11. package/lib/bridge/broadcast.js.map +1 -1
  12. package/lib/bridge/estimateMaxSpendable.js +9 -14
  13. package/lib/bridge/estimateMaxSpendable.js.map +1 -1
  14. package/lib/bridge/getTransactionStatus.js +4 -13
  15. package/lib/bridge/getTransactionStatus.js.map +1 -1
  16. package/lib/bridge/prepareTransaction.js +4 -13
  17. package/lib/bridge/prepareTransaction.js.map +1 -1
  18. package/lib/bridge/signOperation.js +60 -68
  19. package/lib/bridge/signOperation.js.map +1 -1
  20. package/lib/bridge/synchronization.js +32 -45
  21. package/lib/bridge/synchronization.js.map +1 -1
  22. package/lib/bridge/synchronization.test.js +21 -17
  23. package/lib/bridge/synchronization.test.js.map +1 -1
  24. package/lib/bridge/transaction.js +16 -4
  25. package/lib/bridge/transaction.js.map +1 -1
  26. package/lib/logic/broadcast.js +8 -19
  27. package/lib/logic/broadcast.js.map +1 -1
  28. package/lib/logic/broadcast.test.js +6 -15
  29. package/lib/logic/broadcast.test.js.map +1 -1
  30. package/lib/logic/combine.js +2 -2
  31. package/lib/logic/combine.js.map +1 -1
  32. package/lib/logic/craftTransaction.js +28 -34
  33. package/lib/logic/craftTransaction.js.map +1 -1
  34. package/lib/logic/craftTransaction.test.js +8 -17
  35. package/lib/logic/craftTransaction.test.js.map +1 -1
  36. package/lib/logic/estimateFees.js +17 -28
  37. package/lib/logic/estimateFees.js.map +1 -1
  38. package/lib/logic/estimateFees.test.js +10 -19
  39. package/lib/logic/estimateFees.test.js.map +1 -1
  40. package/lib/logic/getBalance.js +3 -14
  41. package/lib/logic/getBalance.js.map +1 -1
  42. package/lib/logic/getBalance.test.js +4 -13
  43. package/lib/logic/getBalance.test.js.map +1 -1
  44. package/lib/logic/lastBlock.js +7 -18
  45. package/lib/logic/lastBlock.js.map +1 -1
  46. package/lib/logic/listOperations.d.ts +15 -5
  47. package/lib/logic/listOperations.d.ts.map +1 -1
  48. package/lib/logic/listOperations.js +84 -71
  49. package/lib/logic/listOperations.js.map +1 -1
  50. package/lib/logic/listOperations.test.js +66 -62
  51. package/lib/logic/listOperations.test.js.map +1 -1
  52. package/lib/logic/utils.js +9 -18
  53. package/lib/logic/utils.js.map +1 -1
  54. package/lib/logic/utils.test.js +9 -18
  55. package/lib/logic/utils.test.js.map +1 -1
  56. package/lib/network/index.d.ts +6 -3
  57. package/lib/network/index.d.ts.map +1 -1
  58. package/lib/network/index.js +40 -48
  59. package/lib/network/index.js.map +1 -1
  60. package/lib/network/index.test.js +9 -18
  61. package/lib/network/index.test.js.map +1 -1
  62. package/lib/network/types.d.ts +5 -0
  63. package/lib/network/types.d.ts.map +1 -1
  64. package/lib/network/types.js.map +1 -1
  65. package/lib/signer/getAddress.js +3 -12
  66. package/lib/signer/getAddress.js.map +1 -1
  67. package/lib/test/cli.js +5 -1
  68. package/lib/test/cli.js.map +1 -1
  69. package/lib-es/api/index.d.ts.map +1 -1
  70. package/lib-es/api/index.integ.test.js +35 -36
  71. package/lib-es/api/index.integ.test.js.map +1 -1
  72. package/lib-es/api/index.js +65 -50
  73. package/lib-es/api/index.js.map +1 -1
  74. package/lib-es/api/index.test.js +66 -44
  75. package/lib-es/api/index.test.js.map +1 -1
  76. package/lib-es/bridge/broadcast.js +3 -12
  77. package/lib-es/bridge/broadcast.js.map +1 -1
  78. package/lib-es/bridge/estimateMaxSpendable.js +9 -14
  79. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
  80. package/lib-es/bridge/getTransactionStatus.js +4 -13
  81. package/lib-es/bridge/getTransactionStatus.js.map +1 -1
  82. package/lib-es/bridge/prepareTransaction.js +4 -13
  83. package/lib-es/bridge/prepareTransaction.js.map +1 -1
  84. package/lib-es/bridge/signOperation.js +60 -68
  85. package/lib-es/bridge/signOperation.js.map +1 -1
  86. package/lib-es/bridge/synchronization.js +32 -45
  87. package/lib-es/bridge/synchronization.js.map +1 -1
  88. package/lib-es/bridge/synchronization.test.js +21 -17
  89. package/lib-es/bridge/synchronization.test.js.map +1 -1
  90. package/lib-es/bridge/transaction.js +16 -4
  91. package/lib-es/bridge/transaction.js.map +1 -1
  92. package/lib-es/logic/broadcast.js +8 -19
  93. package/lib-es/logic/broadcast.js.map +1 -1
  94. package/lib-es/logic/broadcast.test.js +6 -15
  95. package/lib-es/logic/broadcast.test.js.map +1 -1
  96. package/lib-es/logic/combine.js +2 -2
  97. package/lib-es/logic/combine.js.map +1 -1
  98. package/lib-es/logic/craftTransaction.js +28 -34
  99. package/lib-es/logic/craftTransaction.js.map +1 -1
  100. package/lib-es/logic/craftTransaction.test.js +8 -17
  101. package/lib-es/logic/craftTransaction.test.js.map +1 -1
  102. package/lib-es/logic/estimateFees.js +17 -28
  103. package/lib-es/logic/estimateFees.js.map +1 -1
  104. package/lib-es/logic/estimateFees.test.js +10 -19
  105. package/lib-es/logic/estimateFees.test.js.map +1 -1
  106. package/lib-es/logic/getBalance.js +3 -14
  107. package/lib-es/logic/getBalance.js.map +1 -1
  108. package/lib-es/logic/getBalance.test.js +4 -13
  109. package/lib-es/logic/getBalance.test.js.map +1 -1
  110. package/lib-es/logic/lastBlock.js +7 -18
  111. package/lib-es/logic/lastBlock.js.map +1 -1
  112. package/lib-es/logic/listOperations.d.ts +15 -5
  113. package/lib-es/logic/listOperations.d.ts.map +1 -1
  114. package/lib-es/logic/listOperations.js +84 -71
  115. package/lib-es/logic/listOperations.js.map +1 -1
  116. package/lib-es/logic/listOperations.test.js +66 -62
  117. package/lib-es/logic/listOperations.test.js.map +1 -1
  118. package/lib-es/logic/utils.js +9 -18
  119. package/lib-es/logic/utils.js.map +1 -1
  120. package/lib-es/logic/utils.test.js +9 -18
  121. package/lib-es/logic/utils.test.js.map +1 -1
  122. package/lib-es/network/index.d.ts +6 -3
  123. package/lib-es/network/index.d.ts.map +1 -1
  124. package/lib-es/network/index.js +39 -47
  125. package/lib-es/network/index.js.map +1 -1
  126. package/lib-es/network/index.test.js +9 -18
  127. package/lib-es/network/index.test.js.map +1 -1
  128. package/lib-es/network/types.d.ts +5 -0
  129. package/lib-es/network/types.d.ts.map +1 -1
  130. package/lib-es/network/types.js.map +1 -1
  131. package/lib-es/signer/getAddress.js +3 -12
  132. package/lib-es/signer/getAddress.js.map +1 -1
  133. package/lib-es/test/cli.js +5 -1
  134. package/lib-es/test/cli.js.map +1 -1
  135. package/package.json +6 -5
  136. package/src/api/index.integ.test.ts +12 -6
  137. package/src/api/index.test.ts +119 -75
  138. package/src/api/index.ts +62 -10
  139. package/src/bridge/synchronization.test.ts +31 -15
  140. package/src/logic/listOperations.test.ts +104 -85
  141. package/src/logic/listOperations.ts +47 -34
  142. package/src/network/index.ts +21 -8
  143. package/src/network/types.ts +6 -0
  144. package/tsconfig.json +0 -1
@@ -1,4 +1,4 @@
1
1
 
2
2
  > @ledgerhq/coin-xrp@0.9.2 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-xrp
3
- > tsc && tsc -m ES6 --outDir lib-es
3
+ > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @ledgerhq/coin-xrp
2
2
 
3
+ ## 1.0.0-next.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#9092](https://github.com/LedgerHQ/ledger-live/pull/9092) [`5e18866`](https://github.com/LedgerHQ/ledger-live/commit/5e18866320b843632699659ee66f6c410c108c1e) Thanks [@jprudent](https://github.com/jprudent)! - Change coin-framework/api types for list operations
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [[`5e18866`](https://github.com/LedgerHQ/ledger-live/commit/5e18866320b843632699659ee66f6c410c108c1e)]:
12
+ - @ledgerhq/coin-framework@1.0.0-next.0
13
+
3
14
  ## 0.9.2
4
15
 
5
16
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EAIJ,MAAM,oCAAoC,CAAC;AAC5C,OAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAYvD,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAYhD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EAIJ,MAAM,oCAAoC,CAAC;AAE5C,OAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAavD,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAYhD"}
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  const _1 = require(".");
13
4
  const ripple_binary_codec_1 = require("ripple-binary-codec");
@@ -15,6 +6,7 @@ const ripple_keypairs_1 = require("ripple-keypairs");
15
6
  describe("Xrp Api", () => {
16
7
  let module;
17
8
  const address = "rh1HPuRVsYYvThxG2Bs1MfjmrVC73S16Fb";
9
+ const bigAddress = "rUxSkt6hQpWxXQwTNRUCYYRQ7BC2yRA3F8"; // An account with more that 4000 txs
18
10
  const emptyAddress = "rKtXXTVno77jhu6tto1MAXjepyuaKaLcqB"; // Account with no transaction (at the time of this writing)
19
11
  const xrpPubKey = process.env["PUB_KEY"];
20
12
  const xrpSecretKey = process.env["SECRET_KEY"];
@@ -22,19 +14,19 @@ describe("Xrp Api", () => {
22
14
  module = (0, _1.createApi)({ node: "https://s.altnet.rippletest.net:51234" });
23
15
  });
24
16
  describe("estimateFees", () => {
25
- it("returns a default value", () => __awaiter(void 0, void 0, void 0, function* () {
17
+ it("returns a default value", async () => {
26
18
  // Given
27
19
  const amount = BigInt(100);
28
20
  // When
29
- const result = yield module.estimateFees(address, amount);
21
+ const result = await module.estimateFees(address, amount);
30
22
  // Then
31
23
  expect(result).toEqual(BigInt(10));
32
- }));
24
+ });
33
25
  });
34
26
  describe("listOperations", () => {
35
- it("returns a list regarding address parameter", () => __awaiter(void 0, void 0, void 0, function* () {
27
+ it("returns a list regarding address parameter", async () => {
36
28
  // When
37
- const [tx, _] = yield module.listOperations(address, { limit: 200 });
29
+ const [tx, _] = await module.listOperations(address, { minHeight: 200 });
38
30
  // Then
39
31
  expect(tx.length).toBe(200);
40
32
  tx.forEach(operation => {
@@ -42,45 +34,49 @@ describe("Xrp Api", () => {
42
34
  const isSenderOrReceipt = operation.senders.includes(address) || operation.recipients.includes(address);
43
35
  expect(isSenderOrReceipt).toBeTruthy();
44
36
  });
45
- }));
46
- it("returns paginated operations", () => __awaiter(void 0, void 0, void 0, function* () {
37
+ });
38
+ it("returns all operations", async () => {
47
39
  // When
48
- const [tx, idx] = yield module.listOperations(address, { limit: 200 });
49
- const [tx2, _] = yield module.listOperations(address, { limit: 200, start: idx });
50
- tx.push(...tx2);
40
+ const [tx, _] = await module.listOperations(bigAddress, { minHeight: 0 });
51
41
  // Then
52
42
  const checkSet = new Set(tx.map(elt => elt.hash));
53
43
  expect(checkSet.size).toEqual(tx.length);
54
- }));
44
+ // the first transaction is returned
45
+ expect(tx[0].block.height).toEqual(73126713);
46
+ expect(tx[0].hash.toUpperCase).toEqual("0FC3792449E5B1E431D45E3606017D10EC1FECC8EDF988A98E36B8FE0C33ACAE");
47
+ // 200 is the default XRP explorer hard limit,
48
+ // so here we are checking that this limit is bypassed
49
+ expect(tx.length).toBeGreaterThan(200);
50
+ });
55
51
  });
56
52
  describe("lastBlock", () => {
57
- it("returns last block info", () => __awaiter(void 0, void 0, void 0, function* () {
53
+ it("returns last block info", async () => {
58
54
  // When
59
- const result = yield module.lastBlock();
55
+ const result = await module.lastBlock();
60
56
  // Then
61
57
  expect(result.hash).toBeDefined();
62
58
  expect(result.height).toBeDefined();
63
59
  expect(result.time).toBeInstanceOf(Date);
64
- }));
60
+ });
65
61
  });
66
62
  describe("getBalance", () => {
67
- it("returns an amount above 0 when address has transactions", () => __awaiter(void 0, void 0, void 0, function* () {
63
+ it("returns an amount above 0 when address has transactions", async () => {
68
64
  // When
69
- const result = yield module.getBalance(address);
65
+ const result = await module.getBalance(address);
70
66
  // Then
71
67
  expect(result).toBeGreaterThan(BigInt(0));
72
- }));
73
- it("returns 0 when address has no transaction", () => __awaiter(void 0, void 0, void 0, function* () {
68
+ });
69
+ it("returns 0 when address has no transaction", async () => {
74
70
  // When
75
- const result = yield module.getBalance(emptyAddress);
71
+ const result = await module.getBalance(emptyAddress);
76
72
  // Then
77
73
  expect(result).toBe(BigInt(0));
78
- }));
74
+ });
79
75
  });
80
76
  describe("craftTransaction", () => {
81
- it("returns a raw transaction", () => __awaiter(void 0, void 0, void 0, function* () {
77
+ it("returns a raw transaction", async () => {
82
78
  // When
83
- const result = yield module.craftTransaction(address, {
79
+ const result = await module.craftTransaction(address, {
84
80
  type: "send",
85
81
  recipient: "rKRtUG15iBsCQRgrkeUEg5oX4Ae2zWZ89z",
86
82
  amount: BigInt(10),
@@ -89,20 +85,23 @@ describe("Xrp Api", () => {
89
85
  // Then
90
86
  expect(result.slice(0, 34)).toEqual("12000022800000002400025899201B002D");
91
87
  expect(result.slice(38)).toEqual("61400000000000000A68400000000000000181142A6ADC782DAFDDB464E434B684F01416B8A33B208314CA26FB6B0EF6859436C2037BA0A9913208A59B98");
92
- }));
88
+ });
93
89
  });
94
90
  // To enable this test, you need to fill an `.env` file at the root of this package. Example can be found in `.env.integ.test.example`.
95
91
  // The value hardcoded here depends on the value filled in the `.env` file.
96
92
  describe.skip("combine", () => {
97
- it("returns a signed raw transaction", () => __awaiter(void 0, void 0, void 0, function* () {
93
+ it("returns a signed raw transaction", async () => {
98
94
  // Given
99
95
  const rawTx = "120000228000000024001BCDA6201B001F018161400000000000000A6840000000000000018114CF30F590D7A9067B2604D80D46090FBF342EBE988314CA26FB6B0EF6859436C2037BA0A9913208A59B98";
100
- const signedTx = (0, ripple_keypairs_1.sign)((0, ripple_binary_codec_1.encodeForSigning)(Object.assign(Object.assign({}, (0, ripple_binary_codec_1.decode)(rawTx)), { SigningPubKey: xrpPubKey })), xrpSecretKey);
96
+ const signedTx = (0, ripple_keypairs_1.sign)((0, ripple_binary_codec_1.encodeForSigning)({
97
+ ...(0, ripple_binary_codec_1.decode)(rawTx),
98
+ SigningPubKey: xrpPubKey,
99
+ }), xrpSecretKey);
101
100
  // When
102
- const result = yield module.combine(rawTx, signedTx);
101
+ const result = await module.combine(rawTx, signedTx);
103
102
  // Then
104
103
  expect(result).toEqual("120000228000000024001BCDA6201B001F018161400000000000000A68400000000000000174473045022100D3B9B37F40961A8DBDE48535F9EF333E87F9D98BE90F7141E133541874826BDB0220065E9CA4D218F16087656BC30D66672F6103B03717A59FFC04C837A2157CE47C8114CF30F590D7A9067B2604D80D46090FBF342EBE988314CA26FB6B0EF6859436C2037BA0A9913208A59B98");
105
- }));
104
+ });
106
105
  });
107
106
  });
108
107
  //# sourceMappingURL=index.integ.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
package/lib/api/index.js CHANGED
@@ -1,33 +1,14 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
21
- };
22
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
23
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
6
  exports.createApi = createApi;
7
+ const logs_1 = require("@ledgerhq/logs");
27
8
  const config_1 = __importDefault(require("../config"));
28
9
  const logic_1 = require("../logic");
29
10
  function createApi(config) {
30
- config_1.default.setCoinConfig(() => (Object.assign(Object.assign({}, config), { status: { type: "active" } })));
11
+ config_1.default.setCoinConfig(() => ({ ...config, status: { type: "active" } }));
31
12
  return {
32
13
  broadcast: logic_1.broadcast,
33
14
  combine: logic_1.combine,
@@ -38,36 +19,70 @@ function createApi(config) {
38
19
  listOperations: operations,
39
20
  };
40
21
  }
41
- function craft(address, transaction) {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- const nextSequenceNumber = yield (0, logic_1.getNextValidSequence)(address);
44
- const tx = yield (0, logic_1.craftTransaction)({ address, nextSequenceNumber }, transaction);
45
- return tx.serializedTransaction;
46
- });
22
+ async function craft(address, transaction) {
23
+ const nextSequenceNumber = await (0, logic_1.getNextValidSequence)(address);
24
+ const tx = await (0, logic_1.craftTransaction)({ address, nextSequenceNumber }, transaction);
25
+ return tx.serializedTransaction;
26
+ }
27
+ async function estimate(_addr, _amount) {
28
+ const fees = await (0, logic_1.estimateFees)();
29
+ return fees.fee;
47
30
  }
48
- function estimate(_addr, _amount) {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- const fees = yield (0, logic_1.estimateFees)();
51
- return fees.fee;
52
- });
31
+ async function operationsFromHeight(address, minHeight) {
32
+ async function fetchNextPage(state) {
33
+ const [operations, apiNextCursor] = await (0, logic_1.listOperations)(address, {
34
+ limit: state.pageSize,
35
+ minHeight: state.minHeight,
36
+ order: "asc",
37
+ });
38
+ const newCurrentIteration = state.currentIteration + 1;
39
+ let continueIteration = true;
40
+ if (apiNextCursor === "") {
41
+ continueIteration = false;
42
+ }
43
+ else if (newCurrentIteration >= state.maxIterations) {
44
+ (0, logs_1.log)("coin:xrp", "(api/operations): max iterations reached", state.maxIterations);
45
+ continueIteration = false;
46
+ }
47
+ const accumulated = state.accumulator.concat(operations);
48
+ return {
49
+ ...state,
50
+ currentIteration: newCurrentIteration,
51
+ continueIterations: continueIteration,
52
+ apiNextCursor: apiNextCursor,
53
+ accumulator: accumulated,
54
+ };
55
+ }
56
+ const firstState = {
57
+ pageSize: 200,
58
+ maxIterations: 10,
59
+ currentIteration: 0,
60
+ minHeight: minHeight,
61
+ continueIterations: true,
62
+ accumulator: [],
63
+ };
64
+ let state = await fetchNextPage(firstState);
65
+ while (state.continueIterations) {
66
+ state = await fetchNextPage(state);
67
+ }
68
+ return [state.accumulator, state.apiNextCursor ?? ""];
53
69
  }
54
- function operations(address_1, _a) {
55
- return __awaiter(this, arguments, void 0, function* (address, { limit, start }) {
56
- const options = { limit: limit };
57
- if (start)
58
- options.minHeight = start;
59
- const [ops, index] = yield (0, logic_1.listOperations)(address, options);
60
- return [
61
- ops.map(op => {
62
- const { simpleType, blockHash, blockTime, blockHeight } = op, rest = __rest(op, ["simpleType", "blockHash", "blockTime", "blockHeight"]);
63
- return Object.assign(Object.assign({}, rest), { block: {
64
- height: blockHeight,
65
- hash: blockHash,
66
- time: blockTime,
67
- } });
68
- }),
69
- index,
70
- ];
71
- });
70
+ async function operations(address, { minHeight }) {
71
+ const [ops, token] = await operationsFromHeight(address, minHeight);
72
+ // TODO token must be implemented properly (waiting ack from the design document)
73
+ return [
74
+ ops.map(op => {
75
+ const { simpleType, blockHash, blockTime, blockHeight, ...rest } = op;
76
+ return {
77
+ ...rest,
78
+ block: {
79
+ height: blockHeight,
80
+ hash: blockHash,
81
+ time: blockTime,
82
+ },
83
+ };
84
+ }),
85
+ token,
86
+ ];
72
87
  }
73
88
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,8BAYC;AAxBD,uDAAuD;AACvD,oCASkB;AAElB,SAAgB,SAAS,CAAC,MAAiB;IACzC,gBAAU,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,iCAAM,MAAM,KAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAG,CAAC,CAAC;IAE5E,OAAO;QACL,SAAS,EAAT,iBAAS;QACT,OAAO,EAAP,eAAO;QACP,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAV,kBAAU;QACV,SAAS,EAAT,iBAAS;QACT,cAAc,EAAE,UAAU;KAC3B,CAAC;AACJ,CAAC;AAED,SAAe,KAAK,CAAC,OAAe,EAAE,WAA2B;;QAC/D,MAAM,kBAAkB,GAAG,MAAM,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,EAAE,GAAG,MAAM,IAAA,wBAAgB,EAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,WAAW,CAAC,CAAC;QAChF,OAAO,EAAE,CAAC,qBAAqB,CAAC;IAClC,CAAC;CAAA;AAED,SAAe,QAAQ,CAAC,KAAa,EAAE,OAAe;;QACpD,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAY,GAAE,CAAC;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CAAA;AAED,SAAe,UAAU;yDACvB,OAAe,EACf,EAAE,KAAK,EAAE,KAAK,EAAc;QAE5B,MAAM,OAAO,GAGT,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACrB,IAAI,KAAK;YAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QACrC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,sBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO;YACL,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACX,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,KAAc,EAAE,EAAX,IAAI,UAAK,EAAE,EAA/D,uDAA0D,CAAK,CAAC;gBACtE,OAAO,gCACF,IAAI,KACP,KAAK,EAAE;wBACL,MAAM,EAAE,WAAW;wBACnB,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,SAAS;qBAChB,GACkB,CAAC;YACxB,CAAC,CAAC;YACF,KAAK;SACN,CAAC;IACJ,CAAC;CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  const logic_1 = require("../logic");
13
4
  const index_1 = require("./index");
@@ -27,24 +18,21 @@ describe("listOperations", () => {
27
18
  mockGetServerInfos.mockClear();
28
19
  mockGetTransactions.mockClear();
29
20
  });
30
- it.each([
31
- {
32
- address: "WHATEVER_ADDRESS",
33
- opSender: "account_addr",
34
- opDestination: "WHATEVER_ADDRESS",
35
- expectedType: "IN",
36
- },
37
- {
38
- address: "WHATEVER_ADDRESS",
39
- opSender: "WHATEVER_ADDRESS",
40
- opDestination: "destination_addr",
41
- expectedType: "OUT",
42
- },
43
- ])("should return the list of operations associated to an account", (_a) => __awaiter(void 0, [_a], void 0, function* ({ address, opSender, opDestination, expectedType }) {
44
- // Givem
45
- const deliveredAmount = 100;
46
- const fee = 10;
47
- mockGetTransactions.mockResolvedValue([
21
+ const defaultMarker = { ledger: 1, seq: 1 };
22
+ function mockNetworkTxs(txs, marker) {
23
+ return {
24
+ account: "account",
25
+ ledger_index_max: 1,
26
+ ledger_index_min: 1,
27
+ limit: 1,
28
+ validated: false,
29
+ transactions: txs,
30
+ marker: marker,
31
+ error: "",
32
+ };
33
+ }
34
+ function givenTxs(fee, deliveredAmount, opSender, opDestination) {
35
+ return [
48
36
  {
49
37
  ledger_hash: "HASH_VALUE_BLOCK",
50
38
  hash: "HASH_VALUE",
@@ -99,21 +87,55 @@ describe("listOperations", () => {
99
87
  Sequence: 1,
100
88
  },
101
89
  },
102
- ]);
90
+ ];
91
+ }
92
+ it("should kill the loop after 10 iterations", async () => {
93
+ const txs = givenTxs(BigInt(10), BigInt(10), "src", "dest");
94
+ // each time it's called it returns a marker, so in theory it would loop forever
95
+ mockGetTransactions.mockResolvedValue(mockNetworkTxs(txs, defaultMarker));
96
+ const [results, _] = await api.listOperations("src", { minHeight: 0 });
97
+ // called 10 times because there is a hard limit of 10 iterations in case something goes wrong
98
+ // with interpretation of the token (bug / explorer api changed ...)
99
+ expect(mockGetServerInfos).toHaveBeenCalledTimes(10);
100
+ expect(mockGetTransactions).toHaveBeenCalledTimes(10);
101
+ expect(results.length).toBe(txs.length * 10);
102
+ });
103
+ it.each([
104
+ {
105
+ address: "WHATEVER_ADDRESS",
106
+ opSender: "account_addr",
107
+ opDestination: "WHATEVER_ADDRESS",
108
+ expectedType: "IN",
109
+ },
110
+ {
111
+ address: "WHATEVER_ADDRESS",
112
+ opSender: "WHATEVER_ADDRESS",
113
+ opDestination: "destination_addr",
114
+ expectedType: "OUT",
115
+ },
116
+ ])(`should return the list of operations associated to an account when expected type is %s`, async ({ address, opSender, opDestination, expectedType }) => {
117
+ // Givem
118
+ const deliveredAmount = BigInt(100);
119
+ const fee = BigInt(10);
120
+ mockGetTransactions.mockResolvedValueOnce(mockNetworkTxs(givenTxs(fee, deliveredAmount, opSender, opDestination), defaultMarker));
121
+ // second call to kill the loop
122
+ mockGetTransactions.mockResolvedValue(mockNetworkTxs([], undefined));
103
123
  // When
104
- const [results, _] = yield api.listOperations(address, { limit: 100 });
124
+ const [results, _] = await api.listOperations(address, { minHeight: 0 });
105
125
  // Then
106
- expect(mockGetServerInfos).toHaveBeenCalledTimes(1);
107
- expect(mockGetTransactions).toHaveBeenCalledTimes(1);
126
+ // called twice because the marker is set the first time
127
+ expect(mockGetServerInfos).toHaveBeenCalledTimes(2);
128
+ expect(mockGetTransactions).toHaveBeenCalledTimes(2);
108
129
  // if expectedType is "OUT", compute value with fees (i.e. delivered_amount + Fee)
109
- const expectedValue = expectedType === "IN" ? BigInt(deliveredAmount) : BigInt(deliveredAmount + fee);
130
+ const expectedValue = expectedType === "IN" ? deliveredAmount : deliveredAmount + fee;
131
+ // the order is reversed so that the result is always sorted by newest tx first element of the list
110
132
  expect(results).toEqual([
111
133
  {
112
134
  hash: "HASH_VALUE",
113
135
  address,
114
136
  type: "Payment",
115
137
  value: expectedValue,
116
- fee: BigInt(10),
138
+ fee: fee,
117
139
  block: {
118
140
  hash: "HASH_VALUE_BLOCK",
119
141
  height: 1,
@@ -123,13 +145,21 @@ describe("listOperations", () => {
123
145
  recipients: [opDestination],
124
146
  date: new Date(1000000 + logic_1.RIPPLE_EPOCH * 1000),
125
147
  transactionSequenceNumber: 1,
148
+ details: {
149
+ memos: [
150
+ {
151
+ type: "687474703a2f2f6578616d706c652e636f6d2f6d656d6f2f67656e65726963",
152
+ data: "72656e74",
153
+ },
154
+ ],
155
+ },
126
156
  },
127
157
  {
128
158
  hash: "HASH_VALUE",
129
159
  address,
130
160
  type: "Payment",
131
161
  value: expectedValue,
132
- fee: BigInt(10),
162
+ fee: fee,
133
163
  block: {
134
164
  hash: "HASH_VALUE_BLOCK",
135
165
  height: 1,
@@ -148,7 +178,7 @@ describe("listOperations", () => {
148
178
  address,
149
179
  type: "Payment",
150
180
  value: expectedValue,
151
- fee: BigInt(10),
181
+ fee: fee,
152
182
  block: {
153
183
  hash: "HASH_VALUE_BLOCK",
154
184
  height: 1,
@@ -158,16 +188,8 @@ describe("listOperations", () => {
158
188
  recipients: [opDestination],
159
189
  date: new Date(1000000 + logic_1.RIPPLE_EPOCH * 1000),
160
190
  transactionSequenceNumber: 1,
161
- details: {
162
- memos: [
163
- {
164
- type: "687474703a2f2f6578616d706c652e636f6d2f6d656d6f2f67656e65726963",
165
- data: "72656e74",
166
- },
167
- ],
168
- },
169
191
  },
170
192
  ]);
171
- }));
193
+ });
172
194
  });
173
195
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,11 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.broadcast = void 0;
13
4
  const operation_1 = require("@ledgerhq/coin-framework/operation");
14
5
  const logic_1 = require("../logic");
15
- const broadcast = (_a) => __awaiter(void 0, [_a], void 0, function* ({ signedOperation: { signature, operation }, }) {
16
- const hash = yield (0, logic_1.broadcast)(signature);
6
+ const broadcast = async ({ signedOperation: { signature, operation }, }) => {
7
+ const hash = await (0, logic_1.broadcast)(signature);
17
8
  return (0, operation_1.patchOperationWithHash)(operation, hash);
18
- });
9
+ };
19
10
  exports.broadcast = broadcast;
20
11
  //# sourceMappingURL=broadcast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,kEAA4E;AAC5E,oCAAuD;AAGhD,MAAM,SAAS,GAA4C,KAE/D,EAAE,4CAFoE,EACvE,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAC1C;IACC,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,IAAA,kCAAsB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAA,CAAC;AALW,QAAA,SAAS,aAKpB"}
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":";;;AACA,kEAA4E;AAC5E,oCAAuD;AAGhD,MAAM,SAAS,GAA4C,KAAK,EAAE,EACvE,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAC1C,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,IAAA,kCAAsB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC;AALW,QAAA,SAAS,aAKpB"}
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -19,13 +10,17 @@ const abandonseed_1 = require("@ledgerhq/cryptoassets/abandonseed");
19
10
  const getTransactionStatus_1 = require("./getTransactionStatus");
20
11
  const prepareTransaction_1 = require("./prepareTransaction");
21
12
  const createTransaction_1 = require("./createTransaction");
22
- const estimateMaxSpendable = (_a) => __awaiter(void 0, [_a], void 0, function* ({ account, parentAccount, transaction, }) {
13
+ const estimateMaxSpendable = async ({ account, parentAccount, transaction, }) => {
23
14
  const mainAccount = (0, index_1.getMainAccount)(account, parentAccount);
24
- const newTransaction = yield (0, prepareTransaction_1.prepareTransaction)(mainAccount, Object.assign(Object.assign(Object.assign({}, (0, createTransaction_1.createTransaction)(account)), transaction), { recipient: (transaction === null || transaction === void 0 ? void 0 : transaction.recipient) || (0, abandonseed_1.getAbandonSeedAddress)("ripple"),
15
+ const newTransaction = await (0, prepareTransaction_1.prepareTransaction)(mainAccount, {
16
+ ...(0, createTransaction_1.createTransaction)(account),
17
+ ...transaction,
18
+ recipient: transaction?.recipient || (0, abandonseed_1.getAbandonSeedAddress)("ripple"),
25
19
  // public testing seed abandonx11,about
26
- amount: new bignumber_js_1.default(0) }));
27
- const status = yield (0, getTransactionStatus_1.getTransactionStatus)(mainAccount, newTransaction);
20
+ amount: new bignumber_js_1.default(0),
21
+ });
22
+ const status = await (0, getTransactionStatus_1.getTransactionStatus)(mainAccount, newTransaction);
28
23
  return bignumber_js_1.default.max(0, account.spendableBalance.minus(status.estimatedFees));
29
- });
24
+ };
30
25
  exports.estimateMaxSpendable = estimateMaxSpendable;
31
26
  //# sourceMappingURL=estimateMaxSpendable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gEAAqC;AAErC,kEAAwE;AACxE,oEAA2E;AAC3E,iEAA8D;AAC9D,6DAA0D;AAC1D,2DAAwD;AAGjD,MAAM,oBAAoB,GAAuD,KAIrF,EAAE,4CAJ0F,EAC7F,OAAO,EACP,aAAa,EACb,WAAW,GACZ;IACC,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,MAAM,IAAA,uCAAkB,EAAC,WAAW,gDACtD,IAAA,qCAAiB,EAAC,OAAO,CAAC,GAC1B,WAAW,KACd,SAAS,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,KAAI,IAAA,mCAAqB,EAAC,QAAQ,CAAC;QACpE,uCAAuC;QACvC,MAAM,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC,IACxB,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,IAAA,2CAAoB,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACvE,OAAO,sBAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChF,CAAC,CAAA,CAAC;AAfW,QAAA,oBAAoB,wBAe/B"}
1
+ {"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAErC,kEAAwE;AACxE,oEAA2E;AAC3E,iEAA8D;AAC9D,6DAA0D;AAC1D,2DAAwD;AAGjD,MAAM,oBAAoB,GAAuD,KAAK,EAAE,EAC7F,OAAO,EACP,aAAa,EACb,WAAW,GACZ,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,MAAM,IAAA,uCAAkB,EAAC,WAAW,EAAE;QAC3D,GAAG,IAAA,qCAAiB,EAAC,OAAO,CAAC;QAC7B,GAAG,WAAW;QACd,SAAS,EAAE,WAAW,EAAE,SAAS,IAAI,IAAA,mCAAqB,EAAC,QAAQ,CAAC;QACpE,uCAAuC;QACvC,MAAM,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;KACzB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,IAAA,2CAAoB,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACvE,OAAO,sBAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC;AAfW,QAAA,oBAAoB,wBAe/B"}