@ledgerhq/coin-xrp 6.1.3 → 6.1.4-nightly.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 (190) hide show
  1. package/.unimportedrc.json +3 -1
  2. package/CHANGELOG.md +8 -0
  3. package/jest.config.js +2 -5
  4. package/lib/api/index.d.ts +2 -11
  5. package/lib/api/index.d.ts.map +1 -1
  6. package/lib/api/index.integ.test.js +24 -7
  7. package/lib/api/index.integ.test.js.map +1 -1
  8. package/lib/api/index.js +15 -5
  9. package/lib/api/index.js.map +1 -1
  10. package/lib/api/index.test.js +18 -9
  11. package/lib/api/index.test.js.map +1 -1
  12. package/lib/index.d.ts +0 -1
  13. package/lib/index.d.ts.map +1 -1
  14. package/lib/index.js +0 -3
  15. package/lib/index.js.map +1 -1
  16. package/lib/logic/combine.d.ts.map +1 -1
  17. package/lib/logic/combine.js +8 -3
  18. package/lib/logic/combine.js.map +1 -1
  19. package/lib/logic/getBalance.d.ts.map +1 -1
  20. package/lib/logic/getBalance.js +13 -1
  21. package/lib/logic/getBalance.js.map +1 -1
  22. package/lib/logic/getBalance.test.js +14 -1
  23. package/lib/logic/getBalance.test.js.map +1 -1
  24. package/lib/logic/getTransactionStatus.d.ts +3 -0
  25. package/lib/logic/getTransactionStatus.d.ts.map +1 -0
  26. package/lib/{bridge → logic}/getTransactionStatus.js +15 -19
  27. package/lib/logic/getTransactionStatus.js.map +1 -0
  28. package/lib/logic/getTransactionStatus.test.d.ts +2 -0
  29. package/lib/logic/getTransactionStatus.test.d.ts.map +1 -0
  30. package/lib/logic/getTransactionStatus.test.js +184 -0
  31. package/lib/logic/getTransactionStatus.test.js.map +1 -0
  32. package/lib/logic/index.d.ts +2 -1
  33. package/lib/logic/index.d.ts.map +1 -1
  34. package/lib/logic/index.js +3 -2
  35. package/lib/logic/index.js.map +1 -1
  36. package/lib/logic/utils.d.ts +0 -1
  37. package/lib/logic/utils.d.ts.map +1 -1
  38. package/lib/logic/utils.js +14 -10
  39. package/lib/logic/utils.js.map +1 -1
  40. package/lib/test/bridgeDatasetTest.d.ts.map +1 -1
  41. package/lib/test/bridgeDatasetTest.js +7 -7
  42. package/lib/test/bridgeDatasetTest.js.map +1 -1
  43. package/lib/{bridge/transaction.d.ts → transaction.d.ts} +1 -1
  44. package/lib/transaction.d.ts.map +1 -0
  45. package/lib/transaction.js.map +1 -0
  46. package/lib/types/model.d.ts +7 -0
  47. package/lib/types/model.d.ts.map +1 -1
  48. package/lib-es/api/index.d.ts +2 -11
  49. package/lib-es/api/index.d.ts.map +1 -1
  50. package/lib-es/api/index.integ.test.js +24 -7
  51. package/lib-es/api/index.integ.test.js.map +1 -1
  52. package/lib-es/api/index.js +16 -6
  53. package/lib-es/api/index.js.map +1 -1
  54. package/lib-es/api/index.test.js +18 -9
  55. package/lib-es/api/index.test.js.map +1 -1
  56. package/lib-es/index.d.ts +0 -1
  57. package/lib-es/index.d.ts.map +1 -1
  58. package/lib-es/index.js +0 -1
  59. package/lib-es/index.js.map +1 -1
  60. package/lib-es/logic/combine.d.ts.map +1 -1
  61. package/lib-es/logic/combine.js +8 -3
  62. package/lib-es/logic/combine.js.map +1 -1
  63. package/lib-es/logic/getBalance.d.ts.map +1 -1
  64. package/lib-es/logic/getBalance.js +14 -2
  65. package/lib-es/logic/getBalance.js.map +1 -1
  66. package/lib-es/logic/getBalance.test.js +14 -1
  67. package/lib-es/logic/getBalance.test.js.map +1 -1
  68. package/lib-es/logic/getTransactionStatus.d.ts +3 -0
  69. package/lib-es/logic/getTransactionStatus.d.ts.map +1 -0
  70. package/lib-es/{bridge → logic}/getTransactionStatus.js +13 -14
  71. package/lib-es/logic/getTransactionStatus.js.map +1 -0
  72. package/lib-es/logic/getTransactionStatus.test.d.ts +2 -0
  73. package/lib-es/logic/getTransactionStatus.test.d.ts.map +1 -0
  74. package/lib-es/logic/getTransactionStatus.test.js +159 -0
  75. package/lib-es/logic/getTransactionStatus.test.js.map +1 -0
  76. package/lib-es/logic/index.d.ts +2 -1
  77. package/lib-es/logic/index.d.ts.map +1 -1
  78. package/lib-es/logic/index.js +2 -1
  79. package/lib-es/logic/index.js.map +1 -1
  80. package/lib-es/logic/utils.d.ts +0 -1
  81. package/lib-es/logic/utils.d.ts.map +1 -1
  82. package/lib-es/logic/utils.js +13 -8
  83. package/lib-es/logic/utils.js.map +1 -1
  84. package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -1
  85. package/lib-es/test/bridgeDatasetTest.js +7 -7
  86. package/lib-es/test/bridgeDatasetTest.js.map +1 -1
  87. package/lib-es/{bridge/transaction.d.ts → transaction.d.ts} +1 -1
  88. package/lib-es/transaction.d.ts.map +1 -0
  89. package/lib-es/transaction.js.map +1 -0
  90. package/lib-es/types/model.d.ts +7 -0
  91. package/lib-es/types/model.d.ts.map +1 -1
  92. package/package.json +7 -8
  93. package/src/api/index.integ.test.ts +24 -8
  94. package/src/api/index.test.ts +23 -22
  95. package/src/api/index.ts +28 -19
  96. package/src/index.ts +0 -1
  97. package/src/logic/combine.ts +10 -3
  98. package/src/logic/getBalance.test.ts +14 -1
  99. package/src/logic/getBalance.ts +18 -2
  100. package/src/logic/getTransactionStatus.test.ts +215 -0
  101. package/src/{bridge → logic}/getTransactionStatus.ts +18 -21
  102. package/src/logic/index.ts +2 -6
  103. package/src/logic/utils.ts +24 -8
  104. package/src/test/bridgeDatasetTest.ts +8 -7
  105. package/src/{bridge/transaction.ts → transaction.ts} +1 -1
  106. package/src/types/model.ts +11 -0
  107. package/lib/bridge/broadcast.d.ts +0 -4
  108. package/lib/bridge/broadcast.d.ts.map +0 -1
  109. package/lib/bridge/broadcast.js +0 -11
  110. package/lib/bridge/broadcast.js.map +0 -1
  111. package/lib/bridge/createTransaction.d.ts +0 -4
  112. package/lib/bridge/createTransaction.d.ts.map +0 -1
  113. package/lib/bridge/createTransaction.js +0 -18
  114. package/lib/bridge/createTransaction.js.map +0 -1
  115. package/lib/bridge/estimateMaxSpendable.d.ts +0 -4
  116. package/lib/bridge/estimateMaxSpendable.d.ts.map +0 -1
  117. package/lib/bridge/estimateMaxSpendable.js +0 -26
  118. package/lib/bridge/estimateMaxSpendable.js.map +0 -1
  119. package/lib/bridge/getTransactionStatus.d.ts +0 -4
  120. package/lib/bridge/getTransactionStatus.d.ts.map +0 -1
  121. package/lib/bridge/getTransactionStatus.js.map +0 -1
  122. package/lib/bridge/index.d.ts +0 -11
  123. package/lib/bridge/index.d.ts.map +0 -1
  124. package/lib/bridge/index.js +0 -47
  125. package/lib/bridge/index.js.map +0 -1
  126. package/lib/bridge/prepareTransaction.d.ts +0 -4
  127. package/lib/bridge/prepareTransaction.d.ts.map +0 -1
  128. package/lib/bridge/prepareTransaction.js +0 -14
  129. package/lib/bridge/prepareTransaction.js.map +0 -1
  130. package/lib/bridge/signOperation.d.ts +0 -5
  131. package/lib/bridge/signOperation.d.ts.map +0 -1
  132. package/lib/bridge/signOperation.js +0 -76
  133. package/lib/bridge/signOperation.js.map +0 -1
  134. package/lib/bridge/synchronization.d.ts +0 -3
  135. package/lib/bridge/synchronization.d.ts.map +0 -1
  136. package/lib/bridge/synchronization.js +0 -85
  137. package/lib/bridge/synchronization.js.map +0 -1
  138. package/lib/bridge/synchronization.test.d.ts +0 -2
  139. package/lib/bridge/synchronization.test.d.ts.map +0 -1
  140. package/lib/bridge/synchronization.test.js +0 -140
  141. package/lib/bridge/synchronization.test.js.map +0 -1
  142. package/lib/bridge/transaction.d.ts.map +0 -1
  143. package/lib/bridge/transaction.js.map +0 -1
  144. package/lib-es/bridge/broadcast.d.ts +0 -4
  145. package/lib-es/bridge/broadcast.d.ts.map +0 -1
  146. package/lib-es/bridge/broadcast.js +0 -7
  147. package/lib-es/bridge/broadcast.js.map +0 -1
  148. package/lib-es/bridge/createTransaction.d.ts +0 -4
  149. package/lib-es/bridge/createTransaction.d.ts.map +0 -1
  150. package/lib-es/bridge/createTransaction.js +0 -11
  151. package/lib-es/bridge/createTransaction.js.map +0 -1
  152. package/lib-es/bridge/estimateMaxSpendable.d.ts +0 -4
  153. package/lib-es/bridge/estimateMaxSpendable.d.ts.map +0 -1
  154. package/lib-es/bridge/estimateMaxSpendable.js +0 -19
  155. package/lib-es/bridge/estimateMaxSpendable.js.map +0 -1
  156. package/lib-es/bridge/getTransactionStatus.d.ts +0 -4
  157. package/lib-es/bridge/getTransactionStatus.d.ts.map +0 -1
  158. package/lib-es/bridge/getTransactionStatus.js.map +0 -1
  159. package/lib-es/bridge/index.d.ts +0 -11
  160. package/lib-es/bridge/index.d.ts.map +0 -1
  161. package/lib-es/bridge/index.js +0 -41
  162. package/lib-es/bridge/index.js.map +0 -1
  163. package/lib-es/bridge/prepareTransaction.d.ts +0 -4
  164. package/lib-es/bridge/prepareTransaction.d.ts.map +0 -1
  165. package/lib-es/bridge/prepareTransaction.js +0 -10
  166. package/lib-es/bridge/prepareTransaction.js.map +0 -1
  167. package/lib-es/bridge/signOperation.d.ts +0 -5
  168. package/lib-es/bridge/signOperation.d.ts.map +0 -1
  169. package/lib-es/bridge/signOperation.js +0 -72
  170. package/lib-es/bridge/signOperation.js.map +0 -1
  171. package/lib-es/bridge/synchronization.d.ts +0 -3
  172. package/lib-es/bridge/synchronization.d.ts.map +0 -1
  173. package/lib-es/bridge/synchronization.js +0 -78
  174. package/lib-es/bridge/synchronization.js.map +0 -1
  175. package/lib-es/bridge/synchronization.test.d.ts +0 -2
  176. package/lib-es/bridge/synchronization.test.d.ts.map +0 -1
  177. package/lib-es/bridge/synchronization.test.js +0 -135
  178. package/lib-es/bridge/synchronization.test.js.map +0 -1
  179. package/lib-es/bridge/transaction.d.ts.map +0 -1
  180. package/lib-es/bridge/transaction.js.map +0 -1
  181. package/src/bridge/broadcast.ts +0 -11
  182. package/src/bridge/createTransaction.ts +0 -13
  183. package/src/bridge/estimateMaxSpendable.ts +0 -25
  184. package/src/bridge/index.ts +0 -59
  185. package/src/bridge/prepareTransaction.ts +0 -18
  186. package/src/bridge/signOperation.ts +0 -100
  187. package/src/bridge/synchronization.test.ts +0 -153
  188. package/src/bridge/synchronization.ts +0 -108
  189. /package/lib/{bridge/transaction.js → transaction.js} +0 -0
  190. /package/lib-es/{bridge/transaction.js → transaction.js} +0 -0
