@ledgerhq/live-common 34.46.0-nightly.4 → 34.46.0-nightly.5

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 (136) hide show
  1. package/lib/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
  2. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js +6 -4
  3. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  4. package/lib/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
  5. package/lib/bridge/generic-alpaca/getTransactionStatus.js +2 -2
  6. package/lib/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
  7. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  8. package/lib/bridge/generic-alpaca/prepareTransaction.js +12 -12
  9. package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  10. package/lib/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  11. package/lib/bridge/generic-alpaca/signOperation.js +3 -4
  12. package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
  13. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js +1 -1
  14. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  15. package/lib/bridge/generic-alpaca/utils.d.ts +0 -1
  16. package/lib/bridge/generic-alpaca/utils.d.ts.map +1 -1
  17. package/lib/bridge/generic-alpaca/utils.js +0 -1
  18. package/lib/bridge/generic-alpaca/utils.js.map +1 -1
  19. package/lib/currencies/index.d.ts +1 -1
  20. package/lib/currencies/index.d.ts.map +1 -1
  21. package/lib/currencies/index.js +1 -2
  22. package/lib/currencies/index.js.map +1 -1
  23. package/lib/currencies/sortByMarketcap.test.js +2 -1
  24. package/lib/currencies/sortByMarketcap.test.js.map +1 -1
  25. package/lib/e2e/enum/AppInfos.d.ts +1 -1
  26. package/lib/e2e/enum/AppInfos.d.ts.map +1 -1
  27. package/lib/e2e/enum/Provider.d.ts.map +1 -1
  28. package/lib/e2e/enum/Provider.js +2 -2
  29. package/lib/e2e/enum/Provider.js.map +1 -1
  30. package/lib/e2e/index.d.ts +2 -0
  31. package/lib/e2e/index.d.ts.map +1 -1
  32. package/lib/e2e/speculos.d.ts.map +1 -1
  33. package/lib/e2e/speculos.js +3 -4
  34. package/lib/e2e/speculos.js.map +1 -1
  35. package/lib/e2e/speculosCI.d.ts +4 -0
  36. package/lib/e2e/speculosCI.d.ts.map +1 -1
  37. package/lib/e2e/speculosCI.js +16 -6
  38. package/lib/e2e/speculosCI.js.map +1 -1
  39. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  40. package/lib/featureFlags/defaultFeatures.js +1 -0
  41. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  42. package/lib/featureFlags/useFeature.d.ts +1 -1
  43. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  44. package/lib/modularDrawer/data/entities/index.d.ts +68 -0
  45. package/lib/modularDrawer/data/entities/index.d.ts.map +1 -0
  46. package/lib/modularDrawer/data/entities/index.js +3 -0
  47. package/lib/modularDrawer/data/entities/index.js.map +1 -0
  48. package/lib/modularDrawer/data/state-manager/api.d.ts +152 -0
  49. package/lib/modularDrawer/data/state-manager/api.d.ts.map +1 -0
  50. package/lib/modularDrawer/data/state-manager/api.js +45 -0
  51. package/lib/modularDrawer/data/state-manager/api.js.map +1 -0
  52. package/lib/modularDrawer/hooks/__test__/useAssetsData.test.d.ts +5 -0
  53. package/lib/modularDrawer/hooks/__test__/useAssetsData.test.d.ts.map +1 -0
  54. package/lib/modularDrawer/hooks/__test__/useAssetsData.test.js +120 -0
  55. package/lib/modularDrawer/hooks/__test__/useAssetsData.test.js.map +1 -0
  56. package/lib/modularDrawer/hooks/useAssetsData.d.ts +13 -0
  57. package/lib/modularDrawer/hooks/useAssetsData.d.ts.map +1 -0
  58. package/lib/modularDrawer/hooks/useAssetsData.js +31 -0
  59. package/lib/modularDrawer/hooks/useAssetsData.js.map +1 -0
  60. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
  61. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js +6 -4
  62. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  63. package/lib-es/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
  64. package/lib-es/bridge/generic-alpaca/getTransactionStatus.js +2 -2
  65. package/lib-es/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
  66. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  67. package/lib-es/bridge/generic-alpaca/prepareTransaction.js +12 -12
  68. package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  69. package/lib-es/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  70. package/lib-es/bridge/generic-alpaca/signOperation.js +3 -4
  71. package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
  72. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js +1 -1
  73. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  74. package/lib-es/bridge/generic-alpaca/utils.d.ts +0 -1
  75. package/lib-es/bridge/generic-alpaca/utils.d.ts.map +1 -1
  76. package/lib-es/bridge/generic-alpaca/utils.js +0 -1
  77. package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
  78. package/lib-es/currencies/index.d.ts +1 -1
  79. package/lib-es/currencies/index.d.ts.map +1 -1
  80. package/lib-es/currencies/index.js +1 -1
  81. package/lib-es/currencies/index.js.map +1 -1
  82. package/lib-es/currencies/sortByMarketcap.test.js +2 -1
  83. package/lib-es/currencies/sortByMarketcap.test.js.map +1 -1
  84. package/lib-es/e2e/enum/AppInfos.d.ts +1 -1
  85. package/lib-es/e2e/enum/AppInfos.d.ts.map +1 -1
  86. package/lib-es/e2e/enum/Provider.d.ts.map +1 -1
  87. package/lib-es/e2e/enum/Provider.js +2 -2
  88. package/lib-es/e2e/enum/Provider.js.map +1 -1
  89. package/lib-es/e2e/index.d.ts +2 -0
  90. package/lib-es/e2e/index.d.ts.map +1 -1
  91. package/lib-es/e2e/speculos.d.ts.map +1 -1
  92. package/lib-es/e2e/speculos.js +3 -4
  93. package/lib-es/e2e/speculos.js.map +1 -1
  94. package/lib-es/e2e/speculosCI.d.ts +4 -0
  95. package/lib-es/e2e/speculosCI.d.ts.map +1 -1
  96. package/lib-es/e2e/speculosCI.js +14 -5
  97. package/lib-es/e2e/speculosCI.js.map +1 -1
  98. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  99. package/lib-es/featureFlags/defaultFeatures.js +1 -0
  100. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  101. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  102. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  103. package/lib-es/modularDrawer/data/entities/index.d.ts +68 -0
  104. package/lib-es/modularDrawer/data/entities/index.d.ts.map +1 -0
  105. package/lib-es/modularDrawer/data/entities/index.js +2 -0
  106. package/lib-es/modularDrawer/data/entities/index.js.map +1 -0
  107. package/lib-es/modularDrawer/data/state-manager/api.d.ts +152 -0
  108. package/lib-es/modularDrawer/data/state-manager/api.d.ts.map +1 -0
  109. package/lib-es/modularDrawer/data/state-manager/api.js +42 -0
  110. package/lib-es/modularDrawer/data/state-manager/api.js.map +1 -0
  111. package/lib-es/modularDrawer/hooks/__test__/useAssetsData.test.d.ts +5 -0
  112. package/lib-es/modularDrawer/hooks/__test__/useAssetsData.test.d.ts.map +1 -0
  113. package/lib-es/modularDrawer/hooks/__test__/useAssetsData.test.js +118 -0
  114. package/lib-es/modularDrawer/hooks/__test__/useAssetsData.test.js.map +1 -0
  115. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts +13 -0
  116. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts.map +1 -0
  117. package/lib-es/modularDrawer/hooks/useAssetsData.js +27 -0
  118. package/lib-es/modularDrawer/hooks/useAssetsData.js.map +1 -0
  119. package/package.json +46 -45
  120. package/src/bridge/generic-alpaca/estimateMaxSpendable.ts +11 -5
  121. package/src/bridge/generic-alpaca/getTransactionStatus.ts +2 -1
  122. package/src/bridge/generic-alpaca/prepareTransaction.ts +20 -16
  123. package/src/bridge/generic-alpaca/signOperation.ts +3 -2
  124. package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +1 -1
  125. package/src/bridge/generic-alpaca/utils.ts +0 -2
  126. package/src/currencies/index.ts +0 -1
  127. package/src/currencies/sortByMarketcap.test.ts +2 -1
  128. package/src/e2e/enum/AppInfos.ts +1 -1
  129. package/src/e2e/enum/Provider.ts +2 -2
  130. package/src/e2e/speculos.ts +3 -4
  131. package/src/e2e/speculosCI.ts +18 -6
  132. package/src/featureFlags/defaultFeatures.ts +1 -0
  133. package/src/modularDrawer/data/entities/index.ts +79 -0
  134. package/src/modularDrawer/data/state-manager/api.ts +62 -0
  135. package/src/modularDrawer/hooks/__test__/useAssetsData.test.ts +139 -0
  136. package/src/modularDrawer/hooks/useAssetsData.ts +36 -0
