@ledgerhq/coin-sui 0.16.0-nightly.9 → 0.16.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 (286) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +32 -78
  3. package/lib/api/index.integration.test.d.ts +2 -0
  4. package/lib/api/index.integration.test.d.ts.map +1 -0
  5. package/lib/api/index.integration.test.js +173 -0
  6. package/lib/api/index.integration.test.js.map +1 -0
  7. package/lib/api/index.test.d.ts +2 -0
  8. package/lib/api/index.test.d.ts.map +1 -0
  9. package/lib/api/index.test.js +173 -0
  10. package/lib/api/index.test.js.map +1 -0
  11. package/lib/bridge/bridge.integration.test.d.ts +4 -0
  12. package/lib/bridge/bridge.integration.test.d.ts.map +1 -0
  13. package/lib/bridge/bridge.integration.test.js +145 -0
  14. package/lib/bridge/bridge.integration.test.js.map +1 -0
  15. package/lib/bridge/broadcast.test.d.ts +2 -0
  16. package/lib/bridge/broadcast.test.d.ts.map +1 -0
  17. package/lib/bridge/broadcast.test.js +48 -0
  18. package/lib/bridge/broadcast.test.js.map +1 -0
  19. package/lib/bridge/buildOptimisticOperation.test.d.ts +2 -0
  20. package/lib/bridge/buildOptimisticOperation.test.d.ts.map +1 -0
  21. package/lib/bridge/buildOptimisticOperation.test.js +52 -0
  22. package/lib/bridge/buildOptimisticOperation.test.js.map +1 -0
  23. package/lib/bridge/buildTransaction.integration.test.d.ts +2 -0
  24. package/lib/bridge/buildTransaction.integration.test.d.ts.map +1 -0
  25. package/lib/bridge/buildTransaction.integration.test.js +72 -0
  26. package/lib/bridge/buildTransaction.integration.test.js.map +1 -0
  27. package/lib/bridge/buildTransaction.test.d.ts +2 -0
  28. package/lib/bridge/buildTransaction.test.d.ts.map +1 -0
  29. package/lib/bridge/buildTransaction.test.js +231 -0
  30. package/lib/bridge/buildTransaction.test.js.map +1 -0
  31. package/lib/bridge/estimateMaxSpendable.test.d.ts +2 -0
  32. package/lib/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  33. package/lib/bridge/estimateMaxSpendable.test.js +52 -0
  34. package/lib/bridge/estimateMaxSpendable.test.js.map +1 -0
  35. package/lib/bridge/formatters.test.d.ts +2 -0
  36. package/lib/bridge/formatters.test.d.ts.map +1 -0
  37. package/lib/bridge/formatters.test.js +18 -0
  38. package/lib/bridge/formatters.test.js.map +1 -0
  39. package/lib/bridge/getFeesForTransaction.test.d.ts +2 -0
  40. package/lib/bridge/getFeesForTransaction.test.d.ts.map +1 -0
  41. package/lib/bridge/getFeesForTransaction.test.js +35 -0
  42. package/lib/bridge/getFeesForTransaction.test.js.map +1 -0
  43. package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
  44. package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
  45. package/lib/bridge/getTransactionStatus.test.js +69 -0
  46. package/lib/bridge/getTransactionStatus.test.js.map +1 -0
  47. package/lib/bridge/index.test.d.ts +2 -0
  48. package/lib/bridge/index.test.d.ts.map +1 -0
  49. package/lib/bridge/index.test.js +265 -0
  50. package/lib/bridge/index.test.js.map +1 -0
  51. package/lib/bridge/preload.test.d.ts +2 -0
  52. package/lib/bridge/preload.test.d.ts.map +1 -0
  53. package/lib/bridge/preload.test.js +52 -0
  54. package/lib/bridge/preload.test.js.map +1 -0
  55. package/lib/bridge/prepareTransaction.test.d.ts +2 -0
  56. package/lib/bridge/prepareTransaction.test.d.ts.map +1 -0
  57. package/lib/bridge/prepareTransaction.test.js +97 -0
  58. package/lib/bridge/prepareTransaction.test.js.map +1 -0
  59. package/lib/bridge/serialization.test.d.ts +2 -0
  60. package/lib/bridge/serialization.test.d.ts.map +1 -0
  61. package/lib/bridge/serialization.test.js +131 -0
  62. package/lib/bridge/serialization.test.js.map +1 -0
  63. package/lib/bridge/signOperation.integration.test.d.ts +2 -0
  64. package/lib/bridge/signOperation.integration.test.d.ts.map +1 -0
  65. package/lib/bridge/signOperation.integration.test.js +80 -0
  66. package/lib/bridge/signOperation.integration.test.js.map +1 -0
  67. package/lib/bridge/signOperation.test.d.ts +2 -0
  68. package/lib/bridge/signOperation.test.d.ts.map +1 -0
  69. package/lib/bridge/signOperation.test.js +445 -0
  70. package/lib/bridge/signOperation.test.js.map +1 -0
  71. package/lib/bridge/synchronisation.test.d.ts +2 -0
  72. package/lib/bridge/synchronisation.test.d.ts.map +1 -0
  73. package/lib/bridge/synchronisation.test.js +505 -0
  74. package/lib/bridge/synchronisation.test.js.map +1 -0
  75. package/lib/bridge/transaction.test.d.ts +2 -0
  76. package/lib/bridge/transaction.test.d.ts.map +1 -0
  77. package/lib/bridge/transaction.test.js +68 -0
  78. package/lib/bridge/transaction.test.js.map +1 -0
  79. package/lib/logic/broadcast.test.d.ts +2 -0
  80. package/lib/logic/broadcast.test.d.ts.map +1 -0
  81. package/lib/logic/broadcast.test.js +62 -0
  82. package/lib/logic/broadcast.test.js.map +1 -0
  83. package/lib/logic/combine.test.d.ts +2 -0
  84. package/lib/logic/combine.test.d.ts.map +1 -0
  85. package/lib/logic/combine.test.js +37 -0
  86. package/lib/logic/combine.test.js.map +1 -0
  87. package/lib/logic/craftTransaction.integration.test.d.ts +2 -0
  88. package/lib/logic/craftTransaction.integration.test.d.ts.map +1 -0
  89. package/lib/logic/craftTransaction.integration.test.js +98 -0
  90. package/lib/logic/craftTransaction.integration.test.js.map +1 -0
  91. package/lib/logic/craftTransaction.test.d.ts +2 -0
  92. package/lib/logic/craftTransaction.test.d.ts.map +1 -0
  93. package/lib/logic/craftTransaction.test.js +127 -0
  94. package/lib/logic/craftTransaction.test.js.map +1 -0
  95. package/lib/logic/estimateFees.d.ts +1 -4
  96. package/lib/logic/estimateFees.d.ts.map +1 -1
  97. package/lib/logic/estimateFees.integration.test.d.ts +2 -0
  98. package/lib/logic/estimateFees.integration.test.d.ts.map +1 -0
  99. package/lib/logic/estimateFees.integration.test.js +82 -0
  100. package/lib/logic/estimateFees.integration.test.js.map +1 -0
  101. package/lib/logic/estimateFees.js +1 -2
  102. package/lib/logic/estimateFees.js.map +1 -1
  103. package/lib/logic/estimateFees.test.d.ts +2 -0
  104. package/lib/logic/estimateFees.test.d.ts.map +1 -0
  105. package/lib/logic/estimateFees.test.js +70 -0
  106. package/lib/logic/estimateFees.test.js.map +1 -0
  107. package/lib/logic/getBalance.integration.test.d.ts +2 -0
  108. package/lib/logic/getBalance.integration.test.d.ts.map +1 -0
  109. package/lib/logic/getBalance.integration.test.js +56 -0
  110. package/lib/logic/getBalance.integration.test.js.map +1 -0
  111. package/lib/logic/getBalance.test.d.ts +2 -0
  112. package/lib/logic/getBalance.test.d.ts.map +1 -0
  113. package/lib/logic/getBalance.test.js +64 -0
  114. package/lib/logic/getBalance.test.js.map +1 -0
  115. package/lib/logic/lastBlock.test.d.ts +2 -0
  116. package/lib/logic/lastBlock.test.d.ts.map +1 -0
  117. package/lib/logic/lastBlock.test.js +27 -0
  118. package/lib/logic/lastBlock.test.js.map +1 -0
  119. package/lib/logic/listOperations.test.d.ts +2 -0
  120. package/lib/logic/listOperations.test.d.ts.map +1 -0
  121. package/lib/logic/listOperations.test.js +79 -0
  122. package/lib/logic/listOperations.test.js.map +1 -0
  123. package/lib/network/sdk.d.ts.map +1 -1
  124. package/lib/network/sdk.integration.test.d.ts +2 -0
  125. package/lib/network/sdk.integration.test.d.ts.map +1 -0
  126. package/lib/network/sdk.integration.test.js +215 -0
  127. package/lib/network/sdk.integration.test.js.map +1 -0
  128. package/lib/network/sdk.js +5 -5
  129. package/lib/network/sdk.js.map +1 -1
  130. package/lib/network/sdk.test.d.ts +2 -0
  131. package/lib/network/sdk.test.d.ts.map +1 -0
  132. package/lib/network/sdk.test.js +1784 -0
  133. package/lib/network/sdk.test.js.map +1 -0
  134. package/lib/signer/getAddress.test.d.ts +2 -0
  135. package/lib/signer/getAddress.test.d.ts.map +1 -0
  136. package/lib/signer/getAddress.test.js +106 -0
  137. package/lib/signer/getAddress.test.js.map +1 -0
  138. package/lib/test/config.test.d.ts +2 -0
  139. package/lib/test/config.test.d.ts.map +1 -0
  140. package/lib/test/config.test.js +44 -0
  141. package/lib/test/config.test.js.map +1 -0
  142. package/lib-es/api/index.integration.test.d.ts +2 -0
  143. package/lib-es/api/index.integration.test.d.ts.map +1 -0
  144. package/lib-es/api/index.integration.test.js +171 -0
  145. package/lib-es/api/index.integration.test.js.map +1 -0
  146. package/lib-es/api/index.test.d.ts +2 -0
  147. package/lib-es/api/index.test.d.ts.map +1 -0
  148. package/lib-es/api/index.test.js +148 -0
  149. package/lib-es/api/index.test.js.map +1 -0
  150. package/lib-es/bridge/bridge.integration.test.d.ts +4 -0
  151. package/lib-es/bridge/bridge.integration.test.d.ts.map +1 -0
  152. package/lib-es/bridge/bridge.integration.test.js +139 -0
  153. package/lib-es/bridge/bridge.integration.test.js.map +1 -0
  154. package/lib-es/bridge/broadcast.test.d.ts +2 -0
  155. package/lib-es/bridge/broadcast.test.d.ts.map +1 -0
  156. package/lib-es/bridge/broadcast.test.js +46 -0
  157. package/lib-es/bridge/broadcast.test.js.map +1 -0
  158. package/lib-es/bridge/buildOptimisticOperation.test.d.ts +2 -0
  159. package/lib-es/bridge/buildOptimisticOperation.test.d.ts.map +1 -0
  160. package/lib-es/bridge/buildOptimisticOperation.test.js +47 -0
  161. package/lib-es/bridge/buildOptimisticOperation.test.js.map +1 -0
  162. package/lib-es/bridge/buildTransaction.integration.test.d.ts +2 -0
  163. package/lib-es/bridge/buildTransaction.integration.test.d.ts.map +1 -0
  164. package/lib-es/bridge/buildTransaction.integration.test.js +67 -0
  165. package/lib-es/bridge/buildTransaction.integration.test.js.map +1 -0
  166. package/lib-es/bridge/buildTransaction.test.d.ts +2 -0
  167. package/lib-es/bridge/buildTransaction.test.d.ts.map +1 -0
  168. package/lib-es/bridge/buildTransaction.test.js +229 -0
  169. package/lib-es/bridge/buildTransaction.test.js.map +1 -0
  170. package/lib-es/bridge/estimateMaxSpendable.test.d.ts +2 -0
  171. package/lib-es/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  172. package/lib-es/bridge/estimateMaxSpendable.test.js +50 -0
  173. package/lib-es/bridge/estimateMaxSpendable.test.js.map +1 -0
  174. package/lib-es/bridge/formatters.test.d.ts +2 -0
  175. package/lib-es/bridge/formatters.test.d.ts.map +1 -0
  176. package/lib-es/bridge/formatters.test.js +16 -0
  177. package/lib-es/bridge/formatters.test.js.map +1 -0
  178. package/lib-es/bridge/getFeesForTransaction.test.d.ts +2 -0
  179. package/lib-es/bridge/getFeesForTransaction.test.d.ts.map +1 -0
  180. package/lib-es/bridge/getFeesForTransaction.test.js +30 -0
  181. package/lib-es/bridge/getFeesForTransaction.test.js.map +1 -0
  182. package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
  183. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
  184. package/lib-es/bridge/getTransactionStatus.test.js +64 -0
  185. package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
  186. package/lib-es/bridge/index.test.d.ts +2 -0
  187. package/lib-es/bridge/index.test.d.ts.map +1 -0
  188. package/lib-es/bridge/index.test.js +260 -0
  189. package/lib-es/bridge/index.test.js.map +1 -0
  190. package/lib-es/bridge/preload.test.d.ts +2 -0
  191. package/lib-es/bridge/preload.test.d.ts.map +1 -0
  192. package/lib-es/bridge/preload.test.js +50 -0
  193. package/lib-es/bridge/preload.test.js.map +1 -0
  194. package/lib-es/bridge/prepareTransaction.test.d.ts +2 -0
  195. package/lib-es/bridge/prepareTransaction.test.d.ts.map +1 -0
  196. package/lib-es/bridge/prepareTransaction.test.js +92 -0
  197. package/lib-es/bridge/prepareTransaction.test.js.map +1 -0
  198. package/lib-es/bridge/serialization.test.d.ts +2 -0
  199. package/lib-es/bridge/serialization.test.d.ts.map +1 -0
  200. package/lib-es/bridge/serialization.test.js +126 -0
  201. package/lib-es/bridge/serialization.test.js.map +1 -0
  202. package/lib-es/bridge/signOperation.integration.test.d.ts +2 -0
  203. package/lib-es/bridge/signOperation.integration.test.d.ts.map +1 -0
  204. package/lib-es/bridge/signOperation.integration.test.js +75 -0
  205. package/lib-es/bridge/signOperation.integration.test.js.map +1 -0
  206. package/lib-es/bridge/signOperation.test.d.ts +2 -0
  207. package/lib-es/bridge/signOperation.test.d.ts.map +1 -0
  208. package/lib-es/bridge/signOperation.test.js +440 -0
  209. package/lib-es/bridge/signOperation.test.js.map +1 -0
  210. package/lib-es/bridge/synchronisation.test.d.ts +2 -0
  211. package/lib-es/bridge/synchronisation.test.d.ts.map +1 -0
  212. package/lib-es/bridge/synchronisation.test.js +477 -0
  213. package/lib-es/bridge/synchronisation.test.js.map +1 -0
  214. package/lib-es/bridge/transaction.test.d.ts +2 -0
  215. package/lib-es/bridge/transaction.test.d.ts.map +1 -0
  216. package/lib-es/bridge/transaction.test.js +66 -0
  217. package/lib-es/bridge/transaction.test.js.map +1 -0
  218. package/lib-es/logic/broadcast.test.d.ts +2 -0
  219. package/lib-es/logic/broadcast.test.d.ts.map +1 -0
  220. package/lib-es/logic/broadcast.test.js +57 -0
  221. package/lib-es/logic/broadcast.test.js.map +1 -0
  222. package/lib-es/logic/combine.test.d.ts +2 -0
  223. package/lib-es/logic/combine.test.d.ts.map +1 -0
  224. package/lib-es/logic/combine.test.js +35 -0
  225. package/lib-es/logic/combine.test.js.map +1 -0
  226. package/lib-es/logic/craftTransaction.integration.test.d.ts +2 -0
  227. package/lib-es/logic/craftTransaction.integration.test.d.ts.map +1 -0
  228. package/lib-es/logic/craftTransaction.integration.test.js +93 -0
  229. package/lib-es/logic/craftTransaction.integration.test.js.map +1 -0
  230. package/lib-es/logic/craftTransaction.test.d.ts +2 -0
  231. package/lib-es/logic/craftTransaction.test.d.ts.map +1 -0
  232. package/lib-es/logic/craftTransaction.test.js +122 -0
  233. package/lib-es/logic/craftTransaction.test.js.map +1 -0
  234. package/lib-es/logic/estimateFees.d.ts +1 -4
  235. package/lib-es/logic/estimateFees.d.ts.map +1 -1
  236. package/lib-es/logic/estimateFees.integration.test.d.ts +2 -0
  237. package/lib-es/logic/estimateFees.integration.test.d.ts.map +1 -0
  238. package/lib-es/logic/estimateFees.integration.test.js +77 -0
  239. package/lib-es/logic/estimateFees.integration.test.js.map +1 -0
  240. package/lib-es/logic/estimateFees.js +1 -2
  241. package/lib-es/logic/estimateFees.js.map +1 -1
  242. package/lib-es/logic/estimateFees.test.d.ts +2 -0
  243. package/lib-es/logic/estimateFees.test.d.ts.map +1 -0
  244. package/lib-es/logic/estimateFees.test.js +65 -0
  245. package/lib-es/logic/estimateFees.test.js.map +1 -0
  246. package/lib-es/logic/getBalance.integration.test.d.ts +2 -0
  247. package/lib-es/logic/getBalance.integration.test.d.ts.map +1 -0
  248. package/lib-es/logic/getBalance.integration.test.js +51 -0
  249. package/lib-es/logic/getBalance.integration.test.js.map +1 -0
  250. package/lib-es/logic/getBalance.test.d.ts +2 -0
  251. package/lib-es/logic/getBalance.test.d.ts.map +1 -0
  252. package/lib-es/logic/getBalance.test.js +62 -0
  253. package/lib-es/logic/getBalance.test.js.map +1 -0
  254. package/lib-es/logic/lastBlock.test.d.ts +2 -0
  255. package/lib-es/logic/lastBlock.test.d.ts.map +1 -0
  256. package/lib-es/logic/lastBlock.test.js +25 -0
  257. package/lib-es/logic/lastBlock.test.js.map +1 -0
  258. package/lib-es/logic/listOperations.test.d.ts +2 -0
  259. package/lib-es/logic/listOperations.test.d.ts.map +1 -0
  260. package/lib-es/logic/listOperations.test.js +77 -0
  261. package/lib-es/logic/listOperations.test.js.map +1 -0
  262. package/lib-es/network/sdk.d.ts.map +1 -1
  263. package/lib-es/network/sdk.integration.test.d.ts +2 -0
  264. package/lib-es/network/sdk.integration.test.d.ts.map +1 -0
  265. package/lib-es/network/sdk.integration.test.js +210 -0
  266. package/lib-es/network/sdk.integration.test.js.map +1 -0
  267. package/lib-es/network/sdk.js +5 -5
  268. package/lib-es/network/sdk.js.map +1 -1
  269. package/lib-es/network/sdk.test.d.ts +2 -0
  270. package/lib-es/network/sdk.test.d.ts.map +1 -0
  271. package/lib-es/network/sdk.test.js +1756 -0
  272. package/lib-es/network/sdk.test.js.map +1 -0
  273. package/lib-es/signer/getAddress.test.d.ts +2 -0
  274. package/lib-es/signer/getAddress.test.d.ts.map +1 -0
  275. package/lib-es/signer/getAddress.test.js +101 -0
  276. package/lib-es/signer/getAddress.test.js.map +1 -0
  277. package/lib-es/test/config.test.d.ts +2 -0
  278. package/lib-es/test/config.test.d.ts.map +1 -0
  279. package/lib-es/test/config.test.js +39 -0
  280. package/lib-es/test/config.test.js.map +1 -0
  281. package/package.json +8 -8
  282. package/src/api/index.integration.test.ts +0 -18
  283. package/src/logic/estimateFees.test.ts +16 -22
  284. package/src/logic/estimateFees.ts +1 -6
  285. package/src/network/sdk.test.ts +4 -39
  286. package/src/network/sdk.ts +5 -7
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bignumber_js_1 = require("bignumber.js");
4
+ const estimateMaxSpendable_1 = require("./estimateMaxSpendable");
5
+ const bridge_fixture_1 = require("../types/bridge.fixture");
6
+ const mockEstimateFees = jest.fn();
7
+ jest.mock("../logic", () => ({
8
+ estimateFees: () => mockEstimateFees(),
9
+ }));
10
+ describe("estimateMaxSpendable", () => {
11
+ it("should return the correct spendable amount when fees are deducted", async () => {
12
+ // GIVEN
13
+ const balance = new bignumber_js_1.BigNumber(100);
14
+ const account = (0, bridge_fixture_1.createFixtureAccount)({ spendableBalance: balance });
15
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)();
16
+ const fees = new bignumber_js_1.BigNumber(10);
17
+ mockEstimateFees.mockResolvedValue(fees);
18
+ // WHEN
19
+ const result = await (0, estimateMaxSpendable_1.estimateMaxSpendable)({ account, transaction });
20
+ // THEN
21
+ expect(mockEstimateFees).toHaveBeenCalledTimes(1);
22
+ expect(result).toEqual(balance.minus(fees));
23
+ });
24
+ it("should apply delegation-specific constraints and gas reservation", async () => {
25
+ // GIVEN
26
+ const balance = new bignumber_js_1.BigNumber("5000000000"); // 5 SUI
27
+ const account = (0, bridge_fixture_1.createFixtureAccount)({ spendableBalance: balance });
28
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)({ mode: "delegate" });
29
+ const fees = new bignumber_js_1.BigNumber("100000000"); // 0.1 SUI
30
+ mockEstimateFees.mockResolvedValue(fees);
31
+ // WHEN
32
+ const result = await (0, estimateMaxSpendable_1.estimateMaxSpendable)({ account, transaction });
33
+ // THEN
34
+ // Should deduct fees (0.1 SUI) = 0.1 SUI from 5 SUI = 4.9 SUI
35
+ const expectedAmount = balance.minus(fees); // 4.8 SUI
36
+ expect(result).toEqual(expectedAmount);
37
+ });
38
+ it("should return 0 for delegation when balance is below minimum threshold", async () => {
39
+ // GIVEN
40
+ const balance = new bignumber_js_1.BigNumber("800000000"); // 0.8 SUI (below 1 SUI minimum after fees/reserve)
41
+ const account = (0, bridge_fixture_1.createFixtureAccount)({ spendableBalance: balance });
42
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)({ mode: "delegate" });
43
+ const fees = new bignumber_js_1.BigNumber("100000000"); // 0.1 SUI
44
+ mockEstimateFees.mockResolvedValue(fees);
45
+ // WHEN
46
+ const result = await (0, estimateMaxSpendable_1.estimateMaxSpendable)({ account, transaction });
47
+ // THEN
48
+ // After deducting fees (0.1) + gas reserve (0.1) = 0.6 SUI, which is < 1 SUI minimum
49
+ expect(result).toEqual(new bignumber_js_1.BigNumber(0));
50
+ });
51
+ });
52
+ //# sourceMappingURL=estimateMaxSpendable.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateMaxSpendable.test.js","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.test.ts"],"names":[],"mappings":";;AAAA,+CAAyC;AACzC,iEAA8D;AAC9D,4DAAyF;AAGzF,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACnC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,YAAY,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE;CACvC,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,QAAQ;QACR,MAAM,OAAO,GAAG,IAAI,wBAAS,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,OAAO,GAAe,IAAA,qCAAoB,EAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;QAChF,MAAM,WAAW,GAAgB,IAAA,yCAAwB,GAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,wBAAS,CAAC,EAAE,CAAC,CAAC;QAC/B,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,IAAA,2CAAoB,EAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAEpE,OAAO;QACP,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,QAAQ;QACR,MAAM,OAAO,GAAG,IAAI,wBAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;QACrD,MAAM,OAAO,GAAe,IAAA,qCAAoB,EAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;QAChF,MAAM,WAAW,GAAgB,IAAA,yCAAwB,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,IAAI,wBAAS,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;QACnD,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,IAAA,2CAAoB,EAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAEpE,OAAO;QACP,8DAA8D;QAC9D,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,QAAQ;QACR,MAAM,OAAO,GAAG,IAAI,wBAAS,CAAC,WAAW,CAAC,CAAC,CAAC,mDAAmD;QAC/F,MAAM,OAAO,GAAe,IAAA,qCAAoB,EAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;QAChF,MAAM,WAAW,GAAgB,IAAA,yCAAwB,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,IAAI,wBAAS,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;QACnD,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,IAAA,2CAAoB,EAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAEpE,OAAO;QACP,qFAAqF;QACrF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,wBAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=formatters.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.test.d.ts","sourceRoot":"","sources":["../../src/bridge/formatters.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const formatters_1 = require("./formatters");
4
+ describe("formatters", () => {
5
+ describe("fromOperationExtraRaw", () => {
6
+ it("should return an empty object when no extraRaw is provided", () => {
7
+ const result = (0, formatters_1.fromOperationExtraRaw)(undefined);
8
+ expect(result).toEqual({});
9
+ });
10
+ });
11
+ describe("toOperationExtraRaw", () => {
12
+ it("should return an empty object when no extra is provided", () => {
13
+ const result = (0, formatters_1.toOperationExtraRaw)(undefined);
14
+ expect(result).toEqual({});
15
+ });
16
+ });
17
+ });
18
+ //# sourceMappingURL=formatters.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.test.js","sourceRoot":"","sources":["../../src/bridge/formatters.test.ts"],"names":[],"mappings":";;AAAA,6CAA0E;AAE1E,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,MAAM,GAAG,IAAA,kCAAqB,EAAC,SAAS,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,MAAM,GAAG,IAAA,gCAAmB,EAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getFeesForTransaction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFeesForTransaction.test.d.ts","sourceRoot":"","sources":["../../src/bridge/getFeesForTransaction.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const getFeesForTransaction_1 = __importDefault(require("./getFeesForTransaction"));
7
+ const bridge_fixture_1 = require("../types/bridge.fixture");
8
+ const estimateFees = jest.fn();
9
+ jest.mock("../logic", () => {
10
+ return {
11
+ estimateFees: (arg) => estimateFees(arg),
12
+ };
13
+ });
14
+ describe("getEstimatedFees", () => {
15
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)();
16
+ beforeEach(() => {
17
+ estimateFees.mockClear();
18
+ });
19
+ it("returns fees estimation by sui sdk", async () => {
20
+ // GIVEN
21
+ const account = (0, bridge_fixture_1.createFixtureAccount)();
22
+ const gasBudget = BigInt("3976000");
23
+ estimateFees.mockResolvedValue(gasBudget);
24
+ // WHEN
25
+ const result = await (0, getFeesForTransaction_1.default)({
26
+ account,
27
+ transaction,
28
+ });
29
+ // THEN
30
+ expect(estimateFees).toHaveBeenCalledTimes(1);
31
+ expect(estimateFees.mock.lastCall).not.toBeNull();
32
+ expect(result.toString()).toEqual(gasBudget.toString());
33
+ });
34
+ });
35
+ //# sourceMappingURL=getFeesForTransaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFeesForTransaction.test.js","sourceRoot":"","sources":["../../src/bridge/getFeesForTransaction.test.ts"],"names":[],"mappings":";;;;;AAAA,oFAAuD;AACvD,4DAAyF;AAEzF,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAE/B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;IACzB,OAAO;QACL,YAAY,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC;KAC9C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,WAAW,GAAG,IAAA,yCAAwB,GAAE,CAAC;IAE/C,UAAU,CAAC,GAAG,EAAE;QACd,YAAY,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,QAAQ;QACR,MAAM,OAAO,GAAG,IAAA,qCAAoB,GAAE,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAE1C,OAAO;QACP,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAgB,EAAC;YACpC,OAAO;YACP,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO;QACP,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -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/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const errors_1 = require("@ledgerhq/errors");
7
+ const bridge_fixture_1 = require("../types/bridge.fixture");
8
+ const getTransactionStatus_1 = __importDefault(require("./getTransactionStatus"));
9
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ const account = (0, bridge_fixture_1.createFixtureAccount)();
11
+ describe("getTransactionStatus", () => {
12
+ it("should return errors if recipient empty", async () => {
13
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)({ recipient: null });
14
+ const result = await (0, getTransactionStatus_1.default)(account, transaction);
15
+ const expected = { recipient: new errors_1.RecipientRequired() };
16
+ expect(result.errors).toEqual(expected);
17
+ });
18
+ it("should return errors if recipient is invalid sui adress", async () => {
19
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)({ recipient: "notValidSuiAddress" });
20
+ const result = await (0, getTransactionStatus_1.default)(account, transaction);
21
+ const expected = { recipient: new errors_1.InvalidAddress() };
22
+ expect(result.errors).toEqual(expected);
23
+ });
24
+ it("should return errors if recipient equals to sender", async () => {
25
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)({ recipient: account.freshAddress });
26
+ const result = await (0, getTransactionStatus_1.default)(account, transaction);
27
+ const expected = { recipient: new errors_1.InvalidAddressBecauseDestinationIsAlsoSource() };
28
+ expect(result.errors).toEqual(expected);
29
+ });
30
+ it("should return errors if amount not provided", async () => {
31
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)({ amount: null });
32
+ const result = await (0, getTransactionStatus_1.default)(account, transaction);
33
+ const expected = { amount: new errors_1.AmountRequired() };
34
+ expect(result.errors).toEqual(expected);
35
+ });
36
+ it("should return errors if amount exceeds balance", async () => {
37
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)({ amount: account.balance.plus(1) });
38
+ const result = await (0, getTransactionStatus_1.default)(account, transaction);
39
+ const expected = { amount: new errors_1.NotEnoughBalance() };
40
+ expect(result.errors).toEqual(expected);
41
+ });
42
+ it("should return errors fees not loaded", async () => {
43
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)({ fees: null });
44
+ const result = await (0, getTransactionStatus_1.default)(account, transaction);
45
+ const expected = { fees: new errors_1.FeeNotLoaded() };
46
+ expect(result.errors).toEqual(expected);
47
+ });
48
+ it("should return errors if not enought balance for fees", async () => {
49
+ const transaction = (0, bridge_fixture_1.createFixtureTransaction)({
50
+ subAccountId: "subAccountId",
51
+ });
52
+ const account = (0, bridge_fixture_1.createFixtureAccount)({
53
+ id: "parentAccountId",
54
+ balance: (0, bignumber_js_1.default)(0),
55
+ spendableBalance: (0, bignumber_js_1.default)(0),
56
+ subAccounts: [
57
+ (0, bridge_fixture_1.createFixtureAccount)({
58
+ id: "subAccountId",
59
+ parentId: "parentAccountId",
60
+ type: "TokenAccount",
61
+ }),
62
+ ],
63
+ });
64
+ const result = await (0, getTransactionStatus_1.default)(account, transaction);
65
+ const expected = { amount: new errors_1.NotEnoughBalanceInParentAccount() };
66
+ expect(result.errors).toEqual(expected);
67
+ });
68
+ });
69
+ //# sourceMappingURL=getTransactionStatus.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.test.js","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/bridge/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const bignumber_js_1 = require("bignumber.js");
7
+ const index_1 = require("./index");
8
+ const config_1 = __importDefault(require("../config"));
9
+ const signer_1 = __importDefault(require("../signer"));
10
+ const signOperation_1 = require("./signOperation");
11
+ const synchronisation_1 = require("./synchronisation");
12
+ const broadcast_1 = require("./broadcast");
13
+ const createTransaction_1 = require("./createTransaction");
14
+ const estimateMaxSpendable_1 = require("./estimateMaxSpendable");
15
+ const getTransactionStatus_1 = require("./getTransactionStatus");
16
+ const preload_1 = require("./preload");
17
+ const prepareTransaction_1 = require("./prepareTransaction");
18
+ const serialization_1 = require("./serialization");
19
+ const formatters_1 = require("./formatters");
20
+ // Mock all dependencies
21
+ jest.mock("../config");
22
+ jest.mock("../signer");
23
+ jest.mock("./signOperation");
24
+ jest.mock("./synchronisation");
25
+ jest.mock("./broadcast");
26
+ jest.mock("./createTransaction");
27
+ jest.mock("./estimateMaxSpendable");
28
+ jest.mock("./getTransactionStatus");
29
+ jest.mock("./preload");
30
+ jest.mock("./prepareTransaction");
31
+ jest.mock("./serialization");
32
+ jest.mock("./formatters");
33
+ const mockSuiConfig = config_1.default;
34
+ const mockSignerGetAddress = signer_1.default;
35
+ const mockBuildSignOperation = signOperation_1.buildSignOperation;
36
+ const mockGetAccountShape = synchronisation_1.getAccountShape;
37
+ const mockSync = synchronisation_1.sync;
38
+ const mockBroadcast = broadcast_1.broadcast;
39
+ const mockCreateTransaction = createTransaction_1.createTransaction;
40
+ const mockEstimateMaxSpendable = estimateMaxSpendable_1.estimateMaxSpendable;
41
+ const mockGetTransactionStatus = getTransactionStatus_1.getTransactionStatus;
42
+ const mockGetPreloadStrategy = preload_1.getPreloadStrategy;
43
+ const mockHydrate = preload_1.hydrate;
44
+ const mockPreload = preload_1.preload;
45
+ const mockPrepareTransaction = prepareTransaction_1.prepareTransaction;
46
+ const mockAssignFromAccountRaw = serialization_1.assignFromAccountRaw;
47
+ const mockAssignToAccountRaw = serialization_1.assignToAccountRaw;
48
+ const mockFromOperationExtraRaw = formatters_1.fromOperationExtraRaw;
49
+ const mockToOperationExtraRaw = formatters_1.toOperationExtraRaw;
50
+ describe("bridge/index", () => {
51
+ let mockSignerContext;
52
+ let mockCoinConfig;
53
+ let mockCurrency;
54
+ beforeEach(() => {
55
+ jest.clearAllMocks();
56
+ // Setup mock signer context
57
+ mockSignerContext = jest.fn();
58
+ // Setup mock coin config as a function
59
+ mockCoinConfig = jest.fn(() => ({
60
+ node: { url: "http://localhost:1234" },
61
+ status: { type: "active" },
62
+ }));
63
+ // Setup mock currency
64
+ mockCurrency = {
65
+ id: "sui",
66
+ name: "Sui",
67
+ family: "sui",
68
+ units: [],
69
+ type: "CryptoCurrency",
70
+ ticker: "SUI",
71
+ managerAppName: "Sui",
72
+ coinType: 784,
73
+ scheme: "sui",
74
+ color: "#000000",
75
+ explorerViews: [],
76
+ };
77
+ // Setup mock functions
78
+ mockSignerGetAddress.mockReturnValue(jest.fn());
79
+ mockBuildSignOperation.mockReturnValue(jest.fn());
80
+ mockGetAccountShape.mockResolvedValue({});
81
+ mockSync.mockReturnValue({});
82
+ mockBroadcast.mockResolvedValue({});
83
+ mockCreateTransaction.mockReturnValue({});
84
+ mockEstimateMaxSpendable.mockResolvedValue(new bignumber_js_1.BigNumber("1000000"));
85
+ mockGetTransactionStatus.mockReturnValue({});
86
+ mockGetPreloadStrategy.mockReturnValue({});
87
+ mockHydrate.mockReturnValue(undefined);
88
+ mockPreload.mockResolvedValue({});
89
+ mockPrepareTransaction.mockResolvedValue({});
90
+ mockAssignFromAccountRaw.mockReturnValue(undefined);
91
+ mockAssignToAccountRaw.mockReturnValue(undefined);
92
+ mockFromOperationExtraRaw.mockReturnValue({});
93
+ mockToOperationExtraRaw.mockReturnValue({});
94
+ });
95
+ describe("createBridges", () => {
96
+ it("should set coin config and return bridges", () => {
97
+ const result = (0, index_1.createBridges)(mockSignerContext, mockCoinConfig);
98
+ expect(mockSuiConfig.setCoinConfig).toHaveBeenCalledWith(mockCoinConfig);
99
+ expect(result).toHaveProperty("currencyBridge");
100
+ expect(result).toHaveProperty("accountBridge");
101
+ expect(typeof result.currencyBridge).toBe("object");
102
+ expect(typeof result.accountBridge).toBe("object");
103
+ });
104
+ it("should call signerGetAddress with signer context", () => {
105
+ (0, index_1.createBridges)(mockSignerContext, mockCoinConfig);
106
+ expect(mockSignerGetAddress).toHaveBeenCalledWith(mockSignerContext);
107
+ });
108
+ it("should call buildSignOperation with signer context", () => {
109
+ (0, index_1.createBridges)(mockSignerContext, mockCoinConfig);
110
+ expect(mockBuildSignOperation).toHaveBeenCalledWith(mockSignerContext);
111
+ });
112
+ });
113
+ describe("currencyBridge", () => {
114
+ let currencyBridge;
115
+ beforeEach(() => {
116
+ const bridges = (0, index_1.createBridges)(mockSignerContext, mockCoinConfig);
117
+ currencyBridge = bridges.currencyBridge;
118
+ });
119
+ it("should have all required currency bridge methods", () => {
120
+ expect(currencyBridge).toHaveProperty("getPreloadStrategy");
121
+ expect(currencyBridge).toHaveProperty("preload");
122
+ expect(currencyBridge).toHaveProperty("hydrate");
123
+ expect(currencyBridge).toHaveProperty("scanAccounts");
124
+ });
125
+ it("should return getPreloadStrategy from preload module", () => {
126
+ const strategy = currencyBridge.getPreloadStrategy?.(mockCurrency);
127
+ expect(mockGetPreloadStrategy).toHaveBeenCalled();
128
+ expect(strategy).toBeDefined();
129
+ });
130
+ it("should return preload from preload module", async () => {
131
+ const result = await currencyBridge.preload(mockCurrency);
132
+ expect(mockPreload).toHaveBeenCalled();
133
+ expect(result).toBeDefined();
134
+ });
135
+ it("should return hydrate from preload module", () => {
136
+ const data = { some: "data" };
137
+ currencyBridge.hydrate(data, mockCurrency);
138
+ expect(mockHydrate).toHaveBeenCalledWith(data, mockCurrency);
139
+ });
140
+ it("should have scanAccounts function", () => {
141
+ expect(typeof currencyBridge.scanAccounts).toBe("function");
142
+ });
143
+ });
144
+ describe("accountBridge", () => {
145
+ let accountBridge;
146
+ beforeEach(() => {
147
+ const bridges = (0, index_1.createBridges)(mockSignerContext, mockCoinConfig);
148
+ accountBridge = bridges.accountBridge;
149
+ });
150
+ it("should have all required account bridge methods", () => {
151
+ const expectedMethods = [
152
+ "estimateMaxSpendable",
153
+ "createTransaction",
154
+ "updateTransaction",
155
+ "getTransactionStatus",
156
+ "prepareTransaction",
157
+ "sync",
158
+ "receive",
159
+ "signOperation",
160
+ "broadcast",
161
+ "assignFromAccountRaw",
162
+ "assignToAccountRaw",
163
+ "fromOperationExtraRaw",
164
+ "toOperationExtraRaw",
165
+ "getSerializedAddressParameters",
166
+ ];
167
+ expectedMethods.forEach(method => {
168
+ expect(accountBridge).toHaveProperty(method);
169
+ });
170
+ });
171
+ it("should call estimateMaxSpendable from estimateMaxSpendable module", async () => {
172
+ const account = {};
173
+ const transaction = {};
174
+ const result = await accountBridge.estimateMaxSpendable({ account, transaction });
175
+ expect(mockEstimateMaxSpendable).toHaveBeenCalledWith({ account, transaction });
176
+ expect(result).toBeDefined();
177
+ });
178
+ it("should call createTransaction from createTransaction module", () => {
179
+ const account = {};
180
+ const result = accountBridge.createTransaction(account);
181
+ expect(mockCreateTransaction).toHaveBeenCalledWith(account);
182
+ expect(result).toBeDefined();
183
+ });
184
+ it("should call getTransactionStatus from getTransactionStatus module", () => {
185
+ const transaction = {};
186
+ const result = accountBridge.getTransactionStatus({}, transaction);
187
+ expect(mockGetTransactionStatus).toHaveBeenCalledWith({}, transaction);
188
+ expect(result).toBeDefined();
189
+ });
190
+ it("should call prepareTransaction from prepareTransaction module", async () => {
191
+ const account = {};
192
+ const transaction = {};
193
+ const result = await accountBridge.prepareTransaction(account, transaction);
194
+ expect(mockPrepareTransaction).toHaveBeenCalledWith(account, transaction);
195
+ expect(result).toBeDefined();
196
+ });
197
+ it("should call sync from synchronisation module", () => {
198
+ const account = {};
199
+ const result = accountBridge.sync(account, { paginationConfig: {} });
200
+ expect(mockSync).toHaveBeenCalledWith(account, { paginationConfig: {} });
201
+ expect(result).toBeDefined();
202
+ });
203
+ it("should call broadcast from broadcast module", async () => {
204
+ const account = {};
205
+ const signedOperation = {};
206
+ const result = await accountBridge.broadcast({ account, signedOperation });
207
+ expect(mockBroadcast).toHaveBeenCalledWith({ account, signedOperation });
208
+ expect(result).toBeDefined();
209
+ });
210
+ it("should call assignFromAccountRaw from serialization module", () => {
211
+ const accountRaw = {};
212
+ const account = {};
213
+ accountBridge.assignFromAccountRaw?.(accountRaw, account);
214
+ expect(mockAssignFromAccountRaw).toHaveBeenCalledWith(accountRaw, account);
215
+ });
216
+ it("should call assignToAccountRaw from serialization module", () => {
217
+ const account = {};
218
+ const accountRaw = {};
219
+ accountBridge.assignToAccountRaw?.(account, accountRaw);
220
+ expect(mockAssignToAccountRaw).toHaveBeenCalledWith(account, accountRaw);
221
+ });
222
+ it("should call fromOperationExtraRaw from formatters module", () => {
223
+ const operationExtraRaw = {};
224
+ const result = accountBridge.fromOperationExtraRaw?.(operationExtraRaw);
225
+ expect(mockFromOperationExtraRaw).toHaveBeenCalledWith(operationExtraRaw);
226
+ expect(result).toBeDefined();
227
+ });
228
+ it("should call toOperationExtraRaw from formatters module", () => {
229
+ const operationExtra = {};
230
+ const result = accountBridge.toOperationExtraRaw?.(operationExtra);
231
+ expect(mockToOperationExtraRaw).toHaveBeenCalledWith(operationExtra);
232
+ expect(result).toBeDefined();
233
+ });
234
+ it("should have receive function", () => {
235
+ expect(typeof accountBridge.receive).toBe("function");
236
+ });
237
+ it("should have signOperation function", () => {
238
+ expect(typeof accountBridge.signOperation).toBe("function");
239
+ });
240
+ it("should have updateTransaction function", () => {
241
+ expect(typeof accountBridge.updateTransaction).toBe("function");
242
+ });
243
+ it("should have getSerializedAddressParameters function", () => {
244
+ expect(typeof accountBridge.getSerializedAddressParameters).toBe("function");
245
+ });
246
+ });
247
+ describe("error handling", () => {
248
+ it("should handle errors in createBridges gracefully", () => {
249
+ mockSuiConfig.setCoinConfig.mockImplementation(() => {
250
+ throw new Error("Config error");
251
+ });
252
+ expect(() => (0, index_1.createBridges)(mockSignerContext, mockCoinConfig)).toThrow("Config error");
253
+ });
254
+ it("should handle errors in signerGetAddress gracefully", () => {
255
+ // Reset the mock to clear previous error
256
+ mockSuiConfig.setCoinConfig.mockReset();
257
+ mockSuiConfig.setCoinConfig.mockImplementation(() => { });
258
+ mockSignerGetAddress.mockImplementation(() => {
259
+ throw new Error("Signer error");
260
+ });
261
+ expect(() => (0, index_1.createBridges)(mockSignerContext, mockCoinConfig)).toThrow("Signer error");
262
+ });
263
+ });
264
+ });
265
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/bridge/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=preload.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.test.d.ts","sourceRoot":"","sources":["../../src/bridge/preload.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rxjs_1 = require("rxjs");
4
+ const operators_1 = require("rxjs/operators");
5
+ const preload_1 = require("./preload");
6
+ // Mock the log function
7
+ jest.mock("@ledgerhq/logs", () => ({
8
+ log: jest.fn(),
9
+ }));
10
+ describe("Sui Preload Functions", () => {
11
+ beforeEach(() => {
12
+ // Reset the preload data before each test
13
+ (0, preload_1.setSuiPreloadData)({ validators: [], tokens: [] });
14
+ });
15
+ describe("getCurrentSuiPreloadData", () => {
16
+ it("should return the current preloaded data", () => {
17
+ const testData = { validators: [], tokens: [] };
18
+ (0, preload_1.setSuiPreloadData)(testData);
19
+ const data = (0, preload_1.getCurrentSuiPreloadData)();
20
+ expect(data).toEqual(testData);
21
+ });
22
+ });
23
+ describe("getSuiPreloadDataUpdates", () => {
24
+ it("should return an Observable", () => {
25
+ const updates = (0, preload_1.getSuiPreloadDataUpdates)();
26
+ expect(updates).toBeInstanceOf(rxjs_1.Observable);
27
+ });
28
+ it("should emit updates when data is set", done => {
29
+ const testData = { validators: [], tokens: [] };
30
+ const updates = (0, preload_1.getSuiPreloadDataUpdates)();
31
+ updates.pipe((0, operators_1.take)(1)).subscribe(data => {
32
+ expect(data).toEqual(testData);
33
+ done();
34
+ });
35
+ (0, preload_1.setSuiPreloadData)(testData);
36
+ });
37
+ describe("getPreloadStrategy", () => {
38
+ it("should return preload strategy with correct max age", () => {
39
+ const strategy = (0, preload_1.getPreloadStrategy)();
40
+ expect(strategy).toHaveProperty("preloadMaxAge");
41
+ expect(strategy.preloadMaxAge).toBe(30 * 60 * 1000); // 30 minutes in milliseconds
42
+ });
43
+ it("should return consistent strategy object", () => {
44
+ const strategy1 = (0, preload_1.getPreloadStrategy)();
45
+ const strategy2 = (0, preload_1.getPreloadStrategy)();
46
+ expect(strategy1).toEqual(strategy2);
47
+ expect(strategy1.preloadMaxAge).toBe(30 * 60 * 1000);
48
+ });
49
+ });
50
+ });
51
+ });
52
+ //# sourceMappingURL=preload.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload.test.js","sourceRoot":"","sources":["../../src/bridge/preload.test.ts"],"names":[],"mappings":";;AAAA,+BAAkC;AAClC,8CAAsC;AACtC,uCAKmB;AAGnB,wBAAwB;AACxB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;CACf,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE;QACd,0CAA0C;QAC1C,IAAA,2BAAiB,EAAC,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,QAAQ,GAAmB,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAChE,IAAA,2BAAiB,EAAC,QAAQ,CAAC,CAAC;YAE5B,MAAM,IAAI,GAAG,IAAA,kCAAwB,GAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,OAAO,GAAG,IAAA,kCAAwB,GAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,iBAAU,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,IAAI,CAAC,EAAE;YAChD,MAAM,QAAQ,GAAmB,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAChE,MAAM,OAAO,GAAG,IAAA,kCAAwB,GAAE,CAAC;YAE3C,OAAO,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACrC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/B,IAAI,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;YAEH,IAAA,2BAAiB,EAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;gBAC7D,MAAM,QAAQ,GAAG,IAAA,4BAAkB,GAAE,CAAC;gBAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;gBACjD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,6BAA6B;YACpF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBAClD,MAAM,SAAS,GAAG,IAAA,4BAAkB,GAAE,CAAC;gBACvC,MAAM,SAAS,GAAG,IAAA,4BAAkB,GAAE,CAAC;gBAEvC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prepareTransaction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTransaction.test.d.ts","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.test.ts"],"names":[],"mappings":""}