@@ -248,39 +248,48 @@ describe("Testing craftTransaction function", () => {
248
248
  });
249
249
  it("should use custom user fees when user provides it for crafting a transaction", async () => {
250
250
  const customFees = 99n;
251
- await api.craftTransaction({ sender: { address: "foo" } }, customFees);
251
+ await api.craftTransaction({ sender: "foo" }, customFees);
252
252
  expect(logicCraftTransactionSpy).toHaveBeenCalledWith(expect.any(Object), expect.objectContaining({
253
253
  fee: customFees,
254
254
  }), undefined);
255
255
  });
256
256
  it("should use default fees when user does not provide them for crafting a transaction", async () => {
257
- await api.craftTransaction({ sender: { address: "foo" } });
257
+ await api.craftTransaction({ sender: "foo" });
258
258
  expect(logicCraftTransactionSpy).toHaveBeenCalledWith(expect.any(Object), expect.objectContaining({
259
259
  fee: DEFAULT_ESTIMATED_FEES,
260
260
  }), undefined);
261
261
  });
262
262
  it("should pass signing pub key when user provides it for crafting a transaction", async () => {
263
263
  await api.craftTransaction({
264
- sender: { address: "foo", publicKey: "bar" },
264
+ sender: "foo",
265
+ senderPublicKey: "bar",
265
266
  });
266
267
  expect(logicCraftTransactionSpy).toHaveBeenCalledWith(expect.any(Object), expect.any(Object), "bar");
267
268
  });