@@ -0,0 +1,118 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+ import { renderHook } from "@testing-library/react";
5
+ import { useAssetsData } from "../useAssetsData";
6
+ import { useGetAssetsDataQuery } from "../../data/state-manager/api";
7
+ jest.mock("../../data/state-manager/api", () => ({
8
+ useGetAssetsDataQuery: jest.fn(),
9
+ }));
10
+ const mockSetCursor = jest.fn();
11
+ jest.mock("react", () => ({
12
+ ...jest.requireActual("react"),
13
+ useState: jest.fn(() => [undefined, mockSetCursor]),
14
+ useCallback: jest.fn(fn => fn),
15
+ useMemo: jest.fn(fn => fn()),
16
+ }));
17
+ const mockUseGetAssetsDataQuery = jest.mocked(useGetAssetsDataQuery);
18
+ describe("useAssetsData", () => {
19
+ beforeEach(() => {
20
+ jest.clearAllMocks();
21
+ });
22
+ it("should return loading state when API is loading", () => {
23
+ mockUseGetAssetsDataQuery.mockReturnValue({
24
+ data: undefined,
25
+ isLoading: true,
26
+ error: undefined,
27
+ refetch: jest.fn(),
28
+ isFetching: false,
29
+ isSuccess: false,
30
+ isError: false,
31
+ currentData: undefined,
32
+ });
33
+ const { result } = renderHook(() => useAssetsData({}));
34
+ expect(result.current.isLoading).toBe(true);
35
+ expect(result.current.data).toBe(undefined);
36
+ expect(result.current.hasMore).toBe(false);
37
+ });
38
+ it("should return data and hasMore when API returns data", () => {
39
+ const mockData = {
40
+ assetsData: [],
41
+ pagination: { nextCursor: "test-cursor" },
42
+ };
43
+ mockUseGetAssetsDataQuery.mockReturnValue({
44
+ data: mockData,
45
+ isLoading: false,
46
+ error: undefined,
47
+ refetch: jest.fn(),
48
+ isFetching: false,
49
+ isSuccess: true,
50
+ isError: false,
51
+ currentData: mockData,
52
+ });
53
+ const { result } = renderHook(() => useAssetsData({}));
54
+ expect(result.current.data).toBe(mockData);
55
+ expect(result.current.isLoading).toBe(false);
56
+ expect(result.current.hasMore).toBe(true);
57
+ });
58
+ it("should return error when API has error", () => {
59
+ const mockError = new Error("API Error");
60
+ mockUseGetAssetsDataQuery.mockReturnValue({
61
+ data: undefined,
62
+ isLoading: false,
63
+ error: mockError,
64
+ refetch: jest.fn(),
65
+ isFetching: false,
66
+ isSuccess: false,
67
+ isError: true,
68
+ currentData: undefined,
69
+ });
70
+ const { result } = renderHook(() => useAssetsData({}));
71
+ expect(result.current.error).toBe(mockError);
72
+ expect(result.current.isLoading).toBe(false);
73
+ });
74
+ it("should call setCursor when loadNext is called and there's a nextCursor", () => {
75
+ const nextCursor = "next-cursor-456";
76
+ mockUseGetAssetsDataQuery.mockReturnValue({
77
+ data: {
78
+ assetsData: [],
79
+ pagination: { nextCursor },
80
+ },
81
+ isLoading: false,
82
+ error: undefined,
83
+ refetch: jest.fn(),
84
+ isFetching: false,
85
+ isSuccess: true,
86
+ isError: false,
87
+ currentData: {
88
+ assetsData: [],
89
+ pagination: { nextCursor },
90
+ },
91
+ });
92
+ const { result } = renderHook(() => useAssetsData({}));
93
+ result.current.loadNext();
94
+ expect(mockSetCursor).toHaveBeenCalledWith(nextCursor);
95
+ });
96
+ it("should not call setCursor when there's no nextCursor", () => {
97
+ mockUseGetAssetsDataQuery.mockReturnValue({
98
+ data: {
99
+ assetsData: [],
100
+ pagination: { nextCursor: undefined },
101
+ },
102
+ isLoading: false,
103
+ error: undefined,
104
+ refetch: jest.fn(),
105
+ isFetching: false,
106
+ isSuccess: true,
107
+ isError: false,
108
+ currentData: {
109
+ assetsData: [],
110
+ pagination: { nextCursor: undefined },
111
+ },
112
+ });
113
+ const { result } = renderHook(() => useAssetsData({}));
114
+ result.current.loadNext();
115
+ expect(mockSetCursor).not.toHaveBeenCalled();
116
+ });
117
+ });
118
+ //# sourceMappingURL=useAssetsData.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAssetsData.test.js","sourceRoot":"","sources":["../../../../src/modularDrawer/hooks/__test__/useAssetsData.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare function useAssetsData({ search, currencyIds, }: {
2
+ search?: string;
3
+ currencyIds?: string[];
4
+ }): {
5
+ data: import("../data/state-manager/api").AssetsDataWithPagination | undefined;
6
+ error: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
7
+ isLoading: boolean;
8
+ isSuccess: boolean;
9
+ hasMore: boolean;
10
+ cursor: string | undefined;
11
+ loadNext: () => void;
12
+ };
13
+ //# sourceMappingURL=useAssetsData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAssetsData.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useAssetsData.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,WAAW,GACZ,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;;;;;;;;EA0BA"}
@@ -0,0 +1,27 @@
1
+ import { useState, useCallback } from "react";
2
+ import { useGetAssetsDataQuery } from "../data/state-manager/api";
3
+ export function useAssetsData({ search, currencyIds, }) {
4
+ const [cursor, setCursor] = useState(undefined);
5
+ const { data, error, isLoading, isSuccess } = useGetAssetsDataQuery({
6
+ cursor,
7
+ search,
8
+ currencyIds,
9
+ });
10
+ const loadNext = useCallback(() => {
11
+ const nextCursor = data?.pagination?.nextCursor;
12
+ if (nextCursor) {
13
+ setCursor(nextCursor);
14
+ }
15
+ }, [data?.pagination?.nextCursor]);
16
+ const hasMore = Boolean(data?.pagination?.nextCursor);
17
+ return {
18
+ data,
19
+ error,
20
+ isLoading,
21
+ isSuccess,
22
+ hasMore,
23
+ cursor,
24
+ loadNext,
25
+ };
26
+ }
27
+ //# sourceMappingURL=useAssetsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAssetsData.js","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useAssetsData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,WAAW,GAIZ;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACpE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,qBAAqB,CAAC;QAClE,MAAM;QACN,MAAM;QACN,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC;QAChD,IAAI,UAAU,EAAE;YACd,SAAS,CAAC,UAAU,CAAC,CAAC;SACvB;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEtD,OAAO;QACL,IAAI;QACJ,KAAK;QACL,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ledgerhq/live-common",
3
3
  "description": "Common ground for the Ledger Live apps",
