@ledgerhq/cryptoassets 13.31.0-nightly.6 → 13.31.0-nightly.7

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 (183) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.unimportedrc.json +1 -0
  3. package/CHANGELOG.md +12 -0
  4. package/jest.config.ts +1 -0
  5. package/lib/hooks.d.ts +21 -0
  6. package/lib/hooks.d.ts.map +1 -0
  7. package/lib/hooks.js +82 -0
  8. package/lib/hooks.js.map +1 -0
  9. package/lib-es/hooks.d.ts +21 -0
  10. package/lib-es/hooks.d.ts.map +1 -0
  11. package/lib-es/hooks.js +78 -0
  12. package/lib-es/hooks.js.map +1 -0
  13. package/package.json +16 -3
  14. package/src/hooks.test.ts +278 -0
  15. package/src/hooks.ts +104 -0
  16. package/lib/api-asset-converter.test.d.ts +0 -2
  17. package/lib/api-asset-converter.test.d.ts.map +0 -1
  18. package/lib/api-asset-converter.test.js +0 -240
  19. package/lib/api-asset-converter.test.js.map +0 -1
  20. package/lib/api-token-converter.test.d.ts +0 -2
  21. package/lib/api-token-converter.test.d.ts.map +0 -1
  22. package/lib/api-token-converter.test.js +0 -316
  23. package/lib/api-token-converter.test.js.map +0 -1
  24. package/lib/backtest-tokenTypes.test.d.ts +0 -2
  25. package/lib/backtest-tokenTypes.test.d.ts.map +0 -1
  26. package/lib/backtest-tokenTypes.test.js +0 -31
  27. package/lib/backtest-tokenTypes.test.js.map +0 -1
  28. package/lib/crypto-assets-importer/fetch/fetch.test.d.ts +0 -2
  29. package/lib/crypto-assets-importer/fetch/fetch.test.d.ts.map +0 -1
  30. package/lib/crypto-assets-importer/fetch/fetch.test.js +0 -28
  31. package/lib/crypto-assets-importer/fetch/fetch.test.js.map +0 -1
  32. package/lib/crypto-assets-importer/importers/apt/aptos.test.d.ts +0 -2
  33. package/lib/crypto-assets-importer/importers/apt/aptos.test.d.ts.map +0 -1
  34. package/lib/crypto-assets-importer/importers/apt/aptos.test.js +0 -69
  35. package/lib/crypto-assets-importer/importers/apt/aptos.test.js.map +0 -1
  36. package/lib/crypto-assets-importer/importers/asa/asa.test.d.ts +0 -2
  37. package/lib/crypto-assets-importer/importers/asa/asa.test.d.ts.map +0 -1
  38. package/lib/crypto-assets-importer/importers/asa/asa.test.js +0 -63
  39. package/lib/crypto-assets-importer/importers/asa/asa.test.js.map +0 -1
  40. package/lib/crypto-assets-importer/importers/cardanoNative/cardanoNative.test.d.ts +0 -2
  41. package/lib/crypto-assets-importer/importers/cardanoNative/cardanoNative.test.d.ts.map +0 -1
  42. package/lib/crypto-assets-importer/importers/cardanoNative/cardanoNative.test.js +0 -74
  43. package/lib/crypto-assets-importer/importers/cardanoNative/cardanoNative.test.js.map +0 -1
  44. package/lib/crypto-assets-importer/importers/eip712/eip712.test.d.ts +0 -2
  45. package/lib/crypto-assets-importer/importers/eip712/eip712.test.d.ts.map +0 -1
  46. package/lib/crypto-assets-importer/importers/eip712/eip712.test.js +0 -45
  47. package/lib/crypto-assets-importer/importers/eip712/eip712.test.js.map +0 -1
  48. package/lib/crypto-assets-importer/importers/esdt/esdt.test.d.ts +0 -2
  49. package/lib/crypto-assets-importer/importers/esdt/esdt.test.d.ts.map +0 -1
  50. package/lib/crypto-assets-importer/importers/esdt/esdt.test.js +0 -65
  51. package/lib/crypto-assets-importer/importers/esdt/esdt.test.js.map +0 -1
  52. package/lib/crypto-assets-importer/importers/evm/evm.test.d.ts +0 -2
  53. package/lib/crypto-assets-importer/importers/evm/evm.test.d.ts.map +0 -1
  54. package/lib/crypto-assets-importer/importers/evm/evm.test.js +0 -62
  55. package/lib/crypto-assets-importer/importers/evm/evm.test.js.map +0 -1
  56. package/lib/crypto-assets-importer/importers/filecoin/filecoin-erc20.test.d.ts +0 -2
  57. package/lib/crypto-assets-importer/importers/filecoin/filecoin-erc20.test.d.ts.map +0 -1
  58. package/lib/crypto-assets-importer/importers/filecoin/filecoin-erc20.test.js +0 -66
  59. package/lib/crypto-assets-importer/importers/filecoin/filecoin-erc20.test.js.map +0 -1
  60. package/lib/crypto-assets-importer/importers/hedera/hedera.test.d.ts +0 -2
  61. package/lib/crypto-assets-importer/importers/hedera/hedera.test.d.ts.map +0 -1
  62. package/lib/crypto-assets-importer/importers/hedera/hedera.test.js +0 -64
  63. package/lib/crypto-assets-importer/importers/hedera/hedera.test.js.map +0 -1
  64. package/lib/crypto-assets-importer/importers/spl/spl.test.d.ts +0 -2
  65. package/lib/crypto-assets-importer/importers/spl/spl.test.d.ts.map +0 -1
  66. package/lib/crypto-assets-importer/importers/spl/spl.test.js +0 -73
  67. package/lib/crypto-assets-importer/importers/spl/spl.test.js.map +0 -1
  68. package/lib/crypto-assets-importer/importers/stellar/stellar.test.d.ts +0 -2
  69. package/lib/crypto-assets-importer/importers/stellar/stellar.test.d.ts.map +0 -1
  70. package/lib/crypto-assets-importer/importers/stellar/stellar.test.js +0 -56
  71. package/lib/crypto-assets-importer/importers/stellar/stellar.test.js.map +0 -1
  72. package/lib/crypto-assets-importer/importers/sui/sui.test.d.ts +0 -2
  73. package/lib/crypto-assets-importer/importers/sui/sui.test.d.ts.map +0 -1
  74. package/lib/crypto-assets-importer/importers/sui/sui.test.js +0 -74
  75. package/lib/crypto-assets-importer/importers/sui/sui.test.js.map +0 -1
  76. package/lib/crypto-assets-importer/importers/ton/ton-jetton.test.d.ts +0 -2
  77. package/lib/crypto-assets-importer/importers/ton/ton-jetton.test.d.ts.map +0 -1
  78. package/lib/crypto-assets-importer/importers/ton/ton-jetton.test.js +0 -59
  79. package/lib/crypto-assets-importer/importers/ton/ton-jetton.test.js.map +0 -1
  80. package/lib/crypto-assets-importer/importers/trc20/trc20.test.d.ts +0 -2
  81. package/lib/crypto-assets-importer/importers/trc20/trc20.test.d.ts.map +0 -1
  82. package/lib/crypto-assets-importer/importers/trc20/trc20.test.js +0 -71
  83. package/lib/crypto-assets-importer/importers/trc20/trc20.test.js.map +0 -1
  84. package/lib/crypto-assets-importer/importers/vip180/vip180.test.d.ts +0 -2
  85. package/lib/crypto-assets-importer/importers/vip180/vip180.test.d.ts.map +0 -1
  86. package/lib/crypto-assets-importer/importers/vip180/vip180.test.js +0 -64
  87. package/lib/crypto-assets-importer/importers/vip180/vip180.test.js.map +0 -1
  88. package/lib/currencies.test.d.ts +0 -2
  89. package/lib/currencies.test.d.ts.map +0 -1
  90. package/lib/currencies.test.js +0 -230
  91. package/lib/currencies.test.js.map +0 -1
  92. package/lib/legacy/legacy.test.d.ts +0 -2
  93. package/lib/legacy/legacy.test.d.ts.map +0 -1
  94. package/lib/legacy/legacy.test.js +0 -466
  95. package/lib/legacy/legacy.test.js.map +0 -1
  96. package/lib/tokens.test.d.ts +0 -2
  97. package/lib/tokens.test.d.ts.map +0 -1
  98. package/lib/tokens.test.js +0 -118
  99. package/lib/tokens.test.js.map +0 -1
  100. package/lib-es/api-asset-converter.test.d.ts +0 -2
  101. package/lib-es/api-asset-converter.test.d.ts.map +0 -1
  102. package/lib-es/api-asset-converter.test.js +0 -238
  103. package/lib-es/api-asset-converter.test.js.map +0 -1
  104. package/lib-es/api-token-converter.test.d.ts +0 -2
  105. package/lib-es/api-token-converter.test.d.ts.map +0 -1
  106. package/lib-es/api-token-converter.test.js +0 -314
  107. package/lib-es/api-token-converter.test.js.map +0 -1
  108. package/lib-es/backtest-tokenTypes.test.d.ts +0 -2
  109. package/lib-es/backtest-tokenTypes.test.d.ts.map +0 -1
  110. package/lib-es/backtest-tokenTypes.test.js +0 -29
  111. package/lib-es/backtest-tokenTypes.test.js.map +0 -1
  112. package/lib-es/crypto-assets-importer/fetch/fetch.test.d.ts +0 -2
  113. package/lib-es/crypto-assets-importer/fetch/fetch.test.d.ts.map +0 -1
  114. package/lib-es/crypto-assets-importer/fetch/fetch.test.js +0 -23
  115. package/lib-es/crypto-assets-importer/fetch/fetch.test.js.map +0 -1
  116. package/lib-es/crypto-assets-importer/importers/apt/aptos.test.d.ts +0 -2
  117. package/lib-es/crypto-assets-importer/importers/apt/aptos.test.d.ts.map +0 -1
  118. package/lib-es/crypto-assets-importer/importers/apt/aptos.test.js +0 -64
  119. package/lib-es/crypto-assets-importer/importers/apt/aptos.test.js.map +0 -1
  120. package/lib-es/crypto-assets-importer/importers/asa/asa.test.d.ts +0 -2
  121. package/lib-es/crypto-assets-importer/importers/asa/asa.test.d.ts.map +0 -1
  122. package/lib-es/crypto-assets-importer/importers/asa/asa.test.js +0 -58
  123. package/lib-es/crypto-assets-importer/importers/asa/asa.test.js.map +0 -1
  124. package/lib-es/crypto-assets-importer/importers/cardanoNative/cardanoNative.test.d.ts +0 -2
  125. package/lib-es/crypto-assets-importer/importers/cardanoNative/cardanoNative.test.d.ts.map +0 -1
  126. package/lib-es/crypto-assets-importer/importers/cardanoNative/cardanoNative.test.js +0 -69
  127. package/lib-es/crypto-assets-importer/importers/cardanoNative/cardanoNative.test.js.map +0 -1
  128. package/lib-es/crypto-assets-importer/importers/eip712/eip712.test.d.ts +0 -2
  129. package/lib-es/crypto-assets-importer/importers/eip712/eip712.test.d.ts.map +0 -1
  130. package/lib-es/crypto-assets-importer/importers/eip712/eip712.test.js +0 -40
  131. package/lib-es/crypto-assets-importer/importers/eip712/eip712.test.js.map +0 -1
  132. package/lib-es/crypto-assets-importer/importers/esdt/esdt.test.d.ts +0 -2
  133. package/lib-es/crypto-assets-importer/importers/esdt/esdt.test.d.ts.map +0 -1
  134. package/lib-es/crypto-assets-importer/importers/esdt/esdt.test.js +0 -60
  135. package/lib-es/crypto-assets-importer/importers/esdt/esdt.test.js.map +0 -1
  136. package/lib-es/crypto-assets-importer/importers/evm/evm.test.d.ts +0 -2
  137. package/lib-es/crypto-assets-importer/importers/evm/evm.test.d.ts.map +0 -1
  138. package/lib-es/crypto-assets-importer/importers/evm/evm.test.js +0 -57
  139. package/lib-es/crypto-assets-importer/importers/evm/evm.test.js.map +0 -1
  140. package/lib-es/crypto-assets-importer/importers/filecoin/filecoin-erc20.test.d.ts +0 -2
  141. package/lib-es/crypto-assets-importer/importers/filecoin/filecoin-erc20.test.d.ts.map +0 -1
  142. package/lib-es/crypto-assets-importer/importers/filecoin/filecoin-erc20.test.js +0 -61
  143. package/lib-es/crypto-assets-importer/importers/filecoin/filecoin-erc20.test.js.map +0 -1
  144. package/lib-es/crypto-assets-importer/importers/hedera/hedera.test.d.ts +0 -2
  145. package/lib-es/crypto-assets-importer/importers/hedera/hedera.test.d.ts.map +0 -1
  146. package/lib-es/crypto-assets-importer/importers/hedera/hedera.test.js +0 -59
  147. package/lib-es/crypto-assets-importer/importers/hedera/hedera.test.js.map +0 -1
  148. package/lib-es/crypto-assets-importer/importers/spl/spl.test.d.ts +0 -2
  149. package/lib-es/crypto-assets-importer/importers/spl/spl.test.d.ts.map +0 -1
  150. package/lib-es/crypto-assets-importer/importers/spl/spl.test.js +0 -68
  151. package/lib-es/crypto-assets-importer/importers/spl/spl.test.js.map +0 -1
  152. package/lib-es/crypto-assets-importer/importers/stellar/stellar.test.d.ts +0 -2
  153. package/lib-es/crypto-assets-importer/importers/stellar/stellar.test.d.ts.map +0 -1
  154. package/lib-es/crypto-assets-importer/importers/stellar/stellar.test.js +0 -51
  155. package/lib-es/crypto-assets-importer/importers/stellar/stellar.test.js.map +0 -1
  156. package/lib-es/crypto-assets-importer/importers/sui/sui.test.d.ts +0 -2
  157. package/lib-es/crypto-assets-importer/importers/sui/sui.test.d.ts.map +0 -1
  158. package/lib-es/crypto-assets-importer/importers/sui/sui.test.js +0 -69
  159. package/lib-es/crypto-assets-importer/importers/sui/sui.test.js.map +0 -1
  160. package/lib-es/crypto-assets-importer/importers/ton/ton-jetton.test.d.ts +0 -2
  161. package/lib-es/crypto-assets-importer/importers/ton/ton-jetton.test.d.ts.map +0 -1
  162. package/lib-es/crypto-assets-importer/importers/ton/ton-jetton.test.js +0 -54
  163. package/lib-es/crypto-assets-importer/importers/ton/ton-jetton.test.js.map +0 -1
  164. package/lib-es/crypto-assets-importer/importers/trc20/trc20.test.d.ts +0 -2
  165. package/lib-es/crypto-assets-importer/importers/trc20/trc20.test.d.ts.map +0 -1
  166. package/lib-es/crypto-assets-importer/importers/trc20/trc20.test.js +0 -66
  167. package/lib-es/crypto-assets-importer/importers/trc20/trc20.test.js.map +0 -1
  168. package/lib-es/crypto-assets-importer/importers/vip180/vip180.test.d.ts +0 -2
  169. package/lib-es/crypto-assets-importer/importers/vip180/vip180.test.d.ts.map +0 -1
  170. package/lib-es/crypto-assets-importer/importers/vip180/vip180.test.js +0 -59
  171. package/lib-es/crypto-assets-importer/importers/vip180/vip180.test.js.map +0 -1
  172. package/lib-es/currencies.test.d.ts +0 -2
  173. package/lib-es/currencies.test.d.ts.map +0 -1
  174. package/lib-es/currencies.test.js +0 -228
  175. package/lib-es/currencies.test.js.map +0 -1
  176. package/lib-es/legacy/legacy.test.d.ts +0 -2
  177. package/lib-es/legacy/legacy.test.d.ts.map +0 -1
  178. package/lib-es/legacy/legacy.test.js +0 -464
  179. package/lib-es/legacy/legacy.test.js.map +0 -1
  180. package/lib-es/tokens.test.d.ts +0 -2
  181. package/lib-es/tokens.test.d.ts.map +0 -1
  182. package/lib-es/tokens.test.js +0 -116
  183. package/lib-es/tokens.test.js.map +0 -1