268
269
  it("should pass memos when user provides it for crafting a transaction", async () => {
269
270
  await api.craftTransaction({
270
- sender: { address: "foo" },
271
- memos: [{ data: "testdata", format: "testformat", type: "testtype" }],
271
+ sender: "foo",
272
+ memo: {
273
+ type: "map",
274
+ memos: new Map([["memos", ["testdata"]]]),
275
+ },
272
276
  });
273
277
  expect(logicCraftTransactionSpy).toHaveBeenCalledWith(expect.any(Object), expect.objectContaining({
274
- memos: [{ data: "testdata", format: "testformat", type: "testtype" }],
278
+ // NOTE: before
279
+ // memos: [{ data: "testdata", format: "testformat", type: "testtype" }],
280
+ memos: [{ data: "testdata", type: "memo" }],
275
281
  }), undefined);
276
282
  });
277
283
  it("should pass destination tag when user provides it for crafting a transaction", async () => {
278
284
  await api.craftTransaction({
279
- sender: { address: "foo" },
280
- destinationTag: 1337,
285
+ sender: "foo",
286
+ memo: {
287
+ type: "map",
288
+ memos: new Map([["destinationTag", "1337"]]),
289
+ },
281
290
  });
282
291
  expect(logicCraftTransactionSpy).toHaveBeenCalledWith(expect.any(Object), expect.objectContaining({
283
- destinationTag: 1337,
292
+ destinationTag: 1337, // logic should convert `value: string` -> `number`
284
293
  }), undefined);
285
294
  });