4
- "version": "34.46.0-nightly.4",
4
+ "version": "34.46.0-nightly.5",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/LedgerHQ/ledger-live.git"
@@ -111,7 +111,8 @@
111
111
  "@ledgerhq/wallet-api-client": "^1.9.1",
112
112
  "@ledgerhq/wallet-api-core": "^1.21.1",
113
113
  "@ledgerhq/wallet-api-server": "^1.10.1",
114
- "@stellar/stellar-sdk": "^11.3.0",
114
+ "@reduxjs/toolkit": "2.8.2",
115
+ "@stellar/stellar-sdk": "^14.0.0",
115
116
  "@stricahq/typhonjs": "^3.0.0",
116
117
  "@taquito/ledger-signer": "^22.0.0",
117
118
  "@ton-community/ton-ledger": "^7.2.0",
@@ -129,7 +130,7 @@
129
130
  "@zondax/ledger-mina-js": "0.0.2",
130
131
  "@zondax/ledger-stacks": "^1.0.2",
131
132
  "async": "^3.2.3",
132
- "axios": "1.7.7",
133
+ "axios": "1.11.0",
133
134
  "bech32": "^1.1.3",
134
135
  "bignumber.js": "^9.1.2",
135
136
  "bip32": "^2.0.6",
@@ -138,6 +139,7 @@
138
139
  "date-fns": "^2.23.0",
