@ledgerhq/coin-sui 0.6.1 → 0.7.0-nightly.1

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 (78) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +33 -3
  3. package/lib/api/index.d.ts +3 -3
  4. package/lib/api/index.d.ts.map +1 -1
  5. package/lib/api/index.js +24 -1
  6. package/lib/api/index.js.map +1 -1
  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 +136 -0
  10. package/lib/api/index.test.js.map +1 -0
  11. package/lib/bridge/buildTransaction.test.d.ts +2 -0
  12. package/lib/bridge/buildTransaction.test.d.ts.map +1 -0
  13. package/lib/bridge/buildTransaction.test.js +324 -0
  14. package/lib/bridge/buildTransaction.test.js.map +1 -0
  15. package/lib/bridge/index.test.d.ts +2 -0
  16. package/lib/bridge/index.test.d.ts.map +1 -0
  17. package/lib/bridge/index.test.js +265 -0
  18. package/lib/bridge/index.test.js.map +1 -0
  19. package/lib/bridge/preload.test.d.ts +2 -0
  20. package/lib/bridge/preload.test.d.ts.map +1 -0
  21. package/lib/bridge/preload.test.js +256 -0
  22. package/lib/bridge/preload.test.js.map +1 -0
  23. package/lib/bridge/signOperation.d.ts.map +1 -1
  24. package/lib/bridge/signOperation.js +0 -13
  25. package/lib/bridge/signOperation.js.map +1 -1
  26. package/lib/bridge/signOperation.test.d.ts +2 -0
  27. package/lib/bridge/signOperation.test.d.ts.map +1 -0
  28. package/lib/bridge/signOperation.test.js +445 -0
  29. package/lib/bridge/signOperation.test.js.map +1 -0
  30. package/lib/network/sdk.d.ts +13 -6
  31. package/lib/network/sdk.d.ts.map +1 -1
  32. package/lib/network/sdk.js +101 -41
  33. package/lib/network/sdk.js.map +1 -1
  34. package/lib/network/sdk.test.js +640 -71
  35. package/lib/network/sdk.test.js.map +1 -1
  36. package/lib-es/api/index.d.ts +3 -3
  37. package/lib-es/api/index.d.ts.map +1 -1
  38. package/lib-es/api/index.js +24 -1
  39. package/lib-es/api/index.js.map +1 -1
  40. package/lib-es/api/index.test.d.ts +2 -0
  41. package/lib-es/api/index.test.d.ts.map +1 -0
  42. package/lib-es/api/index.test.js +111 -0
  43. package/lib-es/api/index.test.js.map +1 -0
  44. package/lib-es/bridge/buildTransaction.test.d.ts +2 -0
  45. package/lib-es/bridge/buildTransaction.test.d.ts.map +1 -0
  46. package/lib-es/bridge/buildTransaction.test.js +322 -0
  47. package/lib-es/bridge/buildTransaction.test.js.map +1 -0
  48. package/lib-es/bridge/index.test.d.ts +2 -0
  49. package/lib-es/bridge/index.test.d.ts.map +1 -0
  50. package/lib-es/bridge/index.test.js +260 -0
  51. package/lib-es/bridge/index.test.js.map +1 -0
  52. package/lib-es/bridge/preload.test.d.ts +2 -0
  53. package/lib-es/bridge/preload.test.d.ts.map +1 -0
  54. package/lib-es/bridge/preload.test.js +254 -0
  55. package/lib-es/bridge/preload.test.js.map +1 -0
  56. package/lib-es/bridge/signOperation.d.ts.map +1 -1
  57. package/lib-es/bridge/signOperation.js +0 -13
  58. package/lib-es/bridge/signOperation.js.map +1 -1
  59. package/lib-es/bridge/signOperation.test.d.ts +2 -0
  60. package/lib-es/bridge/signOperation.test.d.ts.map +1 -0
  61. package/lib-es/bridge/signOperation.test.js +440 -0
  62. package/lib-es/bridge/signOperation.test.js.map +1 -0
  63. package/lib-es/network/sdk.d.ts +13 -6
  64. package/lib-es/network/sdk.d.ts.map +1 -1
  65. package/lib-es/network/sdk.js +100 -41
  66. package/lib-es/network/sdk.js.map +1 -1
  67. package/lib-es/network/sdk.test.js +617 -71
  68. package/lib-es/network/sdk.test.js.map +1 -1
  69. package/package.json +8 -8
  70. package/src/api/index.test.ts +127 -0
  71. package/src/api/index.ts +46 -4
  72. package/src/bridge/buildTransaction.test.ts +406 -0
  73. package/src/bridge/index.test.ts +319 -0
  74. package/src/bridge/preload.test.ts +333 -0
  75. package/src/bridge/signOperation.test.ts +507 -0
  76. package/src/bridge/signOperation.ts +0 -16
  77. package/src/network/sdk.test.ts +745 -99
  78. package/src/network/sdk.ts +131 -54
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/coin-sui@0.6.1 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-sui
2
+ > @ledgerhq/coin-sui@0.7.0-nightly.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-sui
3
3
  > tsc --outDir lib --module commonjs --moduleResolution node10 && tsc -m ES6 --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,16 +1,46 @@