286
295
  });
@@ -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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"}
package/lib-es/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  export * from "./types";
2
- export { createBridges } from "./bridge/index";
3
2
  export type { XrpCoinConfig } from "./config";
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
package/lib-es/index.js CHANGED
@@ -1,3 +1,2 @@
1
1
  export * from "./types";
2
- export { createBridges } from "./bridge/index";
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../src/logic/combine.ts"],"names":[],"mappings":"AAQA,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAS1F"}
1
+ {"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../src/logic/combine.ts"],"names":[],"mappings":"AAQA,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB1F"}
@@ -1,10 +1,15 @@
1
1
  import { decode, encode } from "ripple-binary-codec";
2
2
  export function combine(transaction, signature, publicKey) {
3
3
  const xrplTransaction = decode(transaction);
4
- let transactionWithSignature = { ...xrplTransaction, TxnSignature: signature };
4
+ let transactionWithSignature = { ...xrplTransaction };
5
5
  if (publicKey) {
6
- transactionWithSignature = { ...transactionWithSignature, SigningPubKey: publicKey };
6
+ transactionWithSignature = {
7
+ ...transactionWithSignature,
8
+ SigningPubKey: publicKey,
9
+ };
7
10
  }
8
- return encode(transactionWithSignature);
11
+ transactionWithSignature = { ...transactionWithSignature, TxnSignature: signature };
12
+ const encoded = encode(transactionWithSignature).toUpperCase();
13
+ return encoded;
9
14
  }
10
15
  //# sourceMappingURL=combine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../src/logic/combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQrD,MAAM,UAAU,OAAO,CAAC,WAAmB,EAAE,SAAiB,EAAE,SAAkB;IAChF,MAAM,eAAe,GAAe,MAAM,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,wBAAwB,GAAmB,EAAE,GAAG,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAE/F,IAAI,SAAS,EAAE,CAAC;QACd,wBAAwB,GAAG,EAAE,GAAG,wBAAwB,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;IACvF,CAAC;IAED,OAAO,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../src/logic/combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAQrD,MAAM,UAAU,OAAO,CAAC,WAAmB,EAAE,SAAiB,EAAE,SAAkB;IAChF,MAAM,eAAe,GAAe,MAAM,CAAC,WAAW,CAAC,CAAC;IAExD,IAAI,wBAAwB,GAAmB,EAAE,GAAG,eAAe,EAAS,CAAC;IAE7E,IAAI,SAAS,EAAE,CAAC;QACd,wBAAwB,GAAG;YACzB,GAAG,wBAAwB;YAC3B,aAAa,EAAE,SAAS;SACzB,CAAC;IACJ,CAAC;IAED,wBAAwB,GAAG,EAAE,GAAG,wBAAwB,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAEpF,MAAM,OAAO,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAG9E"}