139
140
  "expect": "^27.4.6",
140
141
  "fuse.js": "^6.6.2",
142
+ "i18next": "20.6.1",
141
143
  "invariant": "^2.2.2",
142
144
  "isomorphic-ws": "^4.0.1",
143
145
  "jotai": "2.12.4",
@@ -163,45 +165,45 @@
163
165
  "xstate": "^5.19.2",
164
166
  "yargs": "^17.0.0",
165
167
  "zod": "^3.22.4",
166
- "i18next": "20.6.1",
167
- "@ledgerhq/coin-algorand": "^0.9.18-nightly.1",
168
- "@ledgerhq/coin-aptos": "^3.1.1-nightly.1",
169
- "@ledgerhq/coin-bitcoin": "^0.21.0-nightly.1",
170
- "@ledgerhq/coin-canton": "^0.2.2-nightly.1",
171
- "@ledgerhq/coin-cardano": "^0.11.2-nightly.1",
172
- "@ledgerhq/coin-casper": "^2.0.9-nightly.1",
173
- "@ledgerhq/coin-celo": "^1.2.1-nightly.3",
174
- "@ledgerhq/coin-cosmos": "^0.16.7-nightly.1",
175
- "@ledgerhq/coin-evm": "^2.28.0-nightly.3",
176
- "@ledgerhq/coin-filecoin": "^1.10.1-nightly.1",
177
- "@ledgerhq/coin-framework": "^6.2.0-nightly.1",
178
- "@ledgerhq/coin-hedera": "^1.11.0-nightly.1",
179
- "@ledgerhq/coin-icon": "^0.11.5-nightly.1",
180
- "@ledgerhq/coin-internet_computer": "^1.7.18-nightly.1",
181
- "@ledgerhq/coin-mina": "^1.1.17-nightly.1",
182
- "@ledgerhq/coin-multiversx": "^0.4.18-nightly.1",
183
- "@ledgerhq/coin-near": "^0.12.1-nightly.1",
184
- "@ledgerhq/coin-polkadot": "^6.7.1-nightly.1",
185
- "@ledgerhq/coin-solana": "^0.32.0-nightly.1",
186
- "@ledgerhq/coin-stacks": "^0.8.18-nightly.1",
187
- "@ledgerhq/coin-stellar": "^6.2.0-nightly.1",
188
- "@ledgerhq/coin-sui": "^0.10.1-nightly.1",
189
- "@ledgerhq/coin-tezos": "^6.1.1-nightly.1",
190
- "@ledgerhq/coin-ton": "^0.13.7-nightly.1",
191
- "@ledgerhq/coin-tron": "^5.1.1-nightly.1",
192
- "@ledgerhq/coin-vechain": "^2.8.2-nightly.1",
193
- "@ledgerhq/coin-xrp": "^7.1.1-nightly.1",
168
+ "@ledgerhq/coin-algorand": "^0.9.18-nightly.2",
169
+ "@ledgerhq/coin-aptos": "^3.1.1-nightly.2",
170
+ "@ledgerhq/coin-bitcoin": "^0.21.0-nightly.2",
171
+ "@ledgerhq/coin-canton": "^0.2.2-nightly.2",
172
+ "@ledgerhq/coin-cardano": "^0.11.2-nightly.2",
173
+ "@ledgerhq/coin-casper": "^2.0.9-nightly.2",
174
+ "@ledgerhq/coin-celo": "^1.2.1-nightly.4",
175
+ "@ledgerhq/coin-cosmos": "^0.16.7-nightly.2",
176
+ "@ledgerhq/coin-evm": "^2.28.0-nightly.4",
177
+ "@ledgerhq/coin-filecoin": "^1.10.1-nightly.2",
178
+ "@ledgerhq/coin-framework": "^6.2.0-nightly.2",
179
+ "@ledgerhq/coin-hedera": "^1.11.0-nightly.2",
180
+ "@ledgerhq/coin-icon": "^0.11.5-nightly.2",
181
+ "@ledgerhq/coin-internet_computer": "^1.7.18-nightly.2",
182
+ "@ledgerhq/coin-mina": "^1.1.17-nightly.2",
183
+ "@ledgerhq/coin-multiversx": "^0.4.18-nightly.2",
184
+ "@ledgerhq/coin-near": "^0.12.1-nightly.2",
185
+ "@ledgerhq/coin-polkadot": "^6.7.1-nightly.2",
186
+ "@ledgerhq/coin-solana": "^0.32.0-nightly.2",
187
+ "@ledgerhq/coin-stacks": "^0.8.18-nightly.2",
188
+ "@ledgerhq/coin-stellar": "^6.2.0-nightly.2",
189
+ "@ledgerhq/coin-sui": "^0.10.1-nightly.2",
190
+ "@ledgerhq/coin-tezos": "^6.1.1-nightly.2",
191
+ "@ledgerhq/coin-ton": "^0.13.7-nightly.2",
192
+ "@ledgerhq/coin-tron": "^5.1.1-nightly.2",
193
+ "@ledgerhq/coin-vechain": "^2.8.2-nightly.2",
194
+ "@ledgerhq/coin-xrp": "^7.2.0-nightly.2",
194
195
  "@ledgerhq/crypto-icons-ui": "^1.18.0-nightly.0",
