@ledgerhq/coin-aptos 2.2.0-nightly.3 → 2.2.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 (97) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +25 -21
  3. package/lib/__tests__/api/craftTransaction.unit.test.js +31 -16
  4. package/lib/__tests__/api/craftTransaction.unit.test.js.map +1 -1
  5. package/lib/__tests__/api/getBalance.unit.test.js +28 -68
  6. package/lib/__tests__/api/getBalance.unit.test.js.map +1 -1
  7. package/lib/__tests__/api/index.integ.test.js +11 -30
  8. package/lib/__tests__/api/index.integ.test.js.map +1 -1
  9. package/lib/__tests__/api/index.test.js.map +1 -1
  10. package/lib/__tests__/bridge/synchronisation.test.js +6 -15
  11. package/lib/__tests__/bridge/synchronisation.test.js.map +1 -1
  12. package/lib/__tests__/network/client.test.js +66 -69
  13. package/lib/__tests__/network/client.test.js.map +1 -1
  14. package/lib/api/index.d.ts +3 -3
  15. package/lib/api/index.d.ts.map +1 -1
  16. package/lib/api/index.js +2 -2
  17. package/lib/api/index.js.map +1 -1
  18. package/lib/bridge/synchronisation.d.ts.map +1 -1
  19. package/lib/bridge/synchronisation.js +2 -7
  20. package/lib/bridge/synchronisation.js.map +1 -1
  21. package/lib/logic/craftTransaction.d.ts +2 -2
  22. package/lib/logic/craftTransaction.d.ts.map +1 -1
  23. package/lib/logic/craftTransaction.js +3 -3
  24. package/lib/logic/craftTransaction.js.map +1 -1
  25. package/lib/logic/getBalance.d.ts +5 -0
  26. package/lib/logic/getBalance.d.ts.map +1 -0
  27. package/lib/logic/getBalance.js +12 -0
  28. package/lib/logic/getBalance.js.map +1 -0
  29. package/lib/network/client.d.ts +7 -3
  30. package/lib/network/client.d.ts.map +1 -1
  31. package/lib/network/client.js +62 -28
  32. package/lib/network/client.js.map +1 -1
  33. package/lib/types/assets.d.ts +4 -0
  34. package/lib/types/assets.d.ts.map +1 -1
  35. package/lib-es/__tests__/api/craftTransaction.unit.test.js +31 -16
  36. package/lib-es/__tests__/api/craftTransaction.unit.test.js.map +1 -1
  37. package/lib-es/__tests__/api/getBalance.unit.test.js +26 -69
  38. package/lib-es/__tests__/api/getBalance.unit.test.js.map +1 -1
  39. package/lib-es/__tests__/api/index.integ.test.js +11 -30
  40. package/lib-es/__tests__/api/index.integ.test.js.map +1 -1
  41. package/lib-es/__tests__/api/index.test.js.map +1 -1
  42. package/lib-es/__tests__/bridge/synchronisation.test.js +6 -15
  43. package/lib-es/__tests__/bridge/synchronisation.test.js.map +1 -1
  44. package/lib-es/__tests__/network/client.test.js +66 -69
  45. package/lib-es/__tests__/network/client.test.js.map +1 -1
  46. package/lib-es/api/index.d.ts +3 -3
  47. package/lib-es/api/index.d.ts.map +1 -1
  48. package/lib-es/api/index.js +2 -2
  49. package/lib-es/api/index.js.map +1 -1
  50. package/lib-es/bridge/synchronisation.d.ts.map +1 -1
  51. package/lib-es/bridge/synchronisation.js +2 -4
  52. package/lib-es/bridge/synchronisation.js.map +1 -1
  53. package/lib-es/logic/craftTransaction.d.ts +2 -2
  54. package/lib-es/logic/craftTransaction.d.ts.map +1 -1
  55. package/lib-es/logic/craftTransaction.js +3 -3
  56. package/lib-es/logic/craftTransaction.js.map +1 -1
  57. package/lib-es/logic/getBalance.d.ts +5 -0
  58. package/lib-es/logic/getBalance.d.ts.map +1 -0
  59. package/lib-es/logic/getBalance.js +8 -0
  60. package/lib-es/logic/getBalance.js.map +1 -0
  61. package/lib-es/network/client.d.ts +7 -3
  62. package/lib-es/network/client.d.ts.map +1 -1
  63. package/lib-es/network/client.js +62 -28
  64. package/lib-es/network/client.js.map +1 -1
  65. package/lib-es/types/assets.d.ts +4 -0
  66. package/lib-es/types/assets.d.ts.map +1 -1
  67. package/package.json +8 -8
  68. package/src/__tests__/api/craftTransaction.unit.test.ts +38 -23
  69. package/src/__tests__/api/getBalance.unit.test.ts +28 -82
  70. package/src/__tests__/api/index.integ.test.ts +15 -36
  71. package/src/__tests__/api/index.test.ts +6 -4
  72. package/src/__tests__/bridge/synchronisation.test.ts +6 -21
  73. package/src/__tests__/network/client.test.ts +89 -83
  74. package/src/api/index.ts +8 -6
  75. package/src/bridge/synchronisation.ts +2 -4
  76. package/src/logic/craftTransaction.ts +8 -6
  77. package/src/logic/getBalance.ts +15 -0
  78. package/src/network/client.ts +74 -31
  79. package/src/types/assets.ts +5 -0
  80. package/lib/__tests__/logic/getBalances.test.d.ts +0 -2
  81. package/lib/__tests__/logic/getBalances.test.d.ts.map +0 -1
  82. package/lib/__tests__/logic/getBalances.test.js +0 -63
  83. package/lib/__tests__/logic/getBalances.test.js.map +0 -1
  84. package/lib/logic/getBalances.d.ts +0 -5
  85. package/lib/logic/getBalances.d.ts.map +0 -1
  86. package/lib/logic/getBalances.js +0 -21
  87. package/lib/logic/getBalances.js.map +0 -1
  88. package/lib-es/__tests__/logic/getBalances.test.d.ts +0 -2
  89. package/lib-es/__tests__/logic/getBalances.test.d.ts.map +0 -1
  90. package/lib-es/__tests__/logic/getBalances.test.js +0 -61
  91. package/lib-es/__tests__/logic/getBalances.test.js.map +0 -1
  92. package/lib-es/logic/getBalances.d.ts +0 -5
  93. package/lib-es/logic/getBalances.d.ts.map +0 -1
  94. package/lib-es/logic/getBalances.js +0 -17
  95. package/lib-es/logic/getBalances.js.map +0 -1
  96. package/src/__tests__/logic/getBalances.test.ts +0 -80
  97. package/src/logic/getBalances.ts +0 -27
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBalances.d.ts","sourceRoot":"","sources":["../../src/logic/getBalances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,wBAAsB,WAAW,CAC/B,WAAW,EAAE,QAAQ,EACrB,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAiBhC"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBalances = void 0;
4
- const constants_1 = require("../constants");
5
- async function getBalances(aptosClient, address, contract_address) {
6
- const balances = await aptosClient.getBalances(address, contract_address);
7
- return balances.map(balance => {
8
- const isNative = balance.contractAddress === constants_1.APTOS_ASSET_ID;
9
- const standard = balance.contractAddress.split("::").length === 3
10
- ? constants_1.TOKEN_TYPE.COIN
11
- : constants_1.TOKEN_TYPE.FUNGIBLE_ASSET;
12
- return {
13
- value: BigInt(balance.amount.toString()),
14
- asset: isNative
15
- ? { type: "native" }
16
- : { type: "token", contractAddress: balance.contractAddress, standard: standard },
17
- };
18
- });
19
- }
20
- exports.getBalances = getBalances;
21
- //# sourceMappingURL=getBalances.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBalances.js","sourceRoot":"","sources":["../../src/logic/getBalances.ts"],"names":[],"mappings":";;;AAGA,4CAA0D;AAEnD,KAAK,UAAU,WAAW,CAC/B,WAAqB,EACrB,OAAe,EACf,gBAAyB;IAEzB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAE1E,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,KAAK,0BAAc,CAAC;QAC5D,MAAM,QAAQ,GACZ,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAC9C,CAAC,CAAC,sBAAU,CAAC,IAAI;YACjB,CAAC,CAAC,sBAAU,CAAC,cAAc,CAAC;QAEhC,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxC,KAAK,EAAE,QAAQ;gBACb,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACpB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE;SACpF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AArBD,kCAqBC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getBalances.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBalances.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/logic/getBalances.test.ts"],"names":[],"mappings":""}
@@ -1,61 +0,0 @@
1
- import { getBalances } from "../../logic/getBalances";
2
- import { APTOS_ASSET_ID, TOKEN_TYPE } from "../../constants";
3
- describe("getBalance", () => {
4
- it("should return balance with value 10", async () => {
5
- const mockAptosClient = {
6
- getBalances: jest.fn().mockResolvedValue([{ contractAddress: APTOS_ASSET_ID, amount: 10n }]),
7
- };
8
- const accountAddress = "0x4be47904b31063d60ac0dfde06e5dc203e647edbe853bae0e666ae5a763c3906";
9
- const balances = await getBalances(mockAptosClient, accountAddress);
10
- expect(balances).toStrictEqual([{ value: 10n, asset: { type: "native" } }]);
11
- });
12
- it("should return empty array when no contract_address and no data", async () => {
13
- const mockAptosClient = {
14
- getBalances: jest.fn().mockResolvedValue([]),
15
- };
16
- const accountAddress = "0x4be47904b31063d60ac0dfde06e5dc203e647edbe853bae0e666ae5a763c3906";
17
- const balances = await getBalances(mockAptosClient, accountAddress);
18
- expect(balances).toStrictEqual([]);
19
- });
20
- it("should return balance with 'native' contract_address (APTOS_ASSET_ID)", async () => {
21
- const mockAptosClient = {
22
- getBalances: jest.fn().mockResolvedValue([{ contractAddress: APTOS_ASSET_ID, amount: 10n }]),
23
- };
24
- const accountAddress = "0x4be47904b31063d60ac0dfde06e5dc203e647edbe853bae0e666ae5a763c3906";
25
- const balances = await getBalances(mockAptosClient, accountAddress);
26
- expect(balances).toStrictEqual([{ value: 10n, asset: { type: "native" } }]);
27
- });
28
- it("should return token balance when contract_address is a coin token", async () => {
29
- const TOKEN_ASSET_ID = "0x1::my_token::Token";
30
- const mockAptosClient = {
31
- getBalances: jest.fn().mockResolvedValue([{ contractAddress: TOKEN_ASSET_ID, amount: 25n }]),
32
- };
33
- const accountAddress = "0x4be47904b31063d60ac0dfde06e5dc203e647edbe853bae0e666ae5a763c3906";
34
- const balances = await getBalances(mockAptosClient, accountAddress);
35
- expect(balances).toStrictEqual([
36
- {
37
- value: 25n,
38
- asset: { type: "token", contractAddress: TOKEN_ASSET_ID, standard: TOKEN_TYPE.COIN },
39
- },
40
- ]);
41
- });
42
- it("should return token balance when contract_address is a fungible_asset token", async () => {
43
- const TOKEN_ASSET_ID = "0x1";
44
- const mockAptosClient = {
45
- getBalances: jest.fn().mockResolvedValue([{ contractAddress: TOKEN_ASSET_ID, amount: 25n }]),
46
- };
47
- const accountAddress = "0x4be47904b31063d60ac0dfde06e5dc203e647edbe853bae0e666ae5a763c3906";
48
- const balances = await getBalances(mockAptosClient, accountAddress);
49
- expect(balances).toStrictEqual([
50
- {
51
- value: 25n,
52
- asset: {
53
- type: "token",
54
- contractAddress: TOKEN_ASSET_ID,
55
- standard: TOKEN_TYPE.FUNGIBLE_ASSET,
56
- },
57
- },
58
- ]);
59
- });
60
- });
61
- //# sourceMappingURL=getBalances.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBalances.test.js","sourceRoot":"","sources":["../../../src/__tests__/logic/getBalances.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { Balance } from "@ledgerhq/coin-framework/lib/api/types";
2
- import type { AptosAsset } from "../types/assets";
3
- import type { AptosAPI } from "../network";
4
- export declare function getBalances(aptosClient: AptosAPI, address: string, contract_address?: string): Promise<Balance<AptosAsset>[]>;
5
- //# sourceMappingURL=getBalances.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBalances.d.ts","sourceRoot":"","sources":["../../src/logic/getBalances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,wBAAsB,WAAW,CAC/B,WAAW,EAAE,QAAQ,EACrB,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAiBhC"}
@@ -1,17 +0,0 @@
1
- import { APTOS_ASSET_ID, TOKEN_TYPE } from "../constants";
2
- export async function getBalances(aptosClient, address, contract_address) {
3
- const balances = await aptosClient.getBalances(address, contract_address);
4
- return balances.map(balance => {
5
- const isNative = balance.contractAddress === APTOS_ASSET_ID;
6
- const standard = balance.contractAddress.split("::").length === 3
7
- ? TOKEN_TYPE.COIN
8
- : TOKEN_TYPE.FUNGIBLE_ASSET;
9
- return {
10
- value: BigInt(balance.amount.toString()),
11
- asset: isNative
12
- ? { type: "native" }
13
- : { type: "token", contractAddress: balance.contractAddress, standard: standard },
14
- };
15
- });
16
- }
17
- //# sourceMappingURL=getBalances.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBalances.js","sourceRoot":"","sources":["../../src/logic/getBalances.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,WAAqB,EACrB,OAAe,EACf,gBAAyB;IAEzB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAE1E,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,KAAK,cAAc,CAAC;QAC5D,MAAM,QAAQ,GACZ,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAC9C,CAAC,CAAC,UAAU,CAAC,IAAI;YACjB,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC;QAEhC,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxC,KAAK,EAAE,QAAQ;gBACb,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACpB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE;SACpF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,80 +0,0 @@
1
- import { getBalances } from "../../logic/getBalances";
2
- import { APTOS_ASSET_ID, TOKEN_TYPE } from "../../constants";
3
- import type { AptosAPI } from "../../network";
4
-
5
- describe("getBalance", () => {
6
- it("should return balance with value 10", async () => {
7
- const mockAptosClient = {
8
- getBalances: jest.fn().mockResolvedValue([{ contractAddress: APTOS_ASSET_ID, amount: 10n }]),
9
- } as Partial<AptosAPI> as AptosAPI;
10
-
11
- const accountAddress = "0x4be47904b31063d60ac0dfde06e5dc203e647edbe853bae0e666ae5a763c3906";
12
-
13
- const balances = await getBalances(mockAptosClient, accountAddress);
14
-
15
- expect(balances).toStrictEqual([{ value: 10n, asset: { type: "native" } }]);
16
- });
17
-
18
- it("should return empty array when no contract_address and no data", async () => {
19
- const mockAptosClient = {
20
- getBalances: jest.fn().mockResolvedValue([]),
21
- } as Partial<AptosAPI> as AptosAPI;
22
-
23
- const accountAddress = "0x4be47904b31063d60ac0dfde06e5dc203e647edbe853bae0e666ae5a763c3906";
24
-
25
- const balances = await getBalances(mockAptosClient, accountAddress);
26
- expect(balances).toStrictEqual([]);
27
- });
28
-
29
- it("should return balance with 'native' contract_address (APTOS_ASSET_ID)", async () => {
30
- const mockAptosClient = {
31
- getBalances: jest.fn().mockResolvedValue([{ contractAddress: APTOS_ASSET_ID, amount: 10n }]),
32
- } as Partial<AptosAPI> as AptosAPI;
33
-
34
- const accountAddress = "0x4be47904b31063d60ac0dfde06e5dc203e647edbe853bae0e666ae5a763c3906";
35
-
36
- const balances = await getBalances(mockAptosClient, accountAddress);
37
-
38
- expect(balances).toStrictEqual([{ value: 10n, asset: { type: "native" } }]);
39
- });
40
-
41
- it("should return token balance when contract_address is a coin token", async () => {
42
- const TOKEN_ASSET_ID = "0x1::my_token::Token";
43
- const mockAptosClient = {
44
- getBalances: jest.fn().mockResolvedValue([{ contractAddress: TOKEN_ASSET_ID, amount: 25n }]),
45
- } as Partial<AptosAPI> as AptosAPI;
46
-
47
- const accountAddress = "0x4be47904b31063d60ac0dfde06e5dc203e647edbe853bae0e666ae5a763c3906";
48
-
49
- const balances = await getBalances(mockAptosClient, accountAddress);
50
-
51
- expect(balances).toStrictEqual([
52
- {
53
- value: 25n,
54
- asset: { type: "token", contractAddress: TOKEN_ASSET_ID, standard: TOKEN_TYPE.COIN },
55
- },
56
- ]);
57
- });
58
-
59
- it("should return token balance when contract_address is a fungible_asset token", async () => {
60
- const TOKEN_ASSET_ID = "0x1";
61
- const mockAptosClient = {
62
- getBalances: jest.fn().mockResolvedValue([{ contractAddress: TOKEN_ASSET_ID, amount: 25n }]),
63
- } as Partial<AptosAPI> as AptosAPI;
64
-
65
- const accountAddress = "0x4be47904b31063d60ac0dfde06e5dc203e647edbe853bae0e666ae5a763c3906";
66
-
67
- const balances = await getBalances(mockAptosClient, accountAddress);
68
-
69
- expect(balances).toStrictEqual([
70
- {
71
- value: 25n,
72
- asset: {
73
- type: "token",
74
- contractAddress: TOKEN_ASSET_ID,
75
- standard: TOKEN_TYPE.FUNGIBLE_ASSET,
76
- },
77
- },
78
- ]);
79
- });
80
- });
@@ -1,27 +0,0 @@
1
- import type { Balance } from "@ledgerhq/coin-framework/lib/api/types";
2
- import type { AptosAsset } from "../types/assets";
3
- import type { AptosAPI } from "../network";
4
- import { APTOS_ASSET_ID, TOKEN_TYPE } from "../constants";
5
-
6
- export async function getBalances(
7
- aptosClient: AptosAPI,
8
- address: string,
9
- contract_address?: string,
10
- ): Promise<Balance<AptosAsset>[]> {
11
- const balances = await aptosClient.getBalances(address, contract_address);
12
-
13
- return balances.map(balance => {
14
- const isNative = balance.contractAddress === APTOS_ASSET_ID;
15
- const standard =
16
- balance.contractAddress.split("::").length === 3
17
- ? TOKEN_TYPE.COIN
18
- : TOKEN_TYPE.FUNGIBLE_ASSET;
19
-
20
- return {
21
- value: BigInt(balance.amount.toString()),
22
- asset: isNative
23
- ? { type: "native" }
24
- : { type: "token", contractAddress: balance.contractAddress, standard: standard },
25
- };
26
- });
27
- }