@ledgerhq/live-common 34.48.0-nightly.1 → 34.48.0-nightly.2

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 (179) hide show
  1. package/lib/bridge/crypto-assets/index.d.ts.map +1 -1
  2. package/lib/bridge/crypto-assets/index.js +0 -4
  3. package/lib/bridge/crypto-assets/index.js.map +1 -1
  4. package/lib/bridge/crypto-assets/index.test.js +0 -36
  5. package/lib/bridge/crypto-assets/index.test.js.map +1 -1
  6. package/lib/config/sharedConfig.d.ts.map +1 -1
  7. package/lib/config/sharedConfig.js +2 -0
  8. package/lib/config/sharedConfig.js.map +1 -1
  9. package/lib/e2e/index.d.ts +3 -4
  10. package/lib/e2e/index.d.ts.map +1 -1
  11. package/lib/env.react.d.ts +1 -1
  12. package/lib/env.react.d.ts.map +1 -1
  13. package/lib/families/canton/bridge/mock-data.d.ts +6 -0
  14. package/lib/families/canton/bridge/mock-data.d.ts.map +1 -0
  15. package/lib/families/canton/bridge/mock-data.js +120 -0
  16. package/lib/families/canton/bridge/mock-data.js.map +1 -0
  17. package/lib/families/canton/bridge/mock.d.ts +12 -0
  18. package/lib/families/canton/bridge/mock.d.ts.map +1 -0
  19. package/lib/families/canton/bridge/mock.js +154 -0
  20. package/lib/families/canton/bridge/mock.js.map +1 -0
  21. package/lib/families/canton/config.d.ts.map +1 -1
  22. package/lib/families/canton/config.js +5 -2
  23. package/lib/families/canton/config.js.map +1 -1
  24. package/lib/families/canton/setup.d.ts.map +1 -1
  25. package/lib/families/canton/setup.js +8 -2
  26. package/lib/families/canton/setup.js.map +1 -1
  27. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  28. package/lib/featureFlags/defaultFeatures.js +0 -1
  29. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  30. package/lib/featureFlags/useFeature.d.ts +1 -1
  31. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  32. package/lib/generated/bridge/mock.d.ts +8 -0
  33. package/lib/generated/bridge/mock.d.ts.map +1 -1
  34. package/lib/generated/bridge/mock.js +26 -24
  35. package/lib/generated/bridge/mock.js.map +1 -1
  36. package/lib/modularDrawer/hooks/useAssetsData.d.ts +1 -0
  37. package/lib/modularDrawer/hooks/useAssetsData.d.ts.map +1 -1
  38. package/lib/modularDrawer/hooks/useAssetsData.js +3 -2
  39. package/lib/modularDrawer/hooks/useAssetsData.js.map +1 -1
  40. package/lib/modularDrawer/hooks/useSearch.d.ts +16 -0
  41. package/lib/modularDrawer/hooks/useSearch.d.ts.map +1 -0
  42. package/lib/modularDrawer/hooks/useSearch.js +24 -0
  43. package/lib/modularDrawer/hooks/useSearch.js.map +1 -0
  44. package/lib/notifications/ServiceStatusProvider/index.d.ts +16 -1
  45. package/lib/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
  46. package/lib/notifications/ServiceStatusProvider/index.js +31 -7
  47. package/lib/notifications/ServiceStatusProvider/index.js.map +1 -1
  48. package/lib/notifications/ServiceStatusProvider/index.test.d.ts +2 -0
  49. package/lib/notifications/ServiceStatusProvider/index.test.d.ts.map +1 -0
  50. package/lib/notifications/ServiceStatusProvider/index.test.js +88 -0
  51. package/lib/notifications/ServiceStatusProvider/index.test.js.map +1 -0
  52. package/lib/notifications/ServiceStatusProvider/ledger-components.d.ts +2 -0
  53. package/lib/notifications/ServiceStatusProvider/ledger-components.d.ts.map +1 -0
  54. package/lib/notifications/ServiceStatusProvider/ledger-components.js +16 -0
  55. package/lib/notifications/ServiceStatusProvider/ledger-components.js.map +1 -0
  56. package/lib/wallet-api/ACRE/server.d.ts +13 -6
  57. package/lib/wallet-api/ACRE/server.d.ts.map +1 -1
  58. package/lib/wallet-api/ACRE/server.js +142 -1
  59. package/lib/wallet-api/ACRE/server.js.map +1 -1
  60. package/lib/wallet-api/ACRE/server.test.d.ts +2 -0
  61. package/lib/wallet-api/ACRE/server.test.d.ts.map +1 -0
  62. package/lib/wallet-api/ACRE/server.test.js +393 -0
  63. package/lib/wallet-api/ACRE/server.test.js.map +1 -0
  64. package/lib-es/bridge/crypto-assets/index.d.ts.map +1 -1
  65. package/lib-es/bridge/crypto-assets/index.js +0 -4
  66. package/lib-es/bridge/crypto-assets/index.js.map +1 -1
  67. package/lib-es/bridge/crypto-assets/index.test.js +0 -36
  68. package/lib-es/bridge/crypto-assets/index.test.js.map +1 -1
  69. package/lib-es/config/sharedConfig.d.ts.map +1 -1
  70. package/lib-es/config/sharedConfig.js +2 -0
  71. package/lib-es/config/sharedConfig.js.map +1 -1
  72. package/lib-es/e2e/index.d.ts +3 -4
  73. package/lib-es/e2e/index.d.ts.map +1 -1
  74. package/lib-es/env.react.d.ts +1 -1
  75. package/lib-es/env.react.d.ts.map +1 -1
  76. package/lib-es/families/canton/bridge/mock-data.d.ts +6 -0
  77. package/lib-es/families/canton/bridge/mock-data.d.ts.map +1 -0
  78. package/lib-es/families/canton/bridge/mock-data.js +116 -0
  79. package/lib-es/families/canton/bridge/mock-data.js.map +1 -0
  80. package/lib-es/families/canton/bridge/mock.d.ts +12 -0
  81. package/lib-es/families/canton/bridge/mock.d.ts.map +1 -0
  82. package/lib-es/families/canton/bridge/mock.js +152 -0
  83. package/lib-es/families/canton/bridge/mock.js.map +1 -0
  84. package/lib-es/families/canton/config.d.ts.map +1 -1
  85. package/lib-es/families/canton/config.js +5 -2
  86. package/lib-es/families/canton/config.js.map +1 -1
  87. package/lib-es/families/canton/setup.d.ts.map +1 -1
  88. package/lib-es/families/canton/setup.js +8 -2
  89. package/lib-es/families/canton/setup.js.map +1 -1
  90. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  91. package/lib-es/featureFlags/defaultFeatures.js +0 -1
  92. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  93. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  94. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  95. package/lib-es/generated/bridge/mock.d.ts +8 -0
  96. package/lib-es/generated/bridge/mock.d.ts.map +1 -1
  97. package/lib-es/generated/bridge/mock.js +2 -0
  98. package/lib-es/generated/bridge/mock.js.map +1 -1
  99. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts +1 -0
  100. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts.map +1 -1
  101. package/lib-es/modularDrawer/hooks/useAssetsData.js +3 -2
  102. package/lib-es/modularDrawer/hooks/useAssetsData.js.map +1 -1
  103. package/lib-es/modularDrawer/hooks/useSearch.d.ts +16 -0
  104. package/lib-es/modularDrawer/hooks/useSearch.d.ts.map +1 -0
  105. package/lib-es/modularDrawer/hooks/useSearch.js +20 -0
  106. package/lib-es/modularDrawer/hooks/useSearch.js.map +1 -0
  107. package/lib-es/notifications/ServiceStatusProvider/index.d.ts +16 -1
  108. package/lib-es/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
  109. package/lib-es/notifications/ServiceStatusProvider/index.js +31 -7
  110. package/lib-es/notifications/ServiceStatusProvider/index.js.map +1 -1
  111. package/lib-es/notifications/ServiceStatusProvider/index.test.d.ts +2 -0
  112. package/lib-es/notifications/ServiceStatusProvider/index.test.d.ts.map +1 -0
  113. package/lib-es/notifications/ServiceStatusProvider/index.test.js +86 -0
  114. package/lib-es/notifications/ServiceStatusProvider/index.test.js.map +1 -0
  115. package/lib-es/notifications/ServiceStatusProvider/ledger-components.d.ts +2 -0
  116. package/lib-es/notifications/ServiceStatusProvider/ledger-components.d.ts.map +1 -0
  117. package/lib-es/notifications/ServiceStatusProvider/ledger-components.js +13 -0
  118. package/lib-es/notifications/ServiceStatusProvider/ledger-components.js.map +1 -0
  119. package/lib-es/wallet-api/ACRE/server.d.ts +13 -6
  120. package/lib-es/wallet-api/ACRE/server.d.ts.map +1 -1
  121. package/lib-es/wallet-api/ACRE/server.js +140 -2
  122. package/lib-es/wallet-api/ACRE/server.js.map +1 -1
  123. package/lib-es/wallet-api/ACRE/server.test.d.ts +2 -0
  124. package/lib-es/wallet-api/ACRE/server.test.d.ts.map +1 -0
  125. package/lib-es/wallet-api/ACRE/server.test.js +388 -0
  126. package/lib-es/wallet-api/ACRE/server.test.js.map +1 -0
  127. package/package.json +48 -48
  128. package/src/bridge/crypto-assets/index.test.ts +0 -47
  129. package/src/bridge/crypto-assets/index.ts +0 -5
  130. package/src/config/sharedConfig.ts +2 -0
  131. package/src/families/canton/bridge/mock-data.ts +175 -0
  132. package/src/families/canton/bridge/mock.ts +180 -0
  133. package/src/families/canton/config.ts +5 -3
  134. package/src/families/canton/setup.ts +8 -5
  135. package/src/featureFlags/defaultFeatures.ts +0 -1
  136. package/src/generated/bridge/mock.ts +2 -0
  137. package/src/modularDrawer/hooks/useAssetsData.ts +3 -2
  138. package/src/modularDrawer/hooks/useSearch.ts +52 -0
  139. package/src/notifications/ServiceStatusProvider/index.test.ts +102 -0
  140. package/src/notifications/ServiceStatusProvider/index.tsx +37 -12
  141. package/src/notifications/ServiceStatusProvider/ledger-components.ts +12 -0
  142. package/src/wallet-api/ACRE/server.test.ts +470 -0
  143. package/src/wallet-api/ACRE/server.ts +202 -14
  144. package/lib/bridge/crypto-assets/cal-integration.d.ts +0 -4
  145. package/lib/bridge/crypto-assets/cal-integration.d.ts.map +0 -1
  146. package/lib/bridge/crypto-assets/cal-integration.js +0 -26
  147. package/lib/bridge/crypto-assets/cal-integration.js.map +0 -1
  148. package/lib/bridge/crypto-assets/cal-integration.test.d.ts +0 -2
  149. package/lib/bridge/crypto-assets/cal-integration.test.d.ts.map +0 -1
  150. package/lib/bridge/crypto-assets/cal-integration.test.js +0 -45
  151. package/lib/bridge/crypto-assets/cal-integration.test.js.map +0 -1
  152. package/lib/bridge/crypto-assets/cal-store.d.ts +0 -14
  153. package/lib/bridge/crypto-assets/cal-store.d.ts.map +0 -1
  154. package/lib/bridge/crypto-assets/cal-store.js +0 -58
  155. package/lib/bridge/crypto-assets/cal-store.js.map +0 -1
  156. package/lib/bridge/crypto-assets/cal-store.test.d.ts +0 -2
  157. package/lib/bridge/crypto-assets/cal-store.test.d.ts.map +0 -1
  158. package/lib/bridge/crypto-assets/cal-store.test.js +0 -70
  159. package/lib/bridge/crypto-assets/cal-store.test.js.map +0 -1
  160. package/lib-es/bridge/crypto-assets/cal-integration.d.ts +0 -4
  161. package/lib-es/bridge/crypto-assets/cal-integration.d.ts.map +0 -1
  162. package/lib-es/bridge/crypto-assets/cal-integration.js +0 -21
  163. package/lib-es/bridge/crypto-assets/cal-integration.js.map +0 -1
  164. package/lib-es/bridge/crypto-assets/cal-integration.test.d.ts +0 -2
  165. package/lib-es/bridge/crypto-assets/cal-integration.test.d.ts.map +0 -1
  166. package/lib-es/bridge/crypto-assets/cal-integration.test.js +0 -43
  167. package/lib-es/bridge/crypto-assets/cal-integration.test.js.map +0 -1
  168. package/lib-es/bridge/crypto-assets/cal-store.d.ts +0 -14
  169. package/lib-es/bridge/crypto-assets/cal-store.d.ts.map +0 -1
  170. package/lib-es/bridge/crypto-assets/cal-store.js +0 -54
  171. package/lib-es/bridge/crypto-assets/cal-store.js.map +0 -1
  172. package/lib-es/bridge/crypto-assets/cal-store.test.d.ts +0 -2
  173. package/lib-es/bridge/crypto-assets/cal-store.test.d.ts.map +0 -1
  174. package/lib-es/bridge/crypto-assets/cal-store.test.js +0 -68
  175. package/lib-es/bridge/crypto-assets/cal-store.test.js.map +0 -1
  176. package/src/bridge/crypto-assets/cal-integration.test.ts +0 -53
  177. package/src/bridge/crypto-assets/cal-integration.ts +0 -23
  178. package/src/bridge/crypto-assets/cal-store.test.ts +0 -93
  179. package/src/bridge/crypto-assets/cal-store.ts +0 -63