195
196
  "@ledgerhq/cryptoassets": "^13.26.0-nightly.1",
196
- "@ledgerhq/device-core": "^0.6.1-nightly.1",
197
+ "@ledgerhq/device-core": "^0.6.1-nightly.2",
197
198
  "@ledgerhq/devices": "8.5.1-nightly.0",
198
199
  "@ledgerhq/errors": "^6.25.0-nightly.0",
199
200
  "@ledgerhq/hw-app-algorand": "^6.31.6-nightly.0",
200
201
  "@ledgerhq/hw-app-aptos": "^6.34.6-nightly.0",
201
202
  "@ledgerhq/hw-app-btc": "^10.10.2-nightly.0",
202
- "@ledgerhq/hw-app-celo": "^6.34.1-nightly.1",
203
+ "@ledgerhq/hw-app-celo": "^6.34.1-nightly.2",
203
204
  "@ledgerhq/hw-app-cosmos": "^6.32.6-nightly.0",
204
- "@ledgerhq/hw-app-eth": "^6.45.16-nightly.1",
205
+ "@ledgerhq/hw-app-eth": "^6.45.16-nightly.2",
206
+ "@ledgerhq/hw-app-exchange": "^0.12.1-nightly.0",
205
207
  "@ledgerhq/hw-app-hedera": "^1.2.6-nightly.0",
206
208
  "@ledgerhq/hw-app-icon": "^1.3.6-nightly.0",
207
209
  "@ledgerhq/hw-app-multiversx": "^6.25.1-nightly.0",
@@ -209,7 +211,6 @@
209
211
  "@ledgerhq/hw-app-polkadot": "^6.34.6-nightly.0",
210
212
  "@ledgerhq/hw-app-str": "^7.2.6-nightly.0",
211
213
  "@ledgerhq/hw-app-sui": "^1.3.0-nightly.0",
212
- "@ledgerhq/hw-app-exchange": "^0.12.1-nightly.0",
213
214
  "@ledgerhq/hw-app-tezos": "^6.31.6-nightly.0",
214
215
  "@ledgerhq/hw-app-trx": "^6.31.6-nightly.0",
215
216
  "@ledgerhq/hw-app-vet": "^0.5.14-nightly.1",
@@ -218,22 +219,22 @@
218
219
  "@ledgerhq/hw-transport-mocker": "^6.29.10-nightly.0",
219
220
  "@ledgerhq/ledger-cal-service": "^1.3.1-nightly.1",
220
221
  "@ledgerhq/live-config": "^3.2.0-nightly.0",
221
- "@ledgerhq/live-countervalues": "^0.7.0-nightly.1",
222
- "@ledgerhq/live-countervalues-react": "^0.4.1-nightly.1",
222
+ "@ledgerhq/live-countervalues": "^0.7.0-nightly.2",
223
+ "@ledgerhq/live-countervalues-react": "^0.4.1-nightly.2",
223
224
  "@ledgerhq/live-dmk-shared": "^0.12.1-nightly.0",