@@ -1,464 +0,0 @@
1
- import { getCryptoCurrencyById } from "../currencies";
2
- import { convertERC20, convertAlgorandASATokens, convertVechainToken, convertTRONTokens, convertMultiversXESDTTokens, convertSplTokens, convertAptCoinTokens, convertAptFaTokens, convertSuiTokens, convertHederaTokens, convertCardanoNativeTokens, convertStellarTokens, convertJettonToken, createTokenHash, __clearAllLists, addTokens, listTokensLegacy, listTokensForCryptoCurrencyLegacy, } from "./legacy-utils";
3
- import { initializeLegacyTokens } from "./legacy-data";
4
- import { getEnv } from "@ledgerhq/live-env";
5
- import { tokensArray, tokensArrayWithDelisted, tokensByCryptoCurrency, tokensByCryptoCurrencyWithDelisted, tokensById, tokensByCurrencyAddress, tokenListHashes, } from "./legacy-state";
6
- // Mock live-env
7
- jest.mock("@ledgerhq/live-env", () => ({
8
- getEnv: jest.fn((_key) => false),
9
- }));
10
- describe("Legacy Utils", () => {
11
- beforeEach(() => {
12
- __clearAllLists();
13
- });
14
- describe("Convert functions", () => {
15
- it("should convert ERC20 token", () => {
16
- const erc20Token = [
17
- "ethereum",
18
- "test_token",
19
- "TEST",
20
- 18,
21
- "Test Token",
22
- "signature",
23
- "0x123",
24
- false,
25
- false,
26
- ];
27
- const result = convertERC20(erc20Token);
28
- expect(result).toBeDefined();
29
- expect(result?.type).toBe("TokenCurrency");
30
- expect(result?.ticker).toBe("TEST");
31
- });
32
- it("should handle invalid parent currency in ERC20", () => {
33
- const erc20Token = [
34
- "invalid_currency",
35
- "test_token",
36
- "TEST",
37
- 18,
38
- "Test Token",
39
- "signature",
40
- "0x123",
41
- false,
42
- false,
43
- ];
44
- const result = convertERC20(erc20Token);
45
- expect(result).toBeUndefined();
46
- });
47
- it("should convert BSC token as BEP20", () => {
48
- const bscToken = [
49
- "bsc",
50
- "test_token",
51
- "TEST",
52
- 18,
53
- "Test Token",
54
- "signature",
55
- "0x123",
56
- false,
57
- false,
58
- ];
59
- const result = convertERC20(bscToken);
60
- expect(result?.tokenType).toBe("bep20");
61
- });
62
- it("should convert Algorand ASA token", () => {
63
- const asaToken = ["1", "TEST", "Test Token", "0x123", 6];
64
- const result = convertAlgorandASATokens(asaToken);
65
- expect(result.type).toBe("TokenCurrency");
66
- expect(result.tokenType).toBe("asa");
67
- });
68
- it("should convert VeChain token", () => {
69
- const vechainToken = ["test", "TEST", "Test Token", "0x123", 18];
70
- const result = convertVechainToken(vechainToken);
71
- expect(result.type).toBe("TokenCurrency");
72
- expect(result.tokenType).toBe("vip180");
73
- });
74
- it("should convert TRON TRC10 token", () => {
75
- const trc10Token = [1, "TEST", "Test Token", "1", 6, false, "sig"];
76
- const converter = convertTRONTokens("trc10");
77
- const result = converter(trc10Token);
78
- expect(result.type).toBe("TokenCurrency");
79
- expect(result.tokenType).toBe("trc10");
80
- });
81
- it("should convert TRON TRC20 token", () => {
82
- const trc20Token = ["1", "TEST", "Test Token", "TR123", 6, false, "sig"];
83
- const converter = convertTRONTokens("trc20");
84
- const result = converter(trc20Token);
85
- expect(result.type).toBe("TokenCurrency");
86
- expect(result.tokenType).toBe("trc20");
87
- });
88
- it("should convert MultiversX ESDT token", () => {
89
- const esdtToken = ["TEST", "TEST-123", 18, "sig", "Test Token"];
90
- const result = convertMultiversXESDTTokens(esdtToken);
91
- expect(result.type).toBe("TokenCurrency");
92
- expect(result.tokenType).toBe("esdt");
93
- });
94
- it("should convert SPL token", () => {
95
- const splToken = ["solana/spl/test", "solana", "Test Token", "TEST", "So123", 9];
96
- const result = convertSplTokens(splToken);
97
- expect(result.type).toBe("TokenCurrency");
98
- expect(result.tokenType).toBe("spl");
99
- });
100
- it("should convert Aptos Coin token", () => {
101
- const aptCoinToken = [
102
- "aptos/coin/test",
103
- "TEST",
104
- "Test Token",
105
- "0x1::test",
106
- 8,
107
- false,
108
- ];
109
- const result = convertAptCoinTokens(aptCoinToken);
110
- expect(result.type).toBe("TokenCurrency");
111
- expect(result.tokenType).toBe("coin");
112
- });
113
- it("should convert Aptos FA token", () => {
114
- const aptFaToken = ["aptos/fa/test", "TEST", "Test Token", "0x1::test", 8, false];
115
- const result = convertAptFaTokens(aptFaToken);
116
- expect(result.type).toBe("TokenCurrency");
117
- expect(result.tokenType).toBe("fungible_asset");
118
- });
119
- it("should convert Sui token", () => {
120
- const suiToken = ["sui/test", "Test Token", "TEST", "0x123", 9, "signature"];
121
- const result = convertSuiTokens(suiToken);
122
- expect(result.type).toBe("TokenCurrency");
123
- expect(result.tokenType).toBe("sui");
124
- });
125
- it("should convert Hedera token", () => {
126
- const hederaToken = [
127
- "hedera/hts/test",
128
- "0.0.123",
129
- "Test Token",
130
- "TEST",
131
- "hedera",
132
- 8,
133
- false,
134
- ];
135
- const result = convertHederaTokens(hederaToken);
136
- expect(result.type).toBe("TokenCurrency");
137
- expect(result.tokenType).toBe("hts");
138
- });
139
- it("should convert Cardano native token", () => {
140
- const cardanoToken = [
141
- "cardano",
142
- "policy123",
143
- "asset456",
144
- "Test Token",
145
- "TEST",
146
- 6,
147
- false,
148
- ];
149
- const result = convertCardanoNativeTokens(cardanoToken);
150
- expect(result?.type).toBe("TokenCurrency");
151
- expect(result?.tokenType).toBe("native");
152
- });
153
- it("should handle invalid parent currency in Cardano", () => {
154
- const cardanoToken = [
155
- // @ts-expect-error invalid parent currency
156
- "invalid",
157
- "policy123",
158
- "asset456",
159
- "Test Token",
160
- "TEST",
161
- 6,
162
- false,
163
- ];
164
- expect(() => convertCardanoNativeTokens(cardanoToken)).toThrow('currency with id "invalid" not found');
165
- });
166
- it("should convert Stellar token", () => {
167
- const stellarToken = ["TEST", "GTEST123", "stellar", "Test Token", 7];
168
- const result = convertStellarTokens(stellarToken);
169
- expect(result.type).toBe("TokenCurrency");
170
- expect(result.tokenType).toBe("stellar");
171
- });
172
- it("should convert Jetton token", () => {
173
- const jettonToken = ["EQTest123", "Test Token", "TEST", 9, false];
174
- const result = convertJettonToken(jettonToken);
175
- expect(result?.type).toBe("TokenCurrency");
176
- expect(result?.tokenType).toBe("jetton");
177
- });
178
- });
179
- describe("Token management", () => {
180
- it("should create token hash", () => {
181
- const token = {
182
- type: "TokenCurrency",
183
- id: "test",
184
- contractAddress: "0x123",
185
- parentCurrency: getCryptoCurrencyById("ethereum"),
186
- tokenType: "erc20",
187
- name: "Test",
188
- ticker: "TEST",
189
- units: [],
190
- delisted: false,
191
- ledgerSignature: "sig",
192
- };
193
- const hash = createTokenHash(token);
194
- expect(hash).toBe("test0x123falseTESTsig");
195
- });
196
- it("should add tokens and populate all lookup objects", () => {
197
- const token = {
198
- type: "TokenCurrency",
199
- id: "ethereum/erc20/test",
200
- contractAddress: "0x123",
201
- parentCurrency: getCryptoCurrencyById("ethereum"),
202
- tokenType: "erc20",
203
- name: "Test Token",
204
- ticker: "TEST",
205
- units: [],
206
- };
207
- addTokens([token]);
208
- expect(tokensArray).toContain(token);
209
- expect(tokensArrayWithDelisted).toContain(token);
210
- expect(tokensById[token.id]).toBe(token);
211
- expect(tokensByCurrencyAddress["ethereum:0x123"]).toBe(token);
212
- expect(tokensByCryptoCurrency["ethereum"]).toContain(token);
213
- });
214
- it("should handle delisted tokens", () => {
215
- const token = {
216
- type: "TokenCurrency",
217
- id: "ethereum/erc20/test",
218
- contractAddress: "0x123",
219
- parentCurrency: getCryptoCurrencyById("ethereum"),
220
- tokenType: "erc20",
221
- name: "Test Token",
222
- ticker: "TEST",
223
- units: [],
224
- delisted: true,
225
- };
226
- addTokens([token]);
227
- expect(tokensArray).not.toContain(token);
228
- expect(tokensArrayWithDelisted).toContain(token);
229
- expect(tokensByCryptoCurrency["ethereum"]).not.toContain(token);
230
- expect(tokensByCryptoCurrencyWithDelisted["ethereum"]).toContain(token);
231
- });
232
- it("should not add duplicate tokens", () => {
233
- const token = {
234
- type: "TokenCurrency",
235
- id: "ethereum/erc20/test",
236
- contractAddress: "0x123",
237
- parentCurrency: getCryptoCurrencyById("ethereum"),
238
- tokenType: "erc20",
239
- name: "Test Token",
240
- ticker: "TEST",
241
- units: [],
242
- };
243
- addTokens([token]);
244
- addTokens([token]); // Add same token again
245
- expect(tokensArray.length).toBe(1);
246
- });
247
- it("should handle ticker conflicts (first wins)", () => {
248
- const token1 = {
249
- type: "TokenCurrency",
250
- id: "ethereum/erc20/test1",
251
- contractAddress: "0x123",
252
- parentCurrency: getCryptoCurrencyById("ethereum"),
253
- tokenType: "erc20",
254
- name: "Test Token 1",
255
- ticker: "TEST",
256
- units: [],
257
- };
258
- const token2 = {
259
- type: "TokenCurrency",
260
- id: "ethereum/erc20/test2",
261
- contractAddress: "0x456",
262
- parentCurrency: getCryptoCurrencyById("ethereum"),
263
- tokenType: "erc20",
264
- name: "Test Token 2",
265
- ticker: "TEST",
266
- units: [],
267
- };
268
- addTokens([token1, token2]);
269
- // Both tokens should be added successfully
270
- expect(tokensById[token1.id]).toBe(token1);
271
- expect(tokensById[token2.id]).toBe(token2);
272
- });
273
- it("should handle undefined tokens", () => {
274
- addTokens([undefined]);
275
- expect(tokensArray.length).toBe(0);
276
- });
277
- it("should update existing tokens", () => {
278
- const token1 = {
279
- type: "TokenCurrency",
280
- id: "ethereum/erc20/test",
281
- contractAddress: "0x123",
282
- parentCurrency: getCryptoCurrencyById("ethereum"),
283
- tokenType: "erc20",
284
- name: "Test Token",
285
- ticker: "TEST",
286
- units: [],
287
- };
288
- const token2 = {
289
- type: "TokenCurrency",
290
- id: "ethereum/erc20/test",
291
- contractAddress: "0x123",
292
- parentCurrency: getCryptoCurrencyById("ethereum"),
293
- tokenType: "erc20",
294
- name: "Updated Test Token",
295
- ticker: "TEST2",
296
- units: [],
297
- };
298
- addTokens([token1]);
299
- addTokens([token2]);
300
- expect(tokensById[token1.id]).toBe(token2);
301
- expect(tokensArray.length).toBe(1);
302
- });
303
- it("should handle removing non-existent token from arrays", () => {
304
- const token1 = {
305
- type: "TokenCurrency",
306
- id: "ethereum/erc20/test1",
307
- contractAddress: "0x123",
308
- parentCurrency: getCryptoCurrencyById("ethereum"),
309
- tokenType: "erc20",
310
- name: "Test Token 1",
311
- ticker: "TEST1",
312
- units: [],
313
- };
314
- // Add first token
315
- addTokens([token1]);
316
- expect(tokensArray.length).toBe(1);
317
- // Try to update with a token that has different ID but same hash will trigger removal logic
318
- // This will test the removeTokenFromArray function when token is not found
319
- const tokenWithSameHash = {
320
- type: "TokenCurrency",
321
- id: "ethereum/erc20/test1", // Same ID to trigger update path
322
- contractAddress: "0x789", // Different address
323
- parentCurrency: getCryptoCurrencyById("ethereum"),
324
- tokenType: "erc20",
325
- name: "Test Token 1 Updated",
326
- ticker: "TEST1_UPDATED",
327
- units: [],
328
- };
329
- addTokens([tokenWithSameHash]);
330
- expect(tokensArray.length).toBe(1);
331
- expect(tokensArray[0]).toBe(tokenWithSameHash);
332
- });
333
- });
334
- describe("List functions", () => {
335
- beforeEach(() => {
336
- const token1 = {
337
- type: "TokenCurrency",
338
- id: "ethereum/erc20/test1",
339
- contractAddress: "0x123",
340
- parentCurrency: getCryptoCurrencyById("ethereum"),
341
- tokenType: "erc20",
342
- name: "Test Token 1",
343
- ticker: "TEST1",
344
- units: [],
345
- };
346
- const token2 = {
347
- type: "TokenCurrency",
348
- id: "ethereum/erc20/test2",
349
- contractAddress: "0x456",
350
- parentCurrency: getCryptoCurrencyById("ethereum"),
351
- tokenType: "erc20",
352
- name: "Test Token 2",
353
- ticker: "TEST2",
354
- units: [],
355
- delisted: true,
356
- };
357
- addTokens([token1, token2]);
358
- });
359
- it("should list tokens without delisted by default", () => {
360
- const tokens = listTokensLegacy();
361
- expect(tokens.length).toBe(1);
362
- expect(tokens[0].ticker).toBe("TEST1");
363
- });
364
- it("should list tokens with delisted when requested", () => {
365
- const tokens = listTokensLegacy({ withDelisted: true });
366
- expect(tokens.length).toBe(2);
367
- });
368
- it("should list tokens for specific currency", () => {
369
- const ethereum = getCryptoCurrencyById("ethereum");
370
- const tokens = listTokensForCryptoCurrencyLegacy(ethereum);
371
- expect(tokens.length).toBe(1);
372
- expect(tokens[0].ticker).toBe("TEST1");
373
- });
374
- it("should list tokens for specific currency with delisted", () => {
375
- const ethereum = getCryptoCurrencyById("ethereum");
376
- const tokens = listTokensForCryptoCurrencyLegacy(ethereum, { withDelisted: true });
377
- expect(tokens.length).toBe(2);
378
- });
379
- it("should return empty array for currency with no tokens", () => {
380
- const bitcoin = getCryptoCurrencyById("bitcoin");
381
- const tokens = listTokensForCryptoCurrencyLegacy(bitcoin);
382
- expect(tokens).toEqual([]);
383
- });
384
- it("should return empty array for currency with no delisted tokens", () => {
385
- const bitcoin = getCryptoCurrencyById("bitcoin");
386
- const tokens = listTokensForCryptoCurrencyLegacy(bitcoin, { withDelisted: true });
387
- expect(tokens).toEqual([]);
388
- });
389
- });
390
- describe("Clear functions", () => {
391
- it("should clear all lists", () => {
392
- const token = {
393
- type: "TokenCurrency",
394
- id: "ethereum/erc20/test",
395
- contractAddress: "0x123",
396
- parentCurrency: getCryptoCurrencyById("ethereum"),
397
- tokenType: "erc20",
398
- name: "Test Token",
399
- ticker: "TEST",
400
- units: [],
401
- };
402
- addTokens([token]);
403
- expect(tokensArray.length).toBe(1);
404
- __clearAllLists();
405
- expect(tokensArray.length).toBe(0);
406
- expect(tokensArrayWithDelisted.length).toBe(0);
407
- expect(Object.keys(tokensByCryptoCurrency).length).toBe(0);
408
- expect(Object.keys(tokensByCryptoCurrencyWithDelisted).length).toBe(0);
409
- expect(Object.keys(tokensById).length).toBe(0);
410
- expect(Object.keys(tokensByCurrencyAddress).length).toBe(0);
411
- expect(tokenListHashes.size).toBe(0);
412
- });
413
- });
414
- });
415
- describe("Legacy Data", () => {
416
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
417
- const mockGetEnv = getEnv;
418
- beforeEach(() => {
419
- mockGetEnv.mockReturnValue(false);
420
- });
421
- it("should initialize legacy tokens", () => {
422
- const mockAddTokens = jest.fn();
423
- initializeLegacyTokens(mockAddTokens);
424
- // Should call addTokens multiple times for different token types
425
- expect(mockAddTokens).toHaveBeenCalled();
426
- expect(mockAddTokens.mock.calls.length).toBeGreaterThan(10);
427
- });
428
- it("should initialize legacy tokens with SUI enabled", () => {
429
- mockGetEnv.mockImplementation((key) => key === "SUI_ENABLE_TOKENS");
430
- const mockAddTokens = jest.fn();
431
- initializeLegacyTokens(mockAddTokens);
432
- expect(mockAddTokens).toHaveBeenCalled();
433
- // Should have more calls when SUI is enabled
434
- expect(mockAddTokens.mock.calls.length).toBeGreaterThan(10);
435
- });
436
- it("should initialize legacy tokens with APTOS enabled", () => {
437
- mockGetEnv.mockImplementation((key) => key === "APTOS_ENABLE_TOKENS");
438
- const mockAddTokens = jest.fn();
439
- initializeLegacyTokens(mockAddTokens);
440
- expect(mockAddTokens).toHaveBeenCalled();
441
- // Should have more calls when APTOS is enabled
442
- expect(mockAddTokens.mock.calls.length).toBeGreaterThan(10);
443
- });
444
- it("should initialize legacy tokens with both SUI and APTOS enabled", () => {
445
- mockGetEnv.mockImplementation((key) => key === "SUI_ENABLE_TOKENS" || key === "APTOS_ENABLE_TOKENS");
446
- const mockAddTokens = jest.fn();
447
- initializeLegacyTokens(mockAddTokens);
448
- expect(mockAddTokens).toHaveBeenCalled();
449
- // Should have the most calls when both are enabled
450
- expect(mockAddTokens.mock.calls.length).toBeGreaterThan(12);
451
- });
452
- });
453
- describe("Legacy State", () => {
454
- it("should export all state objects", () => {
455
- expect(tokensArray).toBeDefined();
456
- expect(tokensArrayWithDelisted).toBeDefined();
457
- expect(tokensByCryptoCurrency).toBeDefined();
458
- expect(tokensByCryptoCurrencyWithDelisted).toBeDefined();
459
- expect(tokensById).toBeDefined();
460
- expect(tokensByCurrencyAddress).toBeDefined();
461
- expect(tokenListHashes).toBeDefined();
462
- });
463
- });
464
- //# sourceMappingURL=legacy.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy.test.js","sourceRoot":"","sources":["../../src/legacy/legacy.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC3B,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,iCAAiC,GAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,sBAAsB,EACtB,kCAAkC,EAClC,UAAU,EACV,uBAAuB,EACvB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAkBxB,gBAAgB;AAChB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC;CACzC,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,UAAU,CAAC,GAAG,EAAE;QACd,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,UAAU,GAAe;gBAC7B,UAAU;gBACV,YAAY;gBACZ,MAAM;gBACN,EAAE;gBACF,YAAY;gBACZ,WAAW;gBACX,OAAO;gBACP,KAAK;gBACL,KAAK;aACN,CAAC;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,UAAU,GAAe;gBAC7B,kBAAkB;gBAClB,YAAY;gBACZ,MAAM;gBACN,EAAE;gBACF,YAAY;gBACZ,WAAW;gBACX,OAAO;gBACP,KAAK;gBACL,KAAK;aACN,CAAC;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,QAAQ,GAAe;gBAC3B,KAAK;gBACL,YAAY;gBACZ,MAAM;gBACN,EAAE;gBACF,YAAY;gBACZ,WAAW;gBACX,OAAO;gBACP,KAAK;gBACL,KAAK;aACN,CAAC;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,QAAQ,GAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,YAAY,GAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,UAAU,GAAe,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/E,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,UAAU,GAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACrF,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,SAAS,GAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YACrF,MAAM,MAAM,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,QAAQ,GAAa,CAAC,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,YAAY,GAAe;gBAC/B,iBAAiB;gBACjB,MAAM;gBACN,YAAY;gBACZ,WAAW;gBACX,CAAC;gBACD,KAAK;aACN,CAAC;YACF,MAAM,MAAM,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,UAAU,GAAe,CAAC,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,QAAQ,GAAa,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;YACvF,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,WAAW,GAAgB;gBAC/B,iBAAiB;gBACjB,SAAS;gBACT,YAAY;gBACZ,MAAM;gBACN,QAAQ;gBACR,CAAC;gBACD,KAAK;aACN,CAAC;YACF,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,YAAY,GAAuB;gBACvC,SAAS;gBACT,WAAW;gBACX,UAAU;gBACV,YAAY;gBACZ,MAAM;gBACN,CAAC;gBACD,KAAK;aACN,CAAC;YACF,MAAM,MAAM,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,YAAY,GAAuB;gBACvC,2CAA2C;gBAC3C,SAAS;gBACT,WAAW;gBACX,UAAU;gBACV,YAAY;gBACZ,MAAM;gBACN,CAAC;gBACD,KAAK;aACN,CAAC;YACF,MAAM,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAC5D,sCAAsC,CACvC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,YAAY,GAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,WAAW,GAAmB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,KAAK,GAAkB;gBAC3B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,MAAM;gBACV,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,KAAK;gBACf,eAAe,EAAE,KAAK;aACvB,CAAC;YAEF,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAkB;gBAC3B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,qBAAqB;gBACzB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAEnB,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9D,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,KAAK,GAAkB;gBAC3B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,qBAAqB;gBACzB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,IAAI;aACf,CAAC;YAEF,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAEnB,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,CAAC,kCAAkC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,KAAK,GAAkB;gBAC3B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,qBAAqB;gBACzB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACnB,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB;YAE3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,MAAM,GAAkB;gBAC5B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,sBAAsB;gBAC1B,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,MAAM,MAAM,GAAkB;gBAC5B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,sBAAsB;gBAC1B,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YAE5B,2CAA2C;YAC3C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,MAAM,GAAkB;gBAC5B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,qBAAqB;gBACzB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,MAAM,MAAM,GAAkB;gBAC5B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,qBAAqB;gBACzB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACpB,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAEpB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAkB;gBAC5B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,sBAAsB;gBAC1B,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,kBAAkB;YAClB,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEnC,4FAA4F;YAC5F,2EAA2E;YAC3E,MAAM,iBAAiB,GAAkB;gBACvC,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,sBAAsB,EAAE,iCAAiC;gBAC7D,eAAe,EAAE,OAAO,EAAE,oBAAoB;gBAC9C,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,eAAe;gBACvB,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,MAAM,GAAkB;gBAC5B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,sBAAsB;gBAC1B,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,MAAM,MAAM,GAAkB;gBAC5B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,sBAAsB;gBAC1B,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,IAAI;aACf,CAAC;YAEF,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,iCAAiC,CAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,iCAAiC,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YACnF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,OAAO,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,OAAO,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,iCAAiC,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAClF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,MAAM,KAAK,GAAkB;gBAC3B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,qBAAqB;gBACzB,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,qBAAqB,CAAC,UAAU,CAAC;gBACjD,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEnC,eAAe,EAAE,CAAC;YAElB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,yEAAyE;IACzE,MAAM,UAAU,GAAG,MAA4C,CAAC;IAEhE,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAChC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAEtC,iEAAiE;QACjE,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACzC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,UAAU,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAChC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAEtC,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACzC,6CAA6C;QAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,UAAU,CAAC,kBAAkB,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;QAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAChC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAEtC,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACzC,+CAA+C;QAC/C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,UAAU,CAAC,kBAAkB,CAC3B,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,mBAAmB,IAAI,GAAG,KAAK,qBAAqB,CAC9E,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAChC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAEtC,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACzC,mDAAmD;QACnD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,CAAC,uBAAuB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,CAAC,kCAAkC,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,uBAAuB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=tokens.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.test.d.ts","sourceRoot":"","sources":["../src/tokens.test.ts"],"names":[],"mappings":""}
@@ -1,116 +0,0 @@
1
- import { getCryptoCurrencyById } from "./currencies";
2
- import { addTokens, convertERC20, listTokens, __clearAllLists, findTokenById, listTokensForCryptoCurrency, } from "./tokens";
3
- import { createTokenHash } from "./legacy/legacy-utils";
4
- const initMainToken = [
5
- [
6
- "ethereum",
7
- "ki",
8
- "XKI",
9
- 6,
10
- "Ki",
11
- "304402201fe22e202db62b632e0647a12070c24f34de2006e667abedaed5ca6ea2986b18022054dd4eda5bf5e444601a48e5370cfcf0b51cc5fe1237259f6066311286dbfd55",
12
- "0x4f6103BAd230295baCF30f914FDa7D4273B7F585",
13
- false,
14
- false,
15
- ],
16
- [
17
- "ethereum",
18
- "kiba_inu",
19
- "KIBA",
20
- 18,
21
- "Kiba Inu",
22
- "3045022100baa979e8461d439b324416dff31f277663b51fa36e5e60005933292d5151f32502200528872863ce6b55009387bd2c5b6556b907193e27f506236149634a97518822",
23
- "0x005D1123878Fc55fbd56b54C73963b234a64af3c",
24
- false,
25
- false,
26
- ],
27
- [
28
- "ethereum",
29
- "kick",
30
- "KICK",
31
- 8,
32
- "KICK",
33
- "3044022000b06bf563f55da06b142b6816e824492a4862673f29842aa8b46f23a7dcbe57022049309464e7123f79df5bcead066a2b0af929965d3d9dc683a324eda32f970b07",
34
- "0x27695E09149AdC738A978e9A678F99E4c39e9eb9",
35
- false,
36
- true,
37
- ],
38
- [
39
- "ethereum",
40
- "0xmonero",
41
- "0XMR",
42
- 18,
43
- "0xMonero",
44
- "30440220544ecf38d2906770446f52557f2dd42b6aa274bc960c808c4dcee42c44e8412202206fab6769ebe15fbfb7245b0156d17e432a1acd9920f1ecbf25729f8d8594af6c",
45
- "0x035dF12E0F3ac6671126525f1015E47D79dFEDDF",
46
- false,
47
- true,
48
- ],
49
- ];
50
- const ethereumCurrency = getCryptoCurrencyById("ethereum");
51
- describe("tokens", () => {
52
- beforeEach(() => {
53
- __clearAllLists();
54
- });
55
- describe("addTokens", () => {
56
- it("Should list token to be empty", () => {
57
- expect(listTokens().length).toBe(0);
58
- });
59
- it("Add tokens normally and check if delisted work correclty", () => {
60
- addTokens(initMainToken.map(convertERC20));
61
- expect(listTokens().length).toBe(2);
62
- expect(listTokens({ withDelisted: true }).length).toBe(4);
63
- expect(listTokensForCryptoCurrency(ethereumCurrency).length).toBe(2);
64
- expect(listTokensForCryptoCurrency(ethereumCurrency, { withDelisted: true }).length).toBe(4);
65
- });
66
- it("Add token and readd the same token shouldn't delete anything", () => {
67
- addTokens(initMainToken.map(convertERC20));
68
- const changeToken = [
69
- [
70
- "ethereum",
71
- "kiba_inu",
72
- "KIBA",
73
- 18,
74
- "Kiba Inu",
75
- "3045022100baa979e8461d439b324416dff31f277663b51fa36e5e60005933292d5151f32502200528872863ce6b55009387bd2c5b6556b907193e27f506236149634a97518822",
76
- "0x005D1123878Fc55fbd56b54C73963b234a64af3c",
77
- false,
78
- false,
79
- ],
80
- ];
81
- const tokenHash = createTokenHash(convertERC20(changeToken[0]));
82
- const existingToken = listTokens().find(t => t.ticker === "KIBA");
83
- if (!existingToken)
84
- throw new Error("Should not be empty");
85
- expect(tokenHash).toBe(createTokenHash(existingToken));
86
- addTokens(changeToken.map(convertERC20));
87
- const tokenAfterChange = listTokens().find(t => t.ticker === "KIBA");
88
- if (!tokenAfterChange)
89
- throw new Error("Should not be empty");
90
- expect(tokenHash).toBe(createTokenHash(tokenAfterChange));
91
- });
92
- it("Add tokens normally and then delist one token", () => {
93
- addTokens(initMainToken.map(convertERC20));
94
- const changeToken = [
95
- [
96
- "ethereum",
97
- "kiba_inu",
98
- "KIBA",
99
- 18,
100
- "Kiba Inu",
101
- "3045022100baa979e8461d439b324416dff31f277663b51fa36e5e60005933292d5151f32502200528872863ce6b55009387bd2c5b6556b907193e27f506236149634a97518822",
102
- "0x005D1123878Fc55fbd56b54C73963b234a64af3c",
103
- false,
104
- true,
105
- ],
106
- ];
107
- addTokens(changeToken.map(convertERC20));
108
- expect(listTokens().length).toBe(1);
109
- findTokenById("kiba_inu");
110
- expect(listTokens({ withDelisted: true }).length).toBe(4);
111
- expect(listTokensForCryptoCurrency(ethereumCurrency).length).toBe(1);
112
- expect(listTokensForCryptoCurrency(ethereumCurrency, { withDelisted: true }).length).toBe(4);
113
- });
114
- });
115
- });
116
- //# sourceMappingURL=tokens.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.test.js","sourceRoot":"","sources":["../src/tokens.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EACL,SAAS,EACT,YAAY,EACZ,UAAU,EACV,eAAe,EACf,aAAa,EACb,2BAA2B,GAC5B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,aAAa,GAAiB;IAClC;QACE,UAAU;QACV,IAAI;QACJ,KAAK;QACL,CAAC;QACD,IAAI;QACJ,8IAA8I;QAC9I,4CAA4C;QAC5C,KAAK;QACL,KAAK;KACN;IACD;QACE,UAAU;QACV,UAAU;QACV,MAAM;QACN,EAAE;QACF,UAAU;QACV,gJAAgJ;QAChJ,4CAA4C;QAC5C,KAAK;QACL,KAAK;KACN;IACD;QACE,UAAU;QACV,MAAM;QACN,MAAM;QACN,CAAC;QACD,MAAM;QACN,8IAA8I;QAC9I,4CAA4C;QAC5C,KAAK;QACL,IAAI;KACL;IACD;QACE,UAAU;QACV,UAAU;QACV,MAAM;QACN,EAAE;QACF,UAAU;QACV,8IAA8I;QAC9I,4CAA4C;QAC5C,KAAK;QACL,IAAI;KACL;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAE3D,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,UAAU,CAAC,GAAG,EAAE;QACd,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,2BAA2B,CAAC,gBAAgB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAiB;gBAChC;oBACE,UAAU;oBACV,UAAU;oBACV,MAAM;oBACN,EAAE;oBACF,UAAU;oBACV,gJAAgJ;oBAChJ,4CAA4C;oBAC5C,KAAK;oBACL,KAAK;iBACN;aACF,CAAC;YACF,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;YACjE,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC3D,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;YAEvD,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACzC,MAAM,gBAAgB,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YACrE,IAAI,CAAC,gBAAgB;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC9D,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAiB;gBAChC;oBACE,UAAU;oBACV,UAAU;oBACV,MAAM;oBACN,EAAE;oBACF,UAAU;oBACV,gJAAgJ;oBAChJ,4CAA4C;oBAC5C,KAAK;oBACL,IAAI;iBACL;aACF,CAAC;YACF,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1B,MAAM,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1D,MAAM,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,2BAA2B,CAAC,gBAAgB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}