@@ -1,43 +0,0 @@
1
- import { isCALIntegrationEnabled, getCALStore } from "./cal-integration";
2
- import { CALStore } from "./cal-store";
3
- import { isFeature } from "../../featureFlags/firebaseFeatureFlags";
4
- jest.mock("../../featureFlags/firebaseFeatureFlags", () => ({
5
- isFeature: jest.fn(),
6
- }));
7
- const mockIsFeature = jest.mocked(isFeature);
8
- describe("CAL Integration", () => {
9
- beforeEach(() => {
10
- mockIsFeature.mockClear();
11
- });
12
- describe("isCALIntegrationEnabled", () => {
13
- it("should return false when feature flag is disabled", () => {
14
- mockIsFeature.mockReturnValue(false);
15
- expect(isCALIntegrationEnabled()).toBe(false);
16
- expect(mockIsFeature).toHaveBeenCalledWith("calLedgerService");
17
- });
18
- it("should return true when feature flag is enabled (assuming MOCK is false)", () => {
19
- mockIsFeature.mockReturnValue(true);
20
- const result = isCALIntegrationEnabled();
21
- expect(mockIsFeature).toHaveBeenCalledWith("calLedgerService");
22
- expect(result).toEqual(true);
23
- });
24
- it("should return false when feature check throws", () => {
25
- mockIsFeature.mockImplementation(() => {
26
- throw new Error("Feature check error");
27
- });
28
- expect(isCALIntegrationEnabled()).toBe(false);
29
- });
30
- });
31
- describe("getCALStore", () => {
32
- it("should return a CALStore instance", () => {
33
- const store = getCALStore();
34
- expect(store).toBeInstanceOf(CALStore);
35
- });
36
- it("should return the same instance on multiple calls", () => {
37
- const store1 = getCALStore();
38
- const store2 = getCALStore();
39
- expect(store1).toBe(store2);
40
- });
41
- });
42
- });
43
- //# sourceMappingURL=cal-integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cal-integration.test.js","sourceRoot":"","sources":["../../../src/bridge/crypto-assets/cal-integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,IAAI,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;CACrB,CAAC,CAAC,CAAC;AAEJ,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAE7C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAErC,MAAM,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;YAClF,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAEpC,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAC;YACzC,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;YAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { CryptoAssetsStore } from "@ledgerhq/types-live";
2
- import { TokenCurrency } from "@ledgerhq/types-cryptoassets";
3
- export declare class CALStore implements CryptoAssetsStore {
4
- private tokenCache;
5
- private addressCache;
6
- private tickerCache;
7
- addTokens(tokens: TokenCurrency[]): void;
8
- findTokenByAddress(address: string): TokenCurrency | undefined;
9
- getTokenById(id: string): TokenCurrency;
10
- findTokenById(id: string): TokenCurrency | undefined;
11
- findTokenByAddressInCurrency(address: string, currencyId: string): TokenCurrency | undefined;
12
- findTokenByTicker(ticker: string): TokenCurrency | undefined;
13
- }
14
- //# sourceMappingURL=cal-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cal-store.d.ts","sourceRoot":"","sources":["../../../src/bridge/crypto-assets/cal-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAK7D,qBAAa,QAAS,YAAW,iBAAiB;IAChD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,WAAW,CAAoC;IAEvD,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE;IAcjC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAQ9D,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa;IAQvC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIpD,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAc5F,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;CAG7D"}
@@ -1,54 +0,0 @@
1
- // Coins with case-sensitive addresses (b58, ...)
2
- const CASE_SENSITIVE_COINS = ["solana"];
3
- export class CALStore {
4
- tokenCache = new Map();
5
- addressCache = new Map();
6
- tickerCache = new Map();
7
- addTokens(tokens) {
8
- tokens.forEach(token => {
9
- this.tokenCache.set(token.id, token);
10
- if (token.contractAddress) {
11
- const isCaseSensitive = CASE_SENSITIVE_COINS.includes(token.parentCurrency.id);
12
- const normalizedAddress = isCaseSensitive
13
- ? token.contractAddress
14
- : token.contractAddress.toLowerCase();
15
- this.addressCache.set(normalizedAddress, token);
16
- }
17
- this.tickerCache.set(token.ticker, token);
18
- });
19
- }
20
- findTokenByAddress(address) {
21
- const exactMatch = this.addressCache.get(address);
22
- if (exactMatch)
23
- return exactMatch;
24
- const lowercaseMatch = this.addressCache.get(address.toLowerCase());
25
- return lowercaseMatch;
26
- }
27
- getTokenById(id) {
28
- const token = this.tokenCache.get(id);
29
- if (!token) {
30
- throw new Error(`Token not found: ${id}`);
31
- }
32
- return token;
33
- }
34
- findTokenById(id) {
35
- return this.tokenCache.get(id);
36
- }
37
- findTokenByAddressInCurrency(address, currencyId) {
38
- const isCaseSensitive = CASE_SENSITIVE_COINS.includes(currencyId);
39
- if (isCaseSensitive) {
40
- const token = this.addressCache.get(address);
41
- if (token && token.parentCurrency.id === currencyId)
42
- return token;
43
- return undefined;
44
- }
45
- const token = this.addressCache.get(address.toLowerCase());
46
- if (token && token.parentCurrency.id === currencyId)
47
- return token;
48
- return undefined;
49
- }
50
- findTokenByTicker(ticker) {
51
- return this.tickerCache.get(ticker);
52
- }
53
- }
54
- //# sourceMappingURL=cal-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cal-store.js","sourceRoot":"","sources":["../../../src/bridge/crypto-assets/cal-store.ts"],"names":[],"mappings":"AAGA,iDAAiD;AACjD,MAAM,oBAAoB,GAAG,CAAC,QAAQ,CAAC,CAAC;AAExC,MAAM,OAAO,QAAQ;IACX,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9C,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEvD,SAAS,CAAC,MAAuB;QAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,eAAe,EAAE;gBACzB,MAAM,eAAe,GAAG,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAC/E,MAAM,iBAAiB,GAAG,eAAe;oBACvC,CAAC,CAAC,KAAK,CAAC,eAAe;oBACvB,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;aACjD;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,OAAe;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;QAElC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;SAC3C;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,4BAA4B,CAAC,OAAe,EAAE,UAAkB;QAC9D,MAAM,eAAe,GAAG,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAElE,IAAI,eAAe,EAAE;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAClE,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3D,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cal-store.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cal-store.test.d.ts","sourceRoot":"","sources":["../../../src/bridge/crypto-assets/cal-store.test.ts"],"names":[],"mappings":""}
@@ -1,68 +0,0 @@
1
- import { CALStore } from "./cal-store";
2
- describe("CALStore", () => {
3
- let store;
4
- beforeEach(() => {
5
- store = new CALStore();
6
- });
7
- describe("Token cache operations", () => {
8
- const token = {
9
- id: "ethereum/erc20/usdt",
10
- name: "Tether USD",
11
- ticker: "USDT",
12
- contractAddress: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
13
- parentCurrency: { id: "ethereum" },
14
- type: "TokenCurrency",
15
- units: [
16
- {
17
- name: "USDT",
18
- code: "USDT",
19
- magnitude: 6,
20
- },
21
- ],
22
- };
23
- it("should store and retrieve tokens by ID", () => {
24
- store.addTokens([token]);
25
- const foundToken = store.findTokenById("ethereum/erc20/usdt");
26
- expect(foundToken).toEqual(token);
27
- });
28
- it("should store and retrieve tokens by address", () => {
29
- store.addTokens([token]);
30
- const foundToken = store.findTokenByAddress("0xdAC17F958D2ee523a2206206994597C13D831ec7");
31
- expect(foundToken).toEqual(token);
32
- });
33
- it("should store and retrieve tokens by ticker", () => {
34
- store.addTokens([token]);
35
- const foundToken = store.findTokenByTicker("USDT");
36
- expect(foundToken).toEqual(token);
37
- });
38
- it("should find token by address in specific currency", () => {
39
- store.addTokens([token]);
40
- const foundToken = store.findTokenByAddressInCurrency("0xdAC17F958D2ee523a2206206994597C13D831ec7", "ethereum");
41
- expect(foundToken).toEqual(token);
42
- });
43
- it("should not find token by address in different currency", () => {
44
- store.addTokens([token]);
45
- const foundToken = store.findTokenByAddressInCurrency("0xdAC17F958D2ee523a2206206994597C13D831ec7", "polygon");
46
- expect(foundToken).toBeUndefined();
47
- });
48
- it("should return undefined for non-existent address in findTokenByAddressInCurrency", () => {
49
- store.addTokens([token]);
50
- const foundToken = store.findTokenByAddressInCurrency("0xNONEXISTENT", "ethereum");
51
- expect(foundToken).toBeUndefined();
52
- });
53
- it("should return undefined for non-existent tokens", () => {
54
- expect(store.findTokenById("non-existent")).toBeUndefined();
55
- expect(store.findTokenByAddress("0x0000")).toBeUndefined();
56
- expect(store.findTokenByTicker("FAKE")).toBeUndefined();
57
- });
58
- it("should throw error when getting non-existent token by ID", () => {
59
- expect(() => store.getTokenById("non-existent")).toThrow("Token not found: non-existent");
60
- });
61
- it("should get existing token by ID", () => {
62
- store.addTokens([token]);
63
- const foundToken = store.getTokenById("ethereum/erc20/usdt");
64
- expect(foundToken).toEqual(token);
65
- });
66
- });
67
- });
68
- //# sourceMappingURL=cal-store.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cal-store.test.js","sourceRoot":"","sources":["../../../src/bridge/crypto-assets/cal-store.test.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- import { isCALIntegrationEnabled, getCALStore } from "./cal-integration";
2
- import { CALStore } from "./cal-store";
3
- import { isFeature } from "../../featureFlags/firebaseFeatureFlags";
4
-
5
- jest.mock("../../featureFlags/firebaseFeatureFlags", () => ({
6
- isFeature: jest.fn(),
7
- }));
8
-
9
- const mockIsFeature = jest.mocked(isFeature);
10
-
11
- describe("CAL Integration", () => {
12
- beforeEach(() => {
13
- mockIsFeature.mockClear();
14
- });
15
-
16
- describe("isCALIntegrationEnabled", () => {
17
- it("should return false when feature flag is disabled", () => {
18
- mockIsFeature.mockReturnValue(false);
19
-
20
- expect(isCALIntegrationEnabled()).toBe(false);
21
- expect(mockIsFeature).toHaveBeenCalledWith("calLedgerService");
22
- });
23
-
24
- it("should return true when feature flag is enabled (assuming MOCK is false)", () => {
25
- mockIsFeature.mockReturnValue(true);
26
-
27
- const result = isCALIntegrationEnabled();
28
- expect(mockIsFeature).toHaveBeenCalledWith("calLedgerService");
29
- expect(result).toEqual(true);
30
- });
31
-
32
- it("should return false when feature check throws", () => {
33
- mockIsFeature.mockImplementation(() => {
34
- throw new Error("Feature check error");
35
- });
36
-
37
- expect(isCALIntegrationEnabled()).toBe(false);
38
- });
39
- });
40
-
41
- describe("getCALStore", () => {
42
- it("should return a CALStore instance", () => {
43
- const store = getCALStore();
44
- expect(store).toBeInstanceOf(CALStore);
45
- });
46
-
47
- it("should return the same instance on multiple calls", () => {
48
- const store1 = getCALStore();
49
- const store2 = getCALStore();
50
- expect(store1).toBe(store2);
51
- });
52
- });
53
- });
@@ -1,23 +0,0 @@
1
- import { getEnv } from "@ledgerhq/live-env";
2
- import { log } from "@ledgerhq/logs";
3
- import type { CryptoAssetsStore } from "@ledgerhq/types-live";
4
- import { CALStore } from "./cal-store";
5
- import { isFeature } from "../../featureFlags/firebaseFeatureFlags";
6
-
7
- let calStoreInstance: CALStore | undefined;
8
-
9
- export function isCALIntegrationEnabled(): boolean {
10
- try {
11
- return !getEnv("MOCK") && isFeature("calLedgerService");
12
- } catch (error) {
13
- log("cal", "Error checking CAL integration:", error);
14
- return false;
15
- }
16
- }
17
-
18
- export function getCALStore(): CryptoAssetsStore {
19
- if (!calStoreInstance) {
20
- calStoreInstance = new CALStore();
21
- }
22
- return calStoreInstance;
23
- }
@@ -1,93 +0,0 @@
1
- import { CALStore } from "./cal-store";
2
- import { TokenCurrency } from "@ledgerhq/types-cryptoassets";
3
-
4
- describe("CALStore", () => {
5
- let store: CALStore;
6
-
7
- beforeEach(() => {
8
- store = new CALStore();
9
- });
10
-
11
- describe("Token cache operations", () => {
12
- const token = {
13
- id: "ethereum/erc20/usdt",
14
- name: "Tether USD",
15
- ticker: "USDT",
16
- contractAddress: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
17
- parentCurrency: { id: "ethereum" },
18
- type: "TokenCurrency",
19
- units: [
20
- {
21
- name: "USDT",
22
- code: "USDT",
23
- magnitude: 6,
24
- },
25
- ],
26
- } as TokenCurrency;
27
-
28
- it("should store and retrieve tokens by ID", () => {
29
- store.addTokens([token]);
30
-
31
- const foundToken = store.findTokenById("ethereum/erc20/usdt");
32
- expect(foundToken).toEqual(token);
33
- });
34
-
35
- it("should store and retrieve tokens by address", () => {
36
- store.addTokens([token]);
37
-
38
- const foundToken = store.findTokenByAddress("0xdAC17F958D2ee523a2206206994597C13D831ec7");
39
- expect(foundToken).toEqual(token);
40
- });
41
-
42
- it("should store and retrieve tokens by ticker", () => {
43
- store.addTokens([token]);
44
-
45
- const foundToken = store.findTokenByTicker("USDT");
46
- expect(foundToken).toEqual(token);
47
- });
48
-
49
- it("should find token by address in specific currency", () => {
50
- store.addTokens([token]);
51
-
52
- const foundToken = store.findTokenByAddressInCurrency(
53
- "0xdAC17F958D2ee523a2206206994597C13D831ec7",
54
- "ethereum",
55
- );
56
- expect(foundToken).toEqual(token);
57
- });
58
-
59
- it("should not find token by address in different currency", () => {
60
- store.addTokens([token]);
61
-
62
- const foundToken = store.findTokenByAddressInCurrency(
63
- "0xdAC17F958D2ee523a2206206994597C13D831ec7",
64
- "polygon",
65
- );
66
- expect(foundToken).toBeUndefined();
67
- });
68
-
69
- it("should return undefined for non-existent address in findTokenByAddressInCurrency", () => {
70
- store.addTokens([token]);
71
-
72
- const foundToken = store.findTokenByAddressInCurrency("0xNONEXISTENT", "ethereum");
73
- expect(foundToken).toBeUndefined();
74
- });
75
-
76
- it("should return undefined for non-existent tokens", () => {
77
- expect(store.findTokenById("non-existent")).toBeUndefined();
78
- expect(store.findTokenByAddress("0x0000")).toBeUndefined();
79
- expect(store.findTokenByTicker("FAKE")).toBeUndefined();
80
- });
81
-
82
- it("should throw error when getting non-existent token by ID", () => {
83
- expect(() => store.getTokenById("non-existent")).toThrow("Token not found: non-existent");
84
- });
85
-
86
- it("should get existing token by ID", () => {
87
- store.addTokens([token]);
88
-
89
- const foundToken = store.getTokenById("ethereum/erc20/usdt");
90
- expect(foundToken).toEqual(token);
91
- });
92
- });
93
- });
@@ -1,63 +0,0 @@
1
- import type { CryptoAssetsStore } from "@ledgerhq/types-live";
2
- import { TokenCurrency } from "@ledgerhq/types-cryptoassets";
3
-
4
- // Coins with case-sensitive addresses (b58, ...)
5
- const CASE_SENSITIVE_COINS = ["solana"];
6
-
7
- export class CALStore implements CryptoAssetsStore {
8
- private tokenCache = new Map<string, TokenCurrency>();
9
- private addressCache = new Map<string, TokenCurrency>();
10
- private tickerCache = new Map<string, TokenCurrency>();
11
-
12
- addTokens(tokens: TokenCurrency[]) {
13
- tokens.forEach(token => {
14
- this.tokenCache.set(token.id, token);
15
- if (token.contractAddress) {
16
- const isCaseSensitive = CASE_SENSITIVE_COINS.includes(token.parentCurrency.id);
17
- const normalizedAddress = isCaseSensitive
18
- ? token.contractAddress
19
- : token.contractAddress.toLowerCase();
20
- this.addressCache.set(normalizedAddress, token);
21
- }
22
- this.tickerCache.set(token.ticker, token);
23
- });
24
- }
25
-
26
- findTokenByAddress(address: string): TokenCurrency | undefined {
27
- const exactMatch = this.addressCache.get(address);
28
- if (exactMatch) return exactMatch;
29
-
30
- const lowercaseMatch = this.addressCache.get(address.toLowerCase());
31
- return lowercaseMatch;
32
- }
33
-
34
- getTokenById(id: string): TokenCurrency {
35
- const token = this.tokenCache.get(id);
36
- if (!token) {
37
- throw new Error(`Token not found: ${id}`);
38
- }
39
- return token;
40
- }
41
-
42
- findTokenById(id: string): TokenCurrency | undefined {
43
- return this.tokenCache.get(id);
44
- }
45
-
46
- findTokenByAddressInCurrency(address: string, currencyId: string): TokenCurrency | undefined {
47
- const isCaseSensitive = CASE_SENSITIVE_COINS.includes(currencyId);
48
-
49
- if (isCaseSensitive) {
50
- const token = this.addressCache.get(address);
51
- if (token && token.parentCurrency.id === currencyId) return token;
52
- return undefined;
53
- }
54
-
55
- const token = this.addressCache.get(address.toLowerCase());
56
- if (token && token.parentCurrency.id === currencyId) return token;
57
- return undefined;
58
- }
59
-
60
- findTokenByTicker(ticker: string): TokenCurrency | undefined {
61
- return this.tickerCache.get(ticker);
62
- }
63
- }