224
225
  "@ledgerhq/live-env": "^2.15.0-nightly.1",
225
226
  "@ledgerhq/live-hooks": "0.1.0",
226
227
  "@ledgerhq/live-network": "^2.0.16-nightly.1",
228
+ "@ledgerhq/live-nft": "^0.8.18-nightly.2",
227
229
  "@ledgerhq/live-promise": "^0.1.1",
228
- "@ledgerhq/live-signer-evm": "^0.7.1-nightly.3",
229
- "@ledgerhq/live-signer-solana": "^0.5.3-nightly.1",
230
- "@ledgerhq/live-signer-canton": "^0.2.2-nightly.1",
231
- "@ledgerhq/live-wallet": "^0.13.0-nightly.1",
230
+ "@ledgerhq/live-signer-canton": "^0.2.2-nightly.2",
231
+ "@ledgerhq/live-signer-evm": "^0.7.1-nightly.4",
232
+ "@ledgerhq/live-signer-solana": "^0.5.3-nightly.2",
233
+ "@ledgerhq/live-wallet": "^0.13.0-nightly.2",
232
234
  "@ledgerhq/logs": "^6.13.0",
233
235
  "@ledgerhq/speculos-transport": "^0.2.9-nightly.1",
234
236
  "@ledgerhq/wallet-api-acre-module": "^0.6.0",
235
- "@ledgerhq/wallet-api-exchange-module": "^0.16.0-nightly.0",
236
- "@ledgerhq/live-nft": "^0.8.18-nightly.1"
237
+ "@ledgerhq/wallet-api-exchange-module": "^0.16.0-nightly.0"
237
238
  },
238
239
  "devDependencies": {
239
240
  "@solana/web3.js": "1.95.4",
@@ -281,10 +282,10 @@
281
282
  "undici": "6.19.2",
282
283
  "uuid": "^8.3.2",
283
284
  "ws": "7",
284
- "@ledgerhq/device-react": "^0.2.42-nightly.1",
285
+ "@ledgerhq/device-react": "^0.2.42-nightly.2",
285
286
  "@ledgerhq/types-cryptoassets": "^7.26.0-nightly.0",
286
287
  "@ledgerhq/types-devices": "^6.26.0",
287
- "@ledgerhq/types-live": "^6.82.0-nightly.1"
288
+ "@ledgerhq/types-live": "^6.82.0-nightly.2"
288
289
  },
289
290
  "scripts": {
290
291
  "build": "zx ./scripts/build-ts.mjs",
@@ -19,18 +19,24 @@ export function genericEstimateMaxSpendable(
19
19
  ...transaction,
20
20
  amount: mainAccount.spendableBalance,
21
21
  useAllAmount: true,
22
- fees: transaction?.fees ? BigInt(transaction.fees.toString()) : 0n,
23
22
  };
24
- const fees = await getAlpacaApi(network, kind).estimateFees(
25
- transactionToIntent(mainAccount, draftTransaction),
26
- );
23
+
24
+ let fees = transaction?.fees;
25
+ if (transaction?.fees === null || transaction?.fees === undefined) {
26
+ fees = (
27
+ await getAlpacaApi(network, kind).estimateFees(
28
+ transactionToIntent(mainAccount, draftTransaction),
29
+ )
30
+ ).value;
31
+ }
27
32
  const { amount } = await getAlpacaApi(network, kind).validateIntent(
28
33
  transactionToIntent(account, { ...draftTransaction }),
34
+ { value: transaction?.fees ? BigInt(transaction.fees.toString()) : 0n },
29
35
  );
30
36
  if (network === "stellar") {
31
37
  return amount > 0 ? new BigNumber(amount.toString()) : new BigNumber(0);
32
38
  }
33
- const bnFee = BigNumber(fees.value.toString());
39
+ const bnFee = BigNumber(fees.toString());
34
40
  return BigNumber.max(0, account.spendableBalance.minus(bnFee));
35
41
  };
36
42
  }
@@ -3,6 +3,7 @@ import { AccountAwaitingSendPendingOperations } from "@ledgerhq/errors";
3
3
  import BigNumber from "bignumber.js";
4
4
  import { getAlpacaApi } from "./alpaca";
5
5
  import { transactionToIntent } from "./utils";
6
+ // import { FeeEstimation } from "@ledgerhq/coin-framework/api/types";
6
7
 
7
8
  // => alpaca validateIntent