1
+ {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAkB9E"}
@@ -1,6 +1,18 @@
1
- import { getAccountInfo } from "../network";
1
+ import { getAccountInfo, getServerInfos } from "../network";
2
+ import { parseAPIValue } from "./common";
2
3
  export async function getBalance(address) {
3
4
  const accountInfo = await getAccountInfo(address);
4
- return [{ value: BigInt(accountInfo.balance), asset: { type: "native" } }];
5
+ const serverInfo = await getServerInfos();
6
+ const reserveMinXRP = parseAPIValue(serverInfo.info.validated_ledger.reserve_base_xrp.toString());
7
+ const reservePerTrustline = parseAPIValue(serverInfo.info.validated_ledger.reserve_inc_xrp.toString());
8
+ const trustlines = accountInfo.ownerCount;
9
+ const locked = reserveMinXRP.plus(reservePerTrustline.times(trustlines));
10
+ return [
11
+ {
12
+ value: BigInt(accountInfo.balance),
13
+ asset: { type: "native" },
14
+ locked: BigInt(locked.toString()),
15
+ },
16
+ ];
5
17
  }
6
18
  //# sourceMappingURL=getBalance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../src/logic/getBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;IAE1C,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClG,MAAM,mBAAmB,GAAG,aAAa,CACvC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,QAAQ,EAAE,CAC5D,CAAC;IACF,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAE1C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACzE,OAAO;QACL;YACE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;YAClC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SAClC;KACF,CAAC;AACJ,CAAC"}
@@ -1,26 +1,39 @@
1
1
  import { faker } from "@faker-js/faker";
2
2
  import { getBalance } from "./getBalance";
3
3
  const mockGetAccountInfo = jest.fn();
4
+ const mockGetServerInfos = jest.fn();
4
5
  jest.mock("../network", () => ({
5
6
  getAccountInfo: (address) => mockGetAccountInfo(address),
7
+ getServerInfos: () => mockGetServerInfos(),
6
8
  }));
7
9
  describe("getBalance", () => {
8
10
  afterEach(() => {
9
11
  mockGetAccountInfo.mockClear();
12
+ mockGetServerInfos.mockClear();
10
13
  });
11
14
  it("returns the balance from Explorer", async () => {
15
+ mockGetServerInfos.mockResolvedValue({
16
+ info: {
17
+ validated_ledger: {
18
+ reserve_base_xrp: 23,
19
+ reserve_inc_xrp: 5,
20
+ },
21
+ },
22
+ });
12
23
  // Given
13
24
  const balance = faker.number.bigInt(100_000_000);
14
25
  const address = "ACCOUNT_ADDRESS";
15
26
  mockGetAccountInfo.mockResolvedValue({
16
27
  balance,
28
+ ownerCount: 0,
17
29
  });
18
30
  // When
19
31
  const result = await getBalance(address);
20
32
  // Then
21
33
  expect(mockGetAccountInfo).toHaveBeenCalledTimes(1);
34
+ expect(mockGetServerInfos).toHaveBeenCalledTimes(1);
22
35
  expect(mockGetAccountInfo.mock.lastCall[0]).toEqual(address);
23
- expect(result).toEqual([{ value: balance, asset: { type: "native" } }]);
36
+ expect(result).toEqual([{ value: balance, asset: { type: "native" }, locked: 23000000n }]);
24
37
  });
25
38
  });
26
39
  //# sourceMappingURL=getBalance.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBalance.test.js","sourceRoot":"","sources":["../../src/logic/getBalance.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACrC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,cAAc,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC;CACjE,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,SAAS,CAAC,GAAG,EAAE;QACb,kBAAkB,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,QAAQ;QACR,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAClC,kBAAkB,CAAC,iBAAiB,CAAC;YACnC,OAAO;SACR,CAAC,CAAC;QAEH,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzC,OAAO;QACP,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"getBalance.test.js","sourceRoot":"","sources":["../../src/logic/getBalance.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACrC,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACrC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,cAAc,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC;IAChE,cAAc,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE;CAC3C,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,SAAS,CAAC,GAAG,EAAE;QACb,kBAAkB,CAAC,SAAS,EAAE,CAAC;QAC/B,kBAAkB,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,kBAAkB,CAAC,iBAAiB,CAAC;YACnC,IAAI,EAAE;gBACJ,gBAAgB,EAAE;oBAChB,gBAAgB,EAAE,EAAE;oBACpB,eAAe,EAAE,CAAC;iBACnB;aACF;SACF,CAAC,CAAC;QACH,QAAQ;QACR,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,iBAAiB,CAAC;QAClC,kBAAkB,CAAC,iBAAiB,CAAC;YACnC,OAAO;YACP,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzC,OAAO;QACP,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Transaction, TransactionValidation, Account } from "@ledgerhq/coin-framework/api/types";
2
+ export declare const getTransactionStatus: (account: Account, transaction: Transaction) => Promise<TransactionValidation>;
3
+ //# sourceMappingURL=getTransactionStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../../src/logic/getTransactionStatus.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAEjG,eAAO,MAAM,oBAAoB,YACtB,OAAO,eACH,WAAW,KACvB,OAAO,CAAC,qBAAqB,CA8D/B,CAAC"}
@@ -1,29 +1,28 @@
1
1
  import { AmountRequired, FeeNotLoaded, FeeRequired, FeeTooHigh, InvalidAddress, InvalidAddressBecauseDestinationIsAlsoSource, NotEnoughBalanceBecauseDestinationNotCreated, NotEnoughSpendableBalance, RecipientRequired, } from "@ledgerhq/errors";
2
- import BigNumber from "bignumber.js";
3
2
  import { isValidClassicAddress } from "ripple-address-codec";
4
3
  import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies/index";
5
4
  import { getServerInfos } from "../network";
6
- import { cachedRecipientIsNew, parseAPIValue } from "../logic";
5
+ import { cachedRecipientIsNew, parseAPIValue } from ".";
7
6
  export const getTransactionStatus = async (account, transaction) => {
8
7
  const errors = {};
9
8
  const warnings = {};
10
9
  const serverInfos = await getServerInfos();
11
10
  const reserveBaseXRP = parseAPIValue(serverInfos.info.validated_ledger.reserve_base_xrp.toString());
12
- const estimatedFees = new BigNumber(transaction.fee || 0);
13
- const totalSpent = new BigNumber(transaction.amount).plus(estimatedFees);
14
- const amount = new BigNumber(transaction.amount);
15
- if (amount.gt(0) && estimatedFees.times(10).gt(amount)) {
11
+ const estimatedFees = transaction.fee || 0n;
12
+ const totalSpent = transaction.amount + estimatedFees;
13
+ const amount = transaction.amount;
14
+ if (amount > 0 && estimatedFees * 10n > amount) {
16
15
  warnings.feeTooHigh = new FeeTooHigh();
17
16
  }
18
17
  if (!transaction.fee) {
19
18
  errors.fee = new FeeNotLoaded();
20
19
  }
21
- else if (transaction.fee.eq(0)) {
20
+ else if (transaction.fee == 0n) {
22
21
  errors.fee = new FeeRequired();
23
22
  }
24
- else if (totalSpent.gt(account.balance.minus(reserveBaseXRP))) {
23
+ else if (totalSpent > account.balance - BigInt(reserveBaseXRP.toString())) {
25
24
  errors.amount = new NotEnoughSpendableBalance("", {
26
- minimumAmount: formatCurrencyUnit(account.currency.units[0], reserveBaseXRP, {
25
+ minimumAmount: formatCurrencyUnit(account.currencyUnit, reserveBaseXRP, {
27
26
  disableRounding: true,
28
27
  useGrouping: false,
29
28
  showCode: true,
@@ -32,9 +31,9 @@ export const getTransactionStatus = async (account, transaction) => {
32
31
  }
33
32
  else if (transaction.recipient &&
34
33
  (await cachedRecipientIsNew(transaction.recipient)) &&
35
- transaction.amount.lt(reserveBaseXRP)) {
34
+ transaction.amount < BigInt(reserveBaseXRP.toString())) {
36
35
  errors.amount = new NotEnoughBalanceBecauseDestinationNotCreated("", {
37
- minimalAmount: formatCurrencyUnit(account.currency.units[0], reserveBaseXRP, {
36
+ minimalAmount: formatCurrencyUnit(account.currencyUnit, reserveBaseXRP, {
38
37
  disableRounding: true,
39
38
  useGrouping: false,
40
39
  showCode: true,
@@ -44,15 +43,15 @@ export const getTransactionStatus = async (account, transaction) => {
44
43
  if (!transaction.recipient) {
45
44
  errors.recipient = new RecipientRequired("");
46
45
  }
47
- else if (account.freshAddress === transaction.recipient) {
46
+ else if (account.address === transaction.recipient) {
48
47
  errors.recipient = new InvalidAddressBecauseDestinationIsAlsoSource();
49
48
  }
50
49
  else if (!isValidClassicAddress(transaction.recipient)) {
51
50
  errors.recipient = new InvalidAddress("", {
52
- currencyName: account.currency.name,
51
+ currencyName: account.currencyName,
53
52
  });
54
53
  }
55
- if (!errors.amount && amount.eq(0)) {
54
+ if (!errors.amount && amount == 0n) {
56
55
  errors.amount = new AmountRequired();
57
56
  }
58
57
  return {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../src/logic/getTransactionStatus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getTransactionStatus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.test.d.ts","sourceRoot":"","sources":["../../src/logic/getTransactionStatus.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,159 @@
1
+ import { getTransactionStatus } from "./getTransactionStatus";
2
+ import * as logic from "./index";
3
+ const mockGetServerInfos = jest.fn();
4
+ const mockCachedRecipientIsNew = jest.fn();
5
+ jest.mock("../network", () => ({
6
+ getServerInfos: () => mockGetServerInfos(),
7
+ }));
8
+ jest.spyOn(logic, "cachedRecipientIsNew").mockImplementation(addr => {
9
+ if (addr === RECIPIENT_NEW) {
10
+ return Promise.resolve(true);
11
+ }
12
+ return Promise.resolve(false);
13
+ });
14
+ const reserveBase = 10000000n; // 10 XRP (drops)
15
+ const SENDER = "rPSCfmnX3t9jQJG5RNcZtSaP5UhExZDue4";
16
+ const RECIPIENT = "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe";
17
+ const RECIPIENT_NEW = "rDKsbvy9uaNpPtvVFraJyNGfjvTw8xivgK";
18
+ const account = {
19
+ address: SENDER,
20
+ balance: 50000000n,
21
+ currencyUnit: {
22
+ code: "XRP",
23
+ magnitude: 6,
24
+ name: "XRP",
25
+ symbol: "XRP",
26
+ },
27
+ currencyName: "XRP",
28
+ };
29
+ describe("getTransactionStatus", () => {
30
+ afterEach(() => {
31
+ mockGetServerInfos.mockReset();
32
+ mockCachedRecipientIsNew.mockReset();
33
+ });
34
+ it("returns no errors on valid transaction", async () => {
35
+ mockGetServerInfos.mockResolvedValue({
36
+ info: {
37
+ validated_ledger: {
38
+ reserve_base_xrp: reserveBase / 1000000n, // XRP value, not drops
39
+ },
40
+ },
41
+ });
42
+ mockCachedRecipientIsNew.mockResolvedValue(false);
43
+ const result = await getTransactionStatus(account, {
44
+ amount: 20000000n,
45
+ fee: 10000n,
46
+ recipient: RECIPIENT,
47
+ });
48
+ expect(result.errors).toEqual({});
49
+ expect(result.warnings).toEqual({});
50
+ expect(result.totalSpent).toBe(20010000n);
51
+ });
52
+ it("throws FeeTooHigh warning when fee is >10% of amount", async () => {
53
+ mockGetServerInfos.mockResolvedValue({
54
+ info: {
55
+ validated_ledger: {
56
+ reserve_base_xrp: reserveBase / 1000000n,
57
+ },
58
+ },
59
+ });
60
+ const result = await getTransactionStatus(account, {
61
+ amount: 1000000n,
62
+ fee: 200000n, // 20%
63
+ recipient: RECIPIENT,
64
+ });
65
+ expect(result.warnings.feeTooHigh).toBeInstanceOf(Error);
66
+ expect(result.errors).toEqual({});
67
+ });
68
+ it("errors when fee is missing", async () => {
69
+ mockGetServerInfos.mockResolvedValue({
70
+ info: {
71
+ validated_ledger: {
72
+ reserve_base_xrp: reserveBase / 1000000n,
73
+ },
74
+ },
75
+ });
76
+ const result = await getTransactionStatus(account, {
77
+ amount: 10000000n,
78
+ recipient: RECIPIENT,
79
+ });
80
+ expect(result.errors.fee?.name).toBe("FeeNotLoaded");
81
+ });
82
+ it("errors if recipient is same as sender", async () => {
83
+ mockGetServerInfos.mockResolvedValue({
84
+ info: {
85
+ validated_ledger: {
86
+ reserve_base_xrp: reserveBase / 1000000n,
87
+ },
88
+ },
89
+ });
90
+ const result = await getTransactionStatus(account, {
91
+ amount: 10000000n,
92
+ fee: 10000n,
93
+ recipient: SENDER,
94
+ });
95
+ expect(result.errors.recipient?.name).toBe("InvalidAddressBecauseDestinationIsAlsoSource");
96
+ });
97
+ it("errors if recipient is new and amount is too low", async () => {
98
+ mockGetServerInfos.mockResolvedValue({
99
+ info: {
100
+ validated_ledger: {
101
+ reserve_base_xrp: reserveBase / 1000000n,
102
+ },
103
+ },
104
+ });
105
+ mockCachedRecipientIsNew.mockResolvedValue(true);
106
+ const result = await getTransactionStatus(account, {
107
+ amount: 5000000n,
108
+ fee: 10000n,
109
+ recipient: RECIPIENT_NEW,
110
+ });
111
+ expect(result.errors.amount?.name).toBe("NotEnoughBalanceBecauseDestinationNotCreated");
112
+ });
113
+ it("errors if amount is zero", async () => {
114
+ mockGetServerInfos.mockResolvedValue({
115
+ info: {
116
+ validated_ledger: {
117
+ reserve_base_xrp: reserveBase / 1000000n,
118
+ },
119
+ },
120
+ });
121
+ const result = await getTransactionStatus(account, {
122
+ amount: 0n,
123
+ fee: 10000n,
124
+ recipient: RECIPIENT,
125
+ });
126
+ expect(result.errors.amount?.name).toBe("AmountRequired");
127
+ });
128
+ it("errors if recipient is invalid", async () => {
129
+ mockGetServerInfos.mockResolvedValue({
130
+ info: {
131
+ validated_ledger: {
132
+ reserve_base_xrp: reserveBase / 1000000n,
133
+ },
134
+ },
135
+ });
136
+ const result = await getTransactionStatus(account, {
137
+ amount: 1000000n,
138
+ fee: 10000n,
139
+ recipient: "not-an-address",
140
+ });
141
+ expect(result.errors.recipient?.name).toBe("InvalidAddress");
142
+ });
143
+ it("errors if recipient is missing", async () => {
144
+ mockGetServerInfos.mockResolvedValue({
145
+ info: {
146
+ validated_ledger: {
147
+ reserve_base_xrp: reserveBase / 1000000n,
148
+ },
149
+ },
150
+ });
151
+ const result = await getTransactionStatus(account, {
152
+ amount: 1000000n,
153
+ fee: 10000n,
154
+ recipient: "",
155
+ });
156
+ expect(result.errors.recipient?.name).toBe("RecipientRequired");
157
+ });
158
+ });
159
+ //# sourceMappingURL=getTransactionStatus.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.test.js","sourceRoot":"","sources":["../../src/logic/getTransactionStatus.test.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export { estimateFees } from "./estimateFees";
6
6
  export { getBalance } from "./getBalance";
7
7
  export { lastBlock } from "./lastBlock";
8
8
  export { listOperations } from "./listOperations";
9
- export { RIPPLE_EPOCH, cachedRecipientIsNew, getNextValidSequence, removeCachedRecipientIsNew, } from "./utils";
9
+ export { getTransactionStatus } from "./getTransactionStatus";
10
+ export { RIPPLE_EPOCH, cachedRecipientIsNew, getNextValidSequence } from "./utils";
10
11
  export { parseAPIValue } from "./common";
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
@@ -5,6 +5,7 @@ export { estimateFees } from "./estimateFees";
5
5
  export { getBalance } from "./getBalance";
6
6
  export { lastBlock } from "./lastBlock";
7
7
  export { listOperations } from "./listOperations";
8
- export { RIPPLE_EPOCH, cachedRecipientIsNew, getNextValidSequence, removeCachedRecipientIsNew, } from "./utils";
8
+ export { getTransactionStatus } from "./getTransactionStatus";
9
+ export { RIPPLE_EPOCH, cachedRecipientIsNew, getNextValidSequence } from "./utils";
9
10
  export { parseAPIValue } from "./common";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
@@ -5,5 +5,4 @@ export declare const RIPPLE_EPOCH = 946684800;
5
5
  export declare const validateTag: (tag: BigNumber) => boolean;
6
6
  export declare const getNextValidSequence: (address: string) => Promise<number>;
7
7
  export declare const cachedRecipientIsNew: (recipient: string) => Promise<boolean>;
8
- export declare const removeCachedRecipientIsNew: (recipient: string) => void;
9
8
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,eAAO,MAAM,UAAU,WAAoC,CAAC;AAE5D,kEAAkE;AAClE,eAAO,MAAM,YAAY,YAAY,CAAC;AAEtC,eAAO,MAAM,WAAW,QAAS,SAAS,YAIzC,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAmB,MAAM,oBAGzD,CAAC;AAcF,eAAO,MAAM,oBAAoB,cAAqB,MAAM,qBAI3D,CAAC;AACF,eAAO,MAAM,0BAA0B,cAAe,MAAM,SAE3D,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAIrC,eAAO,MAAM,UAAU,WAAoC,CAAC;AAE5D,kEAAkE;AAClE,eAAO,MAAM,YAAY,YAAY,CAAC;AAEtC,eAAO,MAAM,WAAW,QAAS,SAAS,YAIzC,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAmB,MAAM,oBAGzD,CAAC;AAsBF,eAAO,MAAM,oBAAoB,cAAqB,MAAM,KAAG,OAAO,CAAC,OAAO,CAe7E,CAAC"}
@@ -14,20 +14,25 @@ export const getNextValidSequence = async (address) => {
14
14
  function isRecipientValid(recipient) {
15
15
  return isValidClassicAddress(recipient);
16
16
  }
17
+ const recipientCache = new Map();
18
+ const TTL = 10 * 1000; // 10 seconds
17
19
  const recipientIsNew = async (recipient) => {
18
20
  if (!isRecipientValid(recipient))
19
21
  return false;
20
22
  const info = await getAccountInfo(recipient);
21
23
  return info.isNewAccount;
22
24
  };
23
- const cacheRecipientsNew = {};
24
25
  export const cachedRecipientIsNew = async (recipient) => {
25
- if (recipient in cacheRecipientsNew)
26
- return cacheRecipientsNew[recipient];
27
- cacheRecipientsNew[recipient] = await recipientIsNew(recipient);
28
- return cacheRecipientsNew[recipient];
29
- };
30
- export const removeCachedRecipientIsNew = (recipient) => {
31
- delete cacheRecipientsNew[recipient];
26
+ const now = Date.now();
27
+ const cached = recipientCache.get(recipient);
28
+ if (cached && now < cached.expiresAt) {
29
+ return cached.value;
30
+ }
31
+ const isNew = await recipientIsNew(recipient);
32
+ recipientCache.set(recipient, {
33
+ value: isNew,
34
+ expiresAt: now + TTL,
35
+ });
36
+ return isNew;
32
37
  };
33
38
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE5D,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAc,EAAE,EAAE;IAC5C,OAAO,CACL,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAC7F,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAC5D,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAC,CAAC;AAEF,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,cAAc,GAAG,KAAK,EAAE,SAAiB,EAAoB,EAAE;IACnE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAA4B,EAAE,CAAC;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;IAC9D,IAAI,SAAS,IAAI,kBAAkB;QAAE,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC1E,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;IAChE,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC9D,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE5D,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AAEtC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAc,EAAE,EAAE;IAC5C,OAAO,CACL,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAC7F,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IAC5D,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAC,CAAC;AAEF,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAQD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;AACrD,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAEpC,MAAM,cAAc,GAAG,KAAK,EAAE,SAAiB,EAAoB,EAAE;IACnE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAiB,EAAoB,EAAE;IAChF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE7C,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;QAC5B,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,GAAG,GAAG,GAAG;KACrB,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeDatasetTest.d.ts","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,WAAW,sCAAsC,CAAC;AAE/D,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,WAAW,CAgJ5C,CAAC"}
1
+ {"version":3,"file":"bridgeDatasetTest.d.ts","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,WAAW,sCAAsC,CAAC;AAE/D,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,WAAW,CAiJ5C,CAAC"}