1
1
  # @ledgerhq/coin-sui
2
2
 
3
+ ## 0.7.0-nightly.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`4eee376`](https://github.com/LedgerHQ/ledger-live/commit/4eee3767b513dfb58a156cf2ce8086e31a7d55bf), [`6792990`](https://github.com/LedgerHQ/ledger-live/commit/6792990d8130ec297192bb7d6b98aef024e81dfa), [`132af3d`](https://github.com/LedgerHQ/ledger-live/commit/132af3db5863fb6e54587dd53d4db7b0ec19259e)]:
8
+ - @ledgerhq/types-live@6.78.0-nightly.0
9
+ - @ledgerhq/types-cryptoassets@7.24.0-nightly.0
10
+ - @ledgerhq/cryptoassets@13.22.0-nightly.5
11
+ - @ledgerhq/coin-framework@5.7.0-nightly.1
12
+
13
+ ## 0.7.0-nightly.0
14
+
15
+ ### Minor Changes
16
+
17
+ - [#11002](https://github.com/LedgerHQ/ledger-live/pull/11002) [`7e092b1`](https://github.com/LedgerHQ/ledger-live/commit/7e092b187406dc30a0e205c2ed5de4aab5880a95) Thanks [@jccguimaraes](https://github.com/jccguimaraes)! - Fix sui swap device disconnected error
18
+
19
+ ### Patch Changes
20
+
21
+ - [#10933](https://github.com/LedgerHQ/ledger-live/pull/10933) [`16f057e`](https://github.com/LedgerHQ/ledger-live/commit/16f057ea9cd1332856f74dafecf0a175fb2eb300) Thanks [@jccguimaraes](https://github.com/jccguimaraes)! - fix: sui pending operation sync
22
+
23
+ - [#10932](https://github.com/LedgerHQ/ledger-live/pull/10932) [`72baa62`](https://github.com/LedgerHQ/ledger-live/commit/72baa62633401447dd1e9414defa8d1a69eb0b78) Thanks [@jccguimaraes](https://github.com/jccguimaraes)! - fix: alpaca operation sync and time
24
+
25
+ - Updated dependencies [[`72c2a6c`](https://github.com/LedgerHQ/ledger-live/commit/72c2a6c91cfee66fac3505774ba16049fba1c0cf)]:
26
+ - @ledgerhq/cryptoassets@13.22.0-nightly.4
27
+ - @ledgerhq/coin-framework@5.6.1-nightly.0
28
+
3
29
  ## 0.6.1
4
30
 
5
31
  ### Patch Changes
6
32
 
7
- - [#10913](https://github.com/LedgerHQ/ledger-live/pull/10913) [`d4a6f38`](https://github.com/LedgerHQ/ledger-live/commit/d4a6f382183922f78cecf00c276ebea99504871a) Thanks [@semeano](https://github.com/semeano)! - sui: fixed send token issue
33
+ - Updated dependencies [[`d053a79`](https://github.com/LedgerHQ/ledger-live/commit/d053a7969ac7976ea6d10955c3cfa47621be1b32), [`90b023d`](https://github.com/LedgerHQ/ledger-live/commit/90b023d9a6db34fef865abf96ab31a5e0bcef42a), [`2f38d03`](https://github.com/LedgerHQ/ledger-live/commit/2f38d032ec8e8481e4ff3b37f33aa4eb3872b542), [`0232f73`](https://github.com/LedgerHQ/ledger-live/commit/0232f73efa73eb3a16c306f25dd110e12b9c1fb7)]:
34
+ - @ledgerhq/types-live@6.77.0
35
+ - @ledgerhq/coin-framework@5.6.0
8
36
 
9
- ## 0.6.1-hotfix.0
37
+ ## 0.6.1-next.0
10
38
 
11
39
  ### Patch Changes
12
40
 
13
- - [#10913](https://github.com/LedgerHQ/ledger-live/pull/10913) [`d4a6f38`](https://github.com/LedgerHQ/ledger-live/commit/d4a6f382183922f78cecf00c276ebea99504871a) Thanks [@semeano](https://github.com/semeano)! - sui: fixed send token issue
41
+ - Updated dependencies [[`d053a79`](https://github.com/LedgerHQ/ledger-live/commit/d053a7969ac7976ea6d10955c3cfa47621be1b32), [`90b023d`](https://github.com/LedgerHQ/ledger-live/commit/90b023d9a6db34fef865abf96ab31a5e0bcef42a), [`2f38d03`](https://github.com/LedgerHQ/ledger-live/commit/2f38d032ec8e8481e4ff3b37f33aa4eb3872b542), [`0232f73`](https://github.com/LedgerHQ/ledger-live/commit/0232f73efa73eb3a16c306f25dd110e12b9c1fb7)]:
42
+ - @ledgerhq/types-live@6.77.0-next.0
43
+ - @ledgerhq/coin-framework@5.6.0-next.0
14
44
 
15
45
  ## 0.6.0
16
46
 
@@ -1,5 +1,5 @@
1
- import { type SuiCoinConfig } from "../config";
1
+ import { type SuiConfig } from "../config";
2
2
  import type { SuiAsset } from "./types";
3
- import type { AlpacaApi } from "@ledgerhq/coin-framework/api/index";
4
- export declare function createApi(config: SuiCoinConfig): AlpacaApi<SuiAsset>;
3
+ import { AlpacaApi } from "@ledgerhq/coin-framework/api/index";
4
+ export declare function createApi(config: SuiConfig): AlpacaApi<SuiAsset>;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAU3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EACV,SAAS,EAGV,MAAM,oCAAoC,CAAC;AAE5C,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAYpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAUvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EACL,SAAS,EAKV,MAAM,oCAAoC,CAAC;AAE5C,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAYhE"}
package/lib/api/index.js CHANGED
@@ -15,7 +15,7 @@ function createApi(config) {
15
15
  estimateFees: estimate,
16
16
  getBalance: logic_1.getBalance,
17
17
  lastBlock: logic_1.lastBlock,
18
- listOperations: logic_1.listOperations,
18
+ listOperations: list,
19
19
  };
20
20
  }
21
21
  exports.createApi = createApi;
@@ -27,4 +27,27 @@ async function estimate(transactionIntent) {
27
27
  const fees = await (0, logic_1.estimateFees)(transactionIntent);
28
28
  return { value: fees };
29
29
  }
30
+ async function list(address, pagination) {
31
+ return operationsFromHeight(address, pagination.minHeight);
32
+ }
33
+ async function operationsFromHeight(address, minHeight) {
34
+ const state = {
35
+ heightLimit: minHeight,
36
+ continueIterations: true,
37
+ accumulator: [],
38
+ };
39
+ while (state.continueIterations) {
40
+ const option = state.apiNextCursor
41
+ ? { minHeight: minHeight, cursor: state.apiNextCursor }
42
+ : { minHeight: minHeight };
43
+ const [operations, nextCursor] = await (0, logic_1.listOperations)(address, option);
44
+ const opsFromHeight = operations.filter(op => op.tx.block.height > minHeight);
45
+ state.accumulator.push(...opsFromHeight);
46
+ state.apiNextCursor = nextCursor;
47
+ // The API makes 2 calls "IN" and "OUT" so even if we started filtering a few elements, we may still have more txs to fetch on one of the two calls.
48
+ // We can only stop when we've filtered all txs.
49
+ state.continueIterations = nextCursor !== "" && opsFromHeight.length > 0;
50
+ }
51
+ return [state.accumulator, state.apiNextCursor ? state.apiNextCursor : ""];
52
+ }
30
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA2D;AAC3D,oCAQkB;AAQlB,SAAgB,SAAS,CAAC,MAAqB;IAC7C,gBAAU,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,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,EAAd,sBAAc;KACf,CAAC;AACJ,CAAC;AAZD,8BAYC;AAED,KAAK,UAAU,KAAK,CAAC,iBAA8C;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,wBAAgB,EAAC,iBAAiB,CAAC,CAAC;IAE/D,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,iBAA8C;IACpE,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAY,EAAC,iBAAiB,CAAC,CAAC;IACnD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;AAAA,uDAAuD;AACvD,oCAQkB;AAUlB,SAAgB,SAAS,CAAC,MAAiB;IACzC,gBAAU,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,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,IAAI;KACrB,CAAC;AACJ,CAAC;AAZD,8BAYC;AAED,KAAK,UAAU,KAAK,CAAC,iBAA8C;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,wBAAgB,EAAC,iBAAiB,CAAC,CAAC;IAE/D,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,iBAA8C;IACpE,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAY,EAAC,iBAAiB,CAAC,CAAC;IACnD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,IAAI,CACjB,OAAe,EACf,UAAsB;IAEtB,OAAO,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;AAC7D,CAAC;AASD,KAAK,UAAU,oBAAoB,CACjC,OAAe,EACf,SAAiB;IAEjB,MAAM,KAAK,GAAoB;QAC7B,WAAW,EAAE,SAAS;QACtB,kBAAkB,EAAE,IAAI;QACxB,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,OAAO,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa;YAChC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE;YACvD,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,IAAA,sBAAc,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC9E,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QACzC,KAAK,CAAC,aAAa,GAAG,UAAU,CAAC;QACjC,oJAAoJ;QACpJ,gDAAgD;QAChD,KAAK,CAAC,kBAAkB,GAAG,UAAU,KAAK,EAAE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC"}
@@ -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/api/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const index_1 = require("./index");
27
+ const logic = __importStar(require("../logic"));
28
+ jest.mock("../logic");
29
+ jest.mock("../config", () => ({
30
+ __esModule: true,
31
+ default: {
32
+ setCoinConfig: jest.fn(),
33
+ getCoinConfig: jest.fn(),
34
+ },
35
+ }));
36
+ const mockConfig = {
37
+ node: { url: "http://localhost:1234" },
38
+ status: { type: "active" },
39
+ };
40
+ describe("api/index", () => {
41
+ let api;
42
+ beforeEach(() => {
43
+ jest.clearAllMocks();
44
+ api = (0, index_1.createApi)(mockConfig);
45
+ });
46
+ it("should set coin config and return API object", () => {
47
+ expect(typeof api).toBe("object");
48
+ expect(Object.keys(api)).toEqual(expect.arrayContaining([
49
+ "broadcast",
50
+ "combine",
51
+ "craftTransaction",
52
+ "estimateFees",
53
+ "getBalance",
54
+ "lastBlock",
55
+ "listOperations",
56
+ ]));
57
+ });
58
+ it("should call broadcast from logic", async () => {
59
+ const mockBroadcast = jest.spyOn(logic, "broadcast").mockResolvedValue("broadcasted");
60
+ const result = await api.broadcast("tx");
61
+ expect(mockBroadcast).toHaveBeenCalledWith("tx");
62
+ expect(result).toBe("broadcasted");
63
+ });
64
+ it("should call combine from logic", async () => {
65
+ const mockCombine = jest.spyOn(logic, "combine").mockReturnValue("combined-tx");
66
+ const arg1 = "txstring";
67
+ const arg2 = "sigstring";
68
+ const result = api.combine(arg1, arg2);
69
+ expect(mockCombine).toHaveBeenCalledWith(arg1, arg2);
70
+ expect(result).toBe("combined-tx");
71
+ });
72
+ it("should call craftTransaction via craft wrapper and return hex string", async () => {
73
+ const unsigned = Buffer.from("unsignedTx");
74
+ jest.spyOn(logic, "craftTransaction").mockResolvedValue({ unsigned });
75
+ const txIntent = { foo: "bar" };
76
+ const result = await api.craftTransaction(txIntent);
77
+ expect(result).toBe(unsigned.toString("hex"));
78
+ expect(logic.craftTransaction).toHaveBeenCalledWith(txIntent);
79
+ });
80
+ it("should call estimateFees via estimate wrapper and return FeeEstimation", async () => {
81
+ jest.spyOn(logic, "estimateFees").mockResolvedValue(123n);
82
+ const txIntent = { foo: "bar" };
83
+ const result = await api.estimateFees(txIntent);
84
+ expect(result).toEqual({ value: 123n });
85
+ expect(logic.estimateFees).toHaveBeenCalledWith(txIntent);
86
+ });
87
+ it("should call getBalance from logic", async () => {
88
+ const mockGetBalance = jest
89
+ .spyOn(logic, "getBalance")
90
+ .mockResolvedValue([{ value: 42n, asset: { type: "native" } }]);
91
+ const result = await api.getBalance("address");
92
+ expect(mockGetBalance).toHaveBeenCalledWith("address");
93
+ expect(result).toEqual([{ value: 42n, asset: { type: "native" } }]);
94
+ });
95
+ it("should call lastBlock from logic", async () => {
96
+ const mockLastBlock = jest
97
+ .spyOn(logic, "lastBlock")
98
+ .mockResolvedValue({ hash: "h", height: 1, time: new Date() });
99
+ const result = await api.lastBlock();
100
+ expect(mockLastBlock).toHaveBeenCalled();
101
+ expect(result).toHaveProperty("hash");
102
+ expect(result).toHaveProperty("height");
103
+ expect(result).toHaveProperty("time");
104
+ });
105
+ it("should call listOperations from logic", async () => {
106
+ const minimalOperation = {
107
+ id: "op1",
108
+ type: "IN",
109
+ senders: ["sender1"],
110
+ recipients: ["recipient1"],
111
+ value: 1n,
112
+ asset: { type: "native" },
113
+ tx: {
114
+ hash: "hash1",
115
+ block: { height: 1 },
116
+ fees: 1n,
117
+ date: new Date(),
118
+ },
119
+ };
120
+ const mockListOperations = jest
121
+ .spyOn(logic, "listOperations")
122
+ .mockResolvedValue([[minimalOperation], ""]); // Return empty string for cursor
123
+ const result = await api.listOperations("address", { minHeight: 0 });
124
+ expect(mockListOperations).toHaveBeenCalledWith("address", { minHeight: 0 });
125
+ expect(result).toEqual([[minimalOperation], ""]);
126
+ });
127
+ it("should throw if craftTransaction throws", async () => {
128
+ jest.spyOn(logic, "craftTransaction").mockRejectedValue(new Error("fail"));
129
+ await expect(api.craftTransaction({})).rejects.toThrow("fail");
130
+ });
131
+ it("should throw if estimateFees throws", async () => {
132
+ jest.spyOn(logic, "estimateFees").mockRejectedValue(new Error("fail"));
133
+ await expect(api.estimateFees({})).rejects.toThrow("fail");
134
+ });
135
+ });
136
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/api/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=buildTransaction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildTransaction.test.d.ts","sourceRoot":"","sources":["../../src/bridge/buildTransaction.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,324 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bignumber_js_1 = require("bignumber.js");
4
+ const buildTransaction_1 = require("./buildTransaction");
5
+ // Mock the craftTransaction function
6
+ jest.mock("../logic", () => ({
7
+ craftTransaction: jest.fn(),
8
+ }));
9
+ const logic_1 = require("../logic");
10
+ describe("buildTransaction", () => {
11
+ const mockAccount = {
12
+ id: "test-account-id",
13
+ name: "Test Account",
14
+ address: "0x1234567890abcdef",
15
+ freshAddress: "0x1234567890abcdef",
16
+ freshAddressPath: "m/44'/784'/0'/0'/0'",
17
+ currency: {
18
+ id: "sui",
19
+ name: "Sui",
20
+ family: "sui",
21
+ units: [],
22
+ type: "CryptoCurrency",
23
+ },
24
+ balance: new bignumber_js_1.BigNumber("1000000000"),
25
+ spendableBalance: new bignumber_js_1.BigNumber("1000000000"),
26
+ blockHeight: 1000,
27
+ lastSyncDate: new Date(),
28
+ operations: [],
29
+ pendingOperations: [],
30
+ unit: {
31
+ name: "SUI",
32
+ code: "SUI",
33
+ magnitude: 9,
34
+ },
35
+ type: "Account",
36
+ };
37
+ const mockTransaction = {
38
+ id: "test-transaction-id",
39
+ family: "sui",
40
+ mode: "send",
41
+ coinType: "0x2::sui::SUI",
42
+ amount: new bignumber_js_1.BigNumber("100000000"),
43
+ recipient: "0xabcdef1234567890",
44
+ fees: new bignumber_js_1.BigNumber("1000000"),
45
+ errors: {},
46
+ warnings: {},
47
+ useAllAmount: false,
48
+ estimatedFees: new bignumber_js_1.BigNumber("1000000"),
49
+ feeStrategy: "medium",
50
+ networkInfo: {
51
+ family: "sui",
52
+ fees: new bignumber_js_1.BigNumber("1000000"),
53
+ },
54
+ };
55
+ beforeEach(() => {
56
+ jest.clearAllMocks();
57
+ logic_1.craftTransaction.mockResolvedValue({
58
+ unsigned: new Uint8Array([1, 2, 3, 4, 5]),
59
+ });
60
+ });
61
+ describe("buildTransaction", () => {
62
+ it("should call craftTransaction with correct parameters", async () => {
63
+ // WHEN
64
+ await (0, buildTransaction_1.buildTransaction)(mockAccount, mockTransaction);
65
+ // THEN
66
+ expect(logic_1.craftTransaction).toHaveBeenCalledWith({
67
+ sender: mockAccount.freshAddress,
68
+ recipient: mockTransaction.recipient,
69
+ type: mockTransaction.mode,
70
+ coinType: "0x2::sui::SUI",
71
+ amount: BigInt(mockTransaction.amount.toString()),
72
+ asset: { type: "native" },
73
+ });
74
+ });
75
+ it("should return the result from craftTransaction", async () => {
76
+ const expectedResult = {
77
+ unsigned: new Uint8Array([1, 2, 3, 4, 5]),
78
+ };
79
+ // WHEN
80
+ const result = await (0, buildTransaction_1.buildTransaction)(mockAccount, mockTransaction);
81
+ // THEN
82
+ expect(result).toEqual(expectedResult);
83
+ expect(result.unsigned).toBeInstanceOf(Uint8Array);
84
+ });
85
+ it("should handle BigNumber amount conversion correctly", async () => {
86
+ const transactionWithLargeAmount = {
87
+ ...mockTransaction,
88
+ amount: new bignumber_js_1.BigNumber("999999999999999999"),
89
+ };
90
+ // WHEN
91
+ await (0, buildTransaction_1.buildTransaction)(mockAccount, transactionWithLargeAmount);
92
+ // THEN
93
+ expect(logic_1.craftTransaction).toHaveBeenCalledWith(expect.objectContaining({
94
+ amount: BigInt("999999999999999999"),
95
+ }));
96
+ });
97
+ it("should handle zero amount", async () => {
98
+ const transactionWithZeroAmount = {
99
+ ...mockTransaction,
100
+ amount: new bignumber_js_1.BigNumber("0"),
101
+ };
102
+ // WHEN
103
+ await (0, buildTransaction_1.buildTransaction)(mockAccount, transactionWithZeroAmount);
104
+ // THEN
105
+ expect(logic_1.craftTransaction).toHaveBeenCalledWith(expect.objectContaining({
106
+ amount: BigInt("0"),
107
+ }));
108
+ });
109
+ it("should handle different transaction modes", async () => {
110
+ const transactionWithDifferentMode = {
111
+ ...mockTransaction,
112
+ mode: "send",
113
+ };
114
+ // WHEN
115
+ await (0, buildTransaction_1.buildTransaction)(mockAccount, transactionWithDifferentMode);
116
+ // THEN
117
+ expect(logic_1.craftTransaction).toHaveBeenCalledWith(expect.objectContaining({
118
+ type: "send",
119
+ }));
120
+ });
121
+ it("should handle different recipient addresses", async () => {
122
+ const transactionWithDifferentRecipient = {
123
+ ...mockTransaction,
124
+ recipient: "0x9876543210fedcba",
125
+ };
126
+ // WHEN
127
+ await (0, buildTransaction_1.buildTransaction)(mockAccount, transactionWithDifferentRecipient);
128
+ // THEN
129
+ expect(logic_1.craftTransaction).toHaveBeenCalledWith(expect.objectContaining({
130
+ recipient: "0x9876543210fedcba",
131
+ }));
132
+ });
133
+ it("should handle different account addresses", async () => {
134
+ const accountWithDifferentAddress = {
135
+ ...mockAccount,
136
+ freshAddress: "0xabcdef1234567890",
137
+ };
138
+ // WHEN
139
+ await (0, buildTransaction_1.buildTransaction)(accountWithDifferentAddress, mockTransaction);
140
+ // THEN
141
+ expect(logic_1.craftTransaction).toHaveBeenCalledWith(expect.objectContaining({
142
+ sender: "0xabcdef1234567890",
143
+ }));
144
+ });
145
+ it("should propagate errors from craftTransaction", async () => {
146
+ const error = new Error("Transaction creation failed");
147
+ logic_1.craftTransaction.mockRejectedValue(error);
148
+ // WHEN & THEN
149
+ await expect((0, buildTransaction_1.buildTransaction)(mockAccount, mockTransaction)).rejects.toThrow("Transaction creation failed");
150
+ });
151
+ it("should handle craftTransaction returning null", async () => {
152
+ logic_1.craftTransaction.mockResolvedValue(null);
153
+ // WHEN
154
+ const result = await (0, buildTransaction_1.buildTransaction)(mockAccount, mockTransaction);
155
+ // THEN
156
+ expect(result).toBeNull();
157
+ });
158
+ it("should handle craftTransaction returning undefined", async () => {
159
+ logic_1.craftTransaction.mockResolvedValue(undefined);
160
+ // WHEN
161
+ const result = await (0, buildTransaction_1.buildTransaction)(mockAccount, mockTransaction);
162
+ // THEN
163
+ expect(result).toBeUndefined();
164
+ });
165
+ });
166
+ describe("extractExtrinsicArg", () => {
167
+ it("should extract correct fields from transaction", () => {
168
+ const transaction = {
169
+ ...mockTransaction,
170
+ useAllAmount: true,
171
+ };
172
+ // WHEN
173
+ const result = (0, buildTransaction_1.extractExtrinsicArg)(transaction);
174
+ // THEN
175
+ expect(result).toEqual({
176
+ mode: "send",
177
+ coinType: "0x2::sui::SUI",
178
+ amount: new bignumber_js_1.BigNumber("100000000"),
179
+ recipient: "0xabcdef1234567890",
180
+ useAllAmount: true,
181
+ });
182
+ });
183
+ it("should handle transaction without useAllAmount", () => {
184
+ const transaction = {
185
+ ...mockTransaction,
186
+ useAllAmount: false,
187
+ };
188
+ // WHEN
189
+ const result = (0, buildTransaction_1.extractExtrinsicArg)(transaction);
190
+ // THEN
191
+ expect(result).toEqual({
192
+ mode: "send",
193
+ coinType: "0x2::sui::SUI",
194
+ amount: new bignumber_js_1.BigNumber("100000000"),
195
+ recipient: "0xabcdef1234567890",
196
+ useAllAmount: false,
197
+ });
198
+ });
199
+ it("should handle transaction with undefined useAllAmount", () => {
200
+ const transaction = {
201
+ ...mockTransaction,
202
+ useAllAmount: undefined,
203
+ };
204
+ // WHEN
205
+ const result = (0, buildTransaction_1.extractExtrinsicArg)(transaction);
206
+ // THEN
207
+ expect(result).toEqual({
208
+ mode: "send",
209
+ coinType: "0x2::sui::SUI",
210
+ amount: new bignumber_js_1.BigNumber("100000000"),
211
+ recipient: "0xabcdef1234567890",
212
+ useAllAmount: undefined,
213
+ });
214
+ });
215
+ it("should handle different transaction modes", () => {
216
+ const transaction = {
217
+ ...mockTransaction,
218
+ mode: "send",
219
+ };
220
+ // WHEN
221
+ const result = (0, buildTransaction_1.extractExtrinsicArg)(transaction);
222
+ // THEN
223
+ expect(result.mode).toBe("send");
224
+ });
225
+ it("should handle different amounts", () => {
226
+ const transaction = {
227
+ ...mockTransaction,
228
+ amount: new bignumber_js_1.BigNumber("500000000"),
229
+ };
230
+ // WHEN
231
+ const result = (0, buildTransaction_1.extractExtrinsicArg)(transaction);
232
+ // THEN
233
+ expect(result.amount).toEqual(new bignumber_js_1.BigNumber("500000000"));
234
+ });
235
+ it("should handle different recipients", () => {
236
+ const transaction = {
237
+ ...mockTransaction,
238
+ recipient: "0x9876543210fedcba",
239
+ };
240
+ // WHEN
241
+ const result = (0, buildTransaction_1.extractExtrinsicArg)(transaction);
242
+ // THEN
243
+ expect(result.recipient).toBe("0x9876543210fedcba");
244
+ });
245
+ it("should not include other transaction fields", () => {
246
+ const transaction = {
247
+ ...mockTransaction,
248
+ fees: new bignumber_js_1.BigNumber("1000000"),
249
+ errors: { someError: new Error("test") },
250
+ };
251
+ // WHEN
252
+ const result = (0, buildTransaction_1.extractExtrinsicArg)(transaction);
253
+ // THEN
254
+ expect(result).not.toHaveProperty("fees");
255
+ expect(result).not.toHaveProperty("errors");
256
+ expect(result).not.toHaveProperty("family");
257
+ expect(result).not.toHaveProperty("id");
258
+ });
259
+ it("should handle zero amount", () => {
260
+ const transaction = {
261
+ ...mockTransaction,
262
+ amount: new bignumber_js_1.BigNumber("0"),
263
+ };
264
+ // WHEN
265
+ const result = (0, buildTransaction_1.extractExtrinsicArg)(transaction);
266
+ // THEN
267
+ expect(result.amount).toEqual(new bignumber_js_1.BigNumber("0"));
268
+ });
269
+ });
270
+ describe("Integration between extractExtrinsicArg and buildTransaction", () => {
271
+ it("should work together correctly", async () => {
272
+ const transaction = {
273
+ ...mockTransaction,
274
+ useAllAmount: true,
275
+ };
276
+ // Extract extrinsic arg
277
+ const extrinsicArg = (0, buildTransaction_1.extractExtrinsicArg)(transaction);
278
+ // Build transaction
279
+ await (0, buildTransaction_1.buildTransaction)(mockAccount, transaction);
280
+ // Verify that the extracted arg contains the expected fields
281
+ expect(extrinsicArg).toHaveProperty("mode", "send");
282
+ expect(extrinsicArg).toHaveProperty("amount");
283
+ expect(extrinsicArg).toHaveProperty("recipient");
284
+ expect(extrinsicArg).toHaveProperty("useAllAmount", true);
285
+ // Verify that buildTransaction was called with correct parameters
286
+ expect(logic_1.craftTransaction).toHaveBeenCalledWith({
287
+ sender: mockAccount.freshAddress,
288
+ recipient: transaction.recipient,
289
+ type: transaction.mode,
290
+ coinType: "0x2::sui::SUI",
291
+ amount: BigInt(transaction.amount.toString()),
292
+ asset: { type: "native" },
293
+ });
294
+ });
295
+ });
296
+ describe("Edge Cases", () => {
297
+ it("should handle empty recipient string", async () => {
298
+ const transactionWithEmptyRecipient = {
299
+ ...mockTransaction,
300
+ recipient: "",
301
+ };
302
+ // WHEN
303
+ await (0, buildTransaction_1.buildTransaction)(mockAccount, transactionWithEmptyRecipient);
304
+ // THEN
305
+ expect(logic_1.craftTransaction).toHaveBeenCalledWith(expect.objectContaining({
306
+ recipient: "",
307
+ }));
308
+ });
309
+ it("should handle very long recipient addresses", async () => {
310
+ const longAddress = "0x" + "a".repeat(100);
311
+ const transactionWithLongRecipient = {
312
+ ...mockTransaction,
313
+ recipient: longAddress,
314
+ };
315
+ // WHEN
316
+ await (0, buildTransaction_1.buildTransaction)(mockAccount, transactionWithLongRecipient);
317
+ // THEN
318
+ expect(logic_1.craftTransaction).toHaveBeenCalledWith(expect.objectContaining({
319
+ recipient: longAddress,
320
+ }));
321
+ });
322
+ });
323
+ });
324
+ //# sourceMappingURL=buildTransaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildTransaction.test.js","sourceRoot":"","sources":["../../src/bridge/buildTransaction.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":""}