8
9
  export function genericGetTransactionStatus(
@@ -26,7 +27,6 @@ export function genericGetTransactionStatus(
26
27
  mode: transaction?.mode,
27
28
  recipient: transaction.recipient,
28
29
  amount: transaction.amount ?? new BigNumber(0),
29
- fees: transaction.fees ? BigInt(transaction.fees.toString()) : 0n,
30
30
  useAllAmount: !!transaction.useAllAmount,
31
31
  assetReference: transaction.assetReference || "",
32
32
  assetOwner: transaction.assetOwner || "",
@@ -46,6 +46,7 @@ export function genericGetTransactionStatus(
46
46
 
47
47
  const { errors, warnings, estimatedFees, amount, totalSpent } = await alpacaApi.validateIntent(
48
48
  transactionToIntent(account, draftTransaction),
49
+ { value: transaction.fees ? BigInt(transaction.fees.toString()) : 0n },
49
50
  );
50
51
 
51
52
  return Promise.resolve({
@@ -2,7 +2,7 @@ import { Account, AccountBridge, TransactionCommon } from "@ledgerhq/types-live"
2
2
  import { getAlpacaApi } from "./alpaca";
3
3
  import { transactionToIntent } from "./utils";
4
4
  import BigNumber from "bignumber.js";
5
- import { NetworkInfo } from "./createTransaction";
5
+ import { FeeEstimation } from "@ledgerhq/coin-framework/api/types";
6
6
 
7
7
  function bnEq(a: BigNumber | null | undefined, b: BigNumber | null | undefined): boolean {
8
8
  return !a && !b ? true : !a || !b ? false : a.eq(b);
@@ -16,31 +16,35 @@ export function genericPrepareTransaction(
16
16
  account,
17
17
  transaction: TransactionCommon & {
18
18
  fees: BigNumber | null | undefined;
19
+ customFees?: FeeEstimation;
19
20
  assetReference?: string;
20
21
  assetOwner?: string;
21
22
  subAccountId?: string;
22
- networkInfo?: NetworkInfo | null;
23
23
  },
24
24
  ) => {
25
25
  const [assetReference, assetOwner] = getAssetInfos(transaction);
26
- const fees = await getAlpacaApi(network, kind).estimateFees(
27
- transactionToIntent(account, {
28
- ...transaction,
29
- fees: transaction.fees ? BigInt(transaction.fees.toString()) : 0n,
30
- }),
31
- );
32
- // NOTE: this is problematic, we should maybe have a method / object that lists what field warrant an update per chain
33
- // for reference, stellar checked this:
34
- // transaction.networkInfo !== networkInfo ||
35
- // transaction.baseReserve !== baseReserve
36
- if (!bnEq(transaction.fees, new BigNumber(fees.value.toString()))) {
26
+
27
+ let fees = transaction.customFees?.parameters?.fees || null;
28
+ if (fees === null) {
29
+ fees = (
30
+ await getAlpacaApi(network, kind).estimateFees(
31
+ transactionToIntent(account, {
32
+ ...transaction,
33
+ }),
34
+ )
35
+ ).value;
36
+ }
37
+
38
+ if (!bnEq(transaction.fees, new BigNumber(fees.toString()))) {
37
39
  return {
38
40
  ...transaction,
39
- fees: new BigNumber(fees.value.toString()),
41
+ fees: new BigNumber(fees.toString()),
40
42
  assetReference,
41
43
  assetOwner,
42
- networkInfo: {
43
- fees: new BigNumber(fees.value.toString()),
44
+ customFees: {
45
+ parameters: {
46
+ fees: new BigNumber(fees.toString()),
47
+ },
44
48
  },
45
49
  };
46
50
  }
@@ -95,7 +95,6 @@ export const genericSignOperation =
95
95
  const draftTransaction = {
96
96
  recipient: transaction.recipient,
97
97
  amount: transaction.amount ?? 0,
98
- fees: fees,
99
98
  useAllAmount: !!transaction.useAllAmount,
100
99
  assetReference: transaction?.["assetReference"] || "",
101
100
  assetOwner: transaction?.["assetOwner"] || "",
@@ -103,6 +102,7 @@ export const genericSignOperation =
103
102
  };
104
103
  const { amount } = await getAlpacaApi(network, kind).validateIntent(
105
104
  transactionToIntent(account, draftTransaction),
105
+ { value: fees },
106
106
  );
107
107
  transaction.amount = new BigNumber(amount.toString());
108
108
  }
@@ -110,7 +110,7 @@ export const genericSignOperation =
110
110
  const derivationPath = account.freshAddressPath;
111
111
  const { publicKey } = (await signer.getAddress(derivationPath)) as Result;
112
112
 
113
- let transactionIntent = transactionToIntent(account, { ...transaction, fees });
113
+ let transactionIntent = transactionToIntent(account, { ...transaction });
114
114
  transactionIntent.senderPublicKey = publicKey;
115
115
 
116
116
  // Enrich with memo and asset information
@@ -125,6 +125,7 @@ export const genericSignOperation =
125
125
  /* Craft unsigned blob via Alpaca */
126
126
  const unsigned: string = await getAlpacaApi(network, kind).craftTransaction(
127
127
  transactionIntent,
128
+ { value: fees },
128
129
  );
129
130
 
130
131
  /* Notify UI that the device is now showing the tx */
@@ -47,7 +47,7 @@ describe("genericPrepareTransaction", () => {
47
47
  expect((result as any).fees.toString()).toBe(newFee.toString());
48
48
  expect(transactionToIntent).toHaveBeenCalledWith(
49
49
  account,
50
- expect.objectContaining({ ...baseTransaction, fees: 500n }),
50
+ expect.objectContaining(baseTransaction),
51
51
  );
52
52
  });
53
53
 
@@ -94,7 +94,6 @@ export function transactionToIntent(
94
94
  assetOwner?: string;
95
95
  assetReference?: string;
96
96
  mode?: string;
97
- fees?: bigint | null | undefined;
98
97
  memoType?: string;
99
98
  memoValue?: string;
100
99
  useAllAmount?: boolean;
@@ -114,7 +113,6 @@ export function transactionToIntent(
114
113
  }
115
114
  }
116
115
  const res: TransactionIntent & { memo?: { type: string; value?: string } } = {
117
- fees: transaction?.fees ? transaction.fees : null,
118
116
  type: transactionType,
119
117
  sender: account.freshAddress,
120
118
  recipient: transaction.recipient,
@@ -28,7 +28,6 @@ export {
28
28
  sanitizeValueString,
29
29
  formatCurrencyUnit,
30
30
  type formatCurrencyUnitOptions,
31
- findCurrencyByTicker,
32
31
  parseCurrencyUnit,
33
32
  toLocaleString,
34
33
  isCurrencySupported,
@@ -1,9 +1,10 @@
1
1
  import { sortCurrenciesByIds } from "./sortByMarketcap";
2
- import { findCurrencyByTicker, listCryptoCurrencies, listTokens } from ".";
2
+ import { listCryptoCurrencies, listTokens } from ".";
3
3
  import { getBTCValues } from "@ledgerhq/live-countervalues/mock";
4
4
  import { CURRENCIES_LIST, IDS } from "./mock";
5
5
  import { setCryptoAssetsStore as setCryptoAssetsStoreForCoinFramework } from "@ledgerhq/coin-framework/crypto-assets/index";
6
6
  import type { CryptoAssetsStore } from "@ledgerhq/types-live";
7
+ import { findCurrencyByTicker } from "@ledgerhq/live-countervalues/findCurrencyByTicker";
7
8
 
8
9
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
9
10
  setCryptoAssetsStoreForCoinFramework({
@@ -1,4 +1,4 @@
1
- export type AppInfosType = AppInfos;
1
+ export type SpeculosAppType = AppInfos;
2
2
 
3
3
  export class AppInfos {
4
4
  constructor(public readonly name: string) {}
@@ -16,8 +16,8 @@ export class Provider {
16
16
  static readonly LIFI = new Provider("lifi", "LI.FI", false, true, false);
17
17
  static readonly CIC = new Provider("cic", "CIC", false, true, true);
18
18
  static readonly COINBASE = new Provider("coinbase", "Coinbase", false, true, true);
19
- static readonly KILN = new Provider("kiln", "Kiln staking Pool", false, true, true);
20
- static readonly STADER_LABS = new Provider("stader", "Stader Labs", false, true, true);
19
+ static readonly KILN = new Provider("kiln_pooling", "Kiln staking Pool", false, true, true);
20
+ static readonly STADER_LABS = new Provider("stader-eth", "Stader Labs", false, true, true);
21
21
  static readonly LIDO = new Provider("lido", "Lido", false, true, true);
22
22
  static readonly TRANSAK = new Provider("transak", "Transak", false, true, true);
23
23
 
@@ -14,13 +14,13 @@ import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
14
14
  import axios, { AxiosError, AxiosResponse } from "axios";
15
15
  import { getEnv } from "@ledgerhq/live-env";
16
16
  import { getCryptoCurrencyById } from "../currencies";
17
- import { DeviceLabels } from "../e2e/enum/DeviceLabels";
17
+ import { DeviceLabels } from "./enum/DeviceLabels";
18
18
  import { Account } from "./enum/Account";
19
19
  import { Device as CryptoWallet } from "./enum/Device";
20
20
  import { Currency } from "./enum/Currency";
21
21
  import expect from "expect";
22
22
  import { sendBTCBasedCoin } from "./families/bitcoin";
23
- import { sendEVM, sendEvmNFT } from ".//families/evm";
23
+ import { sendEVM, sendEvmNFT } from "./families/evm";
24
24
  import { sendPolkadot } from "./families/polkadot";
25
25
  import { sendAlgorand } from "./families/algorand";
26
26
  import { sendTron } from "./families/tron";
@@ -385,13 +385,12 @@ export async function startSpeculos(
385
385
  onSpeculosDeviceCreated,
386
386
  };
387
387
  try {
388
- const device = isSpeculosRemote
388
+ return isSpeculosRemote
389
389
  ? await createSpeculosDeviceCI(deviceParams)
390
390
  : await createSpeculosDevice(deviceParams).then(device => {
391
391
  invariant(device.ports.apiPort, "[E2E] Speculos apiPort is not defined");
392
392
  return { id: device.id, port: device.ports.apiPort };
393
393
  });
394
- return device;
395
394
  } catch (e: unknown) {
396
395
  console.error(e);
397
396
  log("engine", `test ${testName} failed with ${String(e)}`);