@ledgerhq/live-common 34.46.0 → 34.47.0-nightly.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/lib/bridge/crypto-assets/index.d.ts +1 -1
  2. package/lib/bridge/crypto-assets/index.d.ts.map +1 -1
  3. package/lib/bridge/crypto-assets/index.js +1 -1
  4. package/lib/bridge/crypto-assets/index.js.map +1 -1
  5. package/lib/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
  6. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js +6 -4
  7. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  8. package/lib/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
  9. package/lib/bridge/generic-alpaca/getTransactionStatus.js +2 -2
  10. package/lib/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
  11. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  12. package/lib/bridge/generic-alpaca/prepareTransaction.js +12 -12
  13. package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  14. package/lib/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  15. package/lib/bridge/generic-alpaca/signOperation.js +3 -4
  16. package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
  17. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js +1 -1
  18. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  19. package/lib/bridge/generic-alpaca/utils.d.ts +0 -1
  20. package/lib/bridge/generic-alpaca/utils.d.ts.map +1 -1
  21. package/lib/bridge/generic-alpaca/utils.js +0 -1
  22. package/lib/bridge/generic-alpaca/utils.js.map +1 -1
  23. package/lib/bridge/impl.d.ts +1 -1
  24. package/lib/bridge/impl.d.ts.map +1 -1
  25. package/lib/currencies/index.d.ts +1 -1
  26. package/lib/currencies/index.d.ts.map +1 -1
  27. package/lib/currencies/index.js +1 -2
  28. package/lib/currencies/index.js.map +1 -1
  29. package/lib/currencies/sortByMarketcap.test.js +2 -1
  30. package/lib/currencies/sortByMarketcap.test.js.map +1 -1
  31. package/lib/domain/getTokensWithFunds.test.js +1 -1
  32. package/lib/domain/getTokensWithFunds.test.js.map +1 -1
  33. package/lib/e2e/enum/AppInfos.d.ts +1 -1
  34. package/lib/e2e/enum/AppInfos.d.ts.map +1 -1
  35. package/lib/e2e/enum/DeviceLabels.d.ts +3 -2
  36. package/lib/e2e/enum/DeviceLabels.d.ts.map +1 -1
  37. package/lib/e2e/enum/DeviceLabels.js +2 -1
  38. package/lib/e2e/enum/DeviceLabels.js.map +1 -1
  39. package/lib/e2e/enum/Provider.d.ts.map +1 -1
  40. package/lib/e2e/enum/Provider.js +2 -2
  41. package/lib/e2e/enum/Provider.js.map +1 -1
  42. package/lib/e2e/families/solana.d.ts.map +1 -1
  43. package/lib/e2e/families/solana.js +4 -4
  44. package/lib/e2e/families/solana.js.map +1 -1
  45. package/lib/e2e/index.d.ts +5 -0
  46. package/lib/e2e/index.d.ts.map +1 -1
  47. package/lib/e2e/speculos.d.ts.map +1 -1
  48. package/lib/e2e/speculos.js +4 -5
  49. package/lib/e2e/speculos.js.map +1 -1
  50. package/lib/e2e/speculosCI.d.ts +4 -0
  51. package/lib/e2e/speculosCI.d.ts.map +1 -1
  52. package/lib/e2e/speculosCI.js +16 -6
  53. package/lib/e2e/speculosCI.js.map +1 -1
  54. package/lib/env.react.d.ts +1 -1
  55. package/lib/env.react.d.ts.map +1 -1
  56. package/lib/exchange/swap/api/v5/actions.js +1 -1
  57. package/lib/exchange/swap/api/v5/actions.js.map +1 -1
  58. package/lib/exchange/swap/types.d.ts +1 -1
  59. package/lib/exchange/swap/types.d.ts.map +1 -1
  60. package/lib/families/evm/setup.d.ts.map +1 -1
  61. package/lib/families/evm/setup.js +11 -1
  62. package/lib/families/evm/setup.js.map +1 -1
  63. package/lib/families/hedera/constants.d.ts +2 -0
  64. package/lib/families/hedera/constants.d.ts.map +1 -0
  65. package/lib/families/hedera/constants.js +19 -0
  66. package/lib/families/hedera/constants.js.map +1 -0
  67. package/lib/families/hedera/setup.d.ts +5 -5
  68. package/lib/families/hedera/setup.d.ts.map +1 -1
  69. package/lib/families/hedera/setup.js.map +1 -1
  70. package/lib/families/solana/setup.d.ts.map +1 -1
  71. package/lib/families/solana/setup.js +2 -1
  72. package/lib/families/solana/setup.js.map +1 -1
  73. package/lib/families/sui/constants.d.ts +2 -0
  74. package/lib/families/sui/constants.d.ts.map +1 -0
  75. package/lib/families/sui/constants.js +19 -0
  76. package/lib/families/sui/constants.js.map +1 -0
  77. package/lib/families/sui/logic.d.ts +2 -0
  78. package/lib/families/sui/logic.d.ts.map +1 -0
  79. package/lib/families/sui/logic.js +19 -0
  80. package/lib/families/sui/logic.js.map +1 -0
  81. package/lib/families/sui/react.d.ts +8 -0
  82. package/lib/families/sui/react.d.ts.map +1 -0
  83. package/lib/families/sui/react.js +85 -0
  84. package/lib/families/sui/react.js.map +1 -0
  85. package/lib/families/sui/types.d.ts +2 -0
  86. package/lib/families/sui/types.d.ts.map +1 -0
  87. package/lib/families/sui/types.js +19 -0
  88. package/lib/families/sui/types.js.map +1 -0
  89. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  90. package/lib/featureFlags/defaultFeatures.js +1 -0
  91. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  92. package/lib/featureFlags/useFeature.d.ts +1 -1
  93. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  94. package/lib/generated/bridge/js.d.ts +1 -1
  95. package/lib/market/utils/countervalueFormatter.d.ts.map +1 -1
  96. package/lib/market/utils/countervalueFormatter.js.map +1 -1
  97. package/lib/market/utils/types.d.ts +2 -0
  98. package/lib/market/utils/types.d.ts.map +1 -1
  99. package/lib/modularDrawer/__mocks__/currencies.mock.d.ts.map +1 -1
  100. package/lib/modularDrawer/__mocks__/currencies.mock.js +7 -7
  101. package/lib/modularDrawer/__mocks__/currencies.mock.js.map +1 -1
  102. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js +1 -1
  103. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js.map +1 -1
  104. package/lib/modularDrawer/data/entities/index.d.ts +68 -0
  105. package/lib/modularDrawer/data/entities/index.d.ts.map +1 -0
  106. package/lib/modularDrawer/data/entities/index.js +3 -0
  107. package/lib/modularDrawer/data/entities/index.js.map +1 -0
  108. package/lib/modularDrawer/data/state-manager/api.d.ts +152 -0
  109. package/lib/modularDrawer/data/state-manager/api.d.ts.map +1 -0
  110. package/lib/modularDrawer/data/state-manager/api.js +45 -0
  111. package/lib/modularDrawer/data/state-manager/api.js.map +1 -0
  112. package/lib/modularDrawer/hooks/__test__/useAssetsData.test.d.ts +5 -0
  113. package/lib/modularDrawer/hooks/__test__/useAssetsData.test.d.ts.map +1 -0
  114. package/lib/modularDrawer/hooks/__test__/useAssetsData.test.js +120 -0
  115. package/lib/modularDrawer/hooks/__test__/useAssetsData.test.js.map +1 -0
  116. package/lib/modularDrawer/hooks/modules/useAssetAccountCounts.d.ts +19 -0
  117. package/lib/modularDrawer/hooks/modules/useAssetAccountCounts.d.ts.map +1 -0
  118. package/lib/modularDrawer/hooks/modules/useAssetAccountCounts.js +16 -0
  119. package/lib/modularDrawer/hooks/modules/useAssetAccountCounts.js.map +1 -0
  120. package/lib/modularDrawer/hooks/modules/useLeftApyModule.d.ts +52 -0
  121. package/lib/modularDrawer/hooks/modules/useLeftApyModule.d.ts.map +1 -0
  122. package/lib/modularDrawer/hooks/modules/useLeftApyModule.js +18 -0
  123. package/lib/modularDrawer/hooks/modules/useLeftApyModule.js.map +1 -0
  124. package/lib/modularDrawer/hooks/useAssetsData.d.ts +13 -0
  125. package/lib/modularDrawer/hooks/useAssetsData.d.ts.map +1 -0
  126. package/lib/modularDrawer/hooks/useAssetsData.js +31 -0
  127. package/lib/modularDrawer/hooks/useAssetsData.js.map +1 -0
  128. package/lib/modularDrawer/types.d.ts +2 -0
  129. package/lib/modularDrawer/types.d.ts.map +1 -0
  130. package/lib/modularDrawer/types.js +3 -0
  131. package/lib/modularDrawer/types.js.map +1 -0
  132. package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts +2 -0
  133. package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts.map +1 -0
  134. package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.js +496 -0
  135. package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.js.map +1 -0
  136. package/lib/modularDrawer/utils/__tests__/currencyUtils.test.js +1 -1
  137. package/lib/modularDrawer/utils/__tests__/currencyUtils.test.js.map +1 -1
  138. package/lib/modularDrawer/utils/__tests__/haveOneCommonProvider.test.js +1 -1
  139. package/lib/modularDrawer/utils/__tests__/haveOneCommonProvider.test.js.map +1 -1
  140. package/lib/modularDrawer/utils/calculateProviderTotal.d.ts +9 -0
  141. package/lib/modularDrawer/utils/calculateProviderTotal.d.ts.map +1 -0
  142. package/lib/modularDrawer/utils/calculateProviderTotal.js +23 -0
  143. package/lib/modularDrawer/utils/calculateProviderTotal.js.map +1 -0
  144. package/lib/modularDrawer/utils/counterValueFormatter.d.ts +14 -0
  145. package/lib/modularDrawer/utils/counterValueFormatter.d.ts.map +1 -0
  146. package/lib/modularDrawer/utils/counterValueFormatter.js +107 -0
  147. package/lib/modularDrawer/utils/counterValueFormatter.js.map +1 -0
  148. package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts +11 -0
  149. package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts.map +1 -0
  150. package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.js +45 -0
  151. package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.js.map +1 -0
  152. package/lib/modularDrawer/utils/getProviderCurrency.d.ts +3 -0
  153. package/lib/modularDrawer/utils/getProviderCurrency.d.ts.map +1 -0
  154. package/lib/modularDrawer/utils/getProviderCurrency.js +14 -0
  155. package/lib/modularDrawer/utils/getProviderCurrency.js.map +1 -0
  156. package/lib/modularDrawer/utils/groupAccountsByAsset.d.ts +11 -0
  157. package/lib/modularDrawer/utils/groupAccountsByAsset.d.ts.map +1 -0
  158. package/lib/modularDrawer/utils/groupAccountsByAsset.js +32 -0
  159. package/lib/modularDrawer/utils/groupAccountsByAsset.js.map +1 -0
  160. package/lib/modularDrawer/utils/parseToBigNumber.d.ts +9 -0
  161. package/lib/modularDrawer/utils/parseToBigNumber.d.ts.map +1 -0
  162. package/lib/modularDrawer/utils/parseToBigNumber.js +24 -0
  163. package/lib/modularDrawer/utils/parseToBigNumber.js.map +1 -0
  164. package/lib/modularDrawer/utils/type.d.ts +21 -0
  165. package/lib/modularDrawer/utils/type.d.ts.map +1 -0
  166. package/lib/modularDrawer/utils/type.js +3 -0
  167. package/lib/modularDrawer/utils/type.js.map +1 -0
  168. package/lib/utils/__tests__/getAccountTuplesForCurrency.test.js +1 -1
  169. package/lib/utils/__tests__/getAccountTuplesForCurrency.test.js.map +1 -1
  170. package/lib/wallet-api/Exchange/error.d.ts +1 -0
  171. package/lib/wallet-api/Exchange/error.d.ts.map +1 -1
  172. package/lib/wallet-api/Exchange/error.js +11 -1
  173. package/lib/wallet-api/Exchange/error.js.map +1 -1
  174. package/lib/wallet-api/Exchange/server.d.ts +2 -0
  175. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  176. package/lib/wallet-api/Exchange/server.js +29 -5
  177. package/lib/wallet-api/Exchange/server.js.map +1 -1
  178. package/lib/wallet-api/Exchange/server.test.js +3 -0
  179. package/lib/wallet-api/Exchange/server.test.js.map +1 -1
  180. package/lib-es/bridge/crypto-assets/index.d.ts +1 -1
  181. package/lib-es/bridge/crypto-assets/index.d.ts.map +1 -1
  182. package/lib-es/bridge/crypto-assets/index.js +1 -1
  183. package/lib-es/bridge/crypto-assets/index.js.map +1 -1
  184. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
  185. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js +6 -4
  186. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  187. package/lib-es/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
  188. package/lib-es/bridge/generic-alpaca/getTransactionStatus.js +2 -2
  189. package/lib-es/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
  190. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  191. package/lib-es/bridge/generic-alpaca/prepareTransaction.js +12 -12
  192. package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  193. package/lib-es/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  194. package/lib-es/bridge/generic-alpaca/signOperation.js +3 -4
  195. package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
  196. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js +1 -1
  197. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  198. package/lib-es/bridge/generic-alpaca/utils.d.ts +0 -1
  199. package/lib-es/bridge/generic-alpaca/utils.d.ts.map +1 -1
  200. package/lib-es/bridge/generic-alpaca/utils.js +0 -1
  201. package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
  202. package/lib-es/bridge/impl.d.ts +1 -1
  203. package/lib-es/bridge/impl.d.ts.map +1 -1
  204. package/lib-es/currencies/index.d.ts +1 -1
  205. package/lib-es/currencies/index.d.ts.map +1 -1
  206. package/lib-es/currencies/index.js +1 -1
  207. package/lib-es/currencies/index.js.map +1 -1
  208. package/lib-es/currencies/sortByMarketcap.test.js +2 -1
  209. package/lib-es/currencies/sortByMarketcap.test.js.map +1 -1
  210. package/lib-es/domain/getTokensWithFunds.test.js +1 -1
  211. package/lib-es/domain/getTokensWithFunds.test.js.map +1 -1
  212. package/lib-es/e2e/enum/AppInfos.d.ts +1 -1
  213. package/lib-es/e2e/enum/AppInfos.d.ts.map +1 -1
  214. package/lib-es/e2e/enum/DeviceLabels.d.ts +3 -2
  215. package/lib-es/e2e/enum/DeviceLabels.d.ts.map +1 -1
  216. package/lib-es/e2e/enum/DeviceLabels.js +2 -1
  217. package/lib-es/e2e/enum/DeviceLabels.js.map +1 -1
  218. package/lib-es/e2e/enum/Provider.d.ts.map +1 -1
  219. package/lib-es/e2e/enum/Provider.js +2 -2
  220. package/lib-es/e2e/enum/Provider.js.map +1 -1
  221. package/lib-es/e2e/families/solana.d.ts.map +1 -1
  222. package/lib-es/e2e/families/solana.js +4 -4
  223. package/lib-es/e2e/families/solana.js.map +1 -1
  224. package/lib-es/e2e/index.d.ts +5 -0
  225. package/lib-es/e2e/index.d.ts.map +1 -1
  226. package/lib-es/e2e/speculos.d.ts.map +1 -1
  227. package/lib-es/e2e/speculos.js +4 -5
  228. package/lib-es/e2e/speculos.js.map +1 -1
  229. package/lib-es/e2e/speculosCI.d.ts +4 -0
  230. package/lib-es/e2e/speculosCI.d.ts.map +1 -1
  231. package/lib-es/e2e/speculosCI.js +14 -5
  232. package/lib-es/e2e/speculosCI.js.map +1 -1
  233. package/lib-es/env.react.d.ts +1 -1
  234. package/lib-es/env.react.d.ts.map +1 -1
  235. package/lib-es/exchange/swap/api/v5/actions.js +1 -1
  236. package/lib-es/exchange/swap/api/v5/actions.js.map +1 -1
  237. package/lib-es/exchange/swap/types.d.ts +1 -1
  238. package/lib-es/exchange/swap/types.d.ts.map +1 -1
  239. package/lib-es/families/evm/setup.d.ts.map +1 -1
  240. package/lib-es/families/evm/setup.js +11 -1
  241. package/lib-es/families/evm/setup.js.map +1 -1
  242. package/lib-es/families/hedera/constants.d.ts +2 -0
  243. package/lib-es/families/hedera/constants.d.ts.map +1 -0
  244. package/lib-es/families/hedera/constants.js +3 -0
  245. package/lib-es/families/hedera/constants.js.map +1 -0
  246. package/lib-es/families/hedera/setup.d.ts +5 -5
  247. package/lib-es/families/hedera/setup.d.ts.map +1 -1
  248. package/lib-es/families/hedera/setup.js.map +1 -1
  249. package/lib-es/families/solana/setup.d.ts.map +1 -1
  250. package/lib-es/families/solana/setup.js +2 -1
  251. package/lib-es/families/solana/setup.js.map +1 -1
  252. package/lib-es/families/sui/constants.d.ts +2 -0
  253. package/lib-es/families/sui/constants.d.ts.map +1 -0
  254. package/lib-es/families/sui/constants.js +3 -0
  255. package/lib-es/families/sui/constants.js.map +1 -0
  256. package/lib-es/families/sui/logic.d.ts +2 -0
  257. package/lib-es/families/sui/logic.d.ts.map +1 -0
  258. package/lib-es/families/sui/logic.js +3 -0
  259. package/lib-es/families/sui/logic.js.map +1 -0
  260. package/lib-es/families/sui/react.d.ts +8 -0
  261. package/lib-es/families/sui/react.d.ts.map +1 -0
  262. package/lib-es/families/sui/react.js +78 -0
  263. package/lib-es/families/sui/react.js.map +1 -0
  264. package/lib-es/families/sui/types.d.ts +2 -0
  265. package/lib-es/families/sui/types.d.ts.map +1 -0
  266. package/lib-es/families/sui/types.js +3 -0
  267. package/lib-es/families/sui/types.js.map +1 -0
  268. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  269. package/lib-es/featureFlags/defaultFeatures.js +1 -0
  270. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  271. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  272. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  273. package/lib-es/generated/bridge/js.d.ts +1 -1
  274. package/lib-es/market/utils/countervalueFormatter.d.ts.map +1 -1
  275. package/lib-es/market/utils/countervalueFormatter.js.map +1 -1
  276. package/lib-es/market/utils/types.d.ts +2 -0
  277. package/lib-es/market/utils/types.d.ts.map +1 -1
  278. package/lib-es/modularDrawer/__mocks__/currencies.mock.d.ts.map +1 -1
  279. package/lib-es/modularDrawer/__mocks__/currencies.mock.js +1 -1
  280. package/lib-es/modularDrawer/__mocks__/currencies.mock.js.map +1 -1
  281. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js +1 -1
  282. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js.map +1 -1
  283. package/lib-es/modularDrawer/data/entities/index.d.ts +68 -0
  284. package/lib-es/modularDrawer/data/entities/index.d.ts.map +1 -0
  285. package/lib-es/modularDrawer/data/entities/index.js +2 -0
  286. package/lib-es/modularDrawer/data/entities/index.js.map +1 -0
  287. package/lib-es/modularDrawer/data/state-manager/api.d.ts +152 -0
  288. package/lib-es/modularDrawer/data/state-manager/api.d.ts.map +1 -0
  289. package/lib-es/modularDrawer/data/state-manager/api.js +42 -0
  290. package/lib-es/modularDrawer/data/state-manager/api.js.map +1 -0
  291. package/lib-es/modularDrawer/hooks/__test__/useAssetsData.test.d.ts +5 -0
  292. package/lib-es/modularDrawer/hooks/__test__/useAssetsData.test.d.ts.map +1 -0
  293. package/lib-es/modularDrawer/hooks/__test__/useAssetsData.test.js +118 -0
  294. package/lib-es/modularDrawer/hooks/__test__/useAssetsData.test.js.map +1 -0
  295. package/lib-es/modularDrawer/hooks/modules/useAssetAccountCounts.d.ts +19 -0
  296. package/lib-es/modularDrawer/hooks/modules/useAssetAccountCounts.d.ts.map +1 -0
  297. package/lib-es/modularDrawer/hooks/modules/useAssetAccountCounts.js +12 -0
  298. package/lib-es/modularDrawer/hooks/modules/useAssetAccountCounts.js.map +1 -0
  299. package/lib-es/modularDrawer/hooks/modules/useLeftApyModule.d.ts +52 -0
  300. package/lib-es/modularDrawer/hooks/modules/useLeftApyModule.d.ts.map +1 -0
  301. package/lib-es/modularDrawer/hooks/modules/useLeftApyModule.js +11 -0
  302. package/lib-es/modularDrawer/hooks/modules/useLeftApyModule.js.map +1 -0
  303. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts +13 -0
  304. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts.map +1 -0
  305. package/lib-es/modularDrawer/hooks/useAssetsData.js +27 -0
  306. package/lib-es/modularDrawer/hooks/useAssetsData.js.map +1 -0
  307. package/lib-es/modularDrawer/types.d.ts +2 -0
  308. package/lib-es/modularDrawer/types.d.ts.map +1 -0
  309. package/lib-es/modularDrawer/types.js +2 -0
  310. package/lib-es/modularDrawer/types.js.map +1 -0
  311. package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts +2 -0
  312. package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts.map +1 -0
  313. package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.js +494 -0
  314. package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.js.map +1 -0
  315. package/lib-es/modularDrawer/utils/__tests__/currencyUtils.test.js +1 -1
  316. package/lib-es/modularDrawer/utils/__tests__/currencyUtils.test.js.map +1 -1
  317. package/lib-es/modularDrawer/utils/__tests__/haveOneCommonProvider.test.js +1 -1
  318. package/lib-es/modularDrawer/utils/__tests__/haveOneCommonProvider.test.js.map +1 -1
  319. package/lib-es/modularDrawer/utils/calculateProviderTotal.d.ts +9 -0
  320. package/lib-es/modularDrawer/utils/calculateProviderTotal.d.ts.map +1 -0
  321. package/lib-es/modularDrawer/utils/calculateProviderTotal.js +16 -0
  322. package/lib-es/modularDrawer/utils/calculateProviderTotal.js.map +1 -0
  323. package/lib-es/modularDrawer/utils/counterValueFormatter.d.ts +14 -0
  324. package/lib-es/modularDrawer/utils/counterValueFormatter.d.ts.map +1 -0
  325. package/lib-es/modularDrawer/utils/counterValueFormatter.js +103 -0
  326. package/lib-es/modularDrawer/utils/counterValueFormatter.js.map +1 -0
  327. package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts +11 -0
  328. package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts.map +1 -0
  329. package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.js +41 -0
  330. package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.js.map +1 -0
  331. package/lib-es/modularDrawer/utils/getProviderCurrency.d.ts +3 -0
  332. package/lib-es/modularDrawer/utils/getProviderCurrency.d.ts.map +1 -0
  333. package/lib-es/modularDrawer/utils/getProviderCurrency.js +10 -0
  334. package/lib-es/modularDrawer/utils/getProviderCurrency.js.map +1 -0
  335. package/lib-es/modularDrawer/utils/groupAccountsByAsset.d.ts +11 -0
  336. package/lib-es/modularDrawer/utils/groupAccountsByAsset.d.ts.map +1 -0
  337. package/lib-es/modularDrawer/utils/groupAccountsByAsset.js +25 -0
  338. package/lib-es/modularDrawer/utils/groupAccountsByAsset.js.map +1 -0
  339. package/lib-es/modularDrawer/utils/parseToBigNumber.d.ts +9 -0
  340. package/lib-es/modularDrawer/utils/parseToBigNumber.d.ts.map +1 -0
  341. package/lib-es/modularDrawer/utils/parseToBigNumber.js +17 -0
  342. package/lib-es/modularDrawer/utils/parseToBigNumber.js.map +1 -0
  343. package/lib-es/modularDrawer/utils/type.d.ts +21 -0
  344. package/lib-es/modularDrawer/utils/type.d.ts.map +1 -0
  345. package/lib-es/modularDrawer/utils/type.js +2 -0
  346. package/lib-es/modularDrawer/utils/type.js.map +1 -0
  347. package/lib-es/utils/__tests__/getAccountTuplesForCurrency.test.js +1 -1
  348. package/lib-es/utils/__tests__/getAccountTuplesForCurrency.test.js.map +1 -1
  349. package/lib-es/wallet-api/Exchange/error.d.ts +1 -0
  350. package/lib-es/wallet-api/Exchange/error.d.ts.map +1 -1
  351. package/lib-es/wallet-api/Exchange/error.js +9 -0
  352. package/lib-es/wallet-api/Exchange/error.js.map +1 -1
  353. package/lib-es/wallet-api/Exchange/server.d.ts +2 -0
  354. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  355. package/lib-es/wallet-api/Exchange/server.js +30 -6
  356. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  357. package/lib-es/wallet-api/Exchange/server.test.js +3 -0
  358. package/lib-es/wallet-api/Exchange/server.test.js.map +1 -1
  359. package/package.json +36 -34
  360. package/src/DataModel.test.ts +1 -1
  361. package/src/__tests__/accounts/groupPerDay.ts +1 -1
  362. package/src/__tests__/test-helpers/setup.ts +1 -1
  363. package/src/account/serialization.test.ts +1 -1
  364. package/src/bridge/crypto-assets/index.test.ts +1 -1
  365. package/src/bridge/crypto-assets/index.ts +3 -2
  366. package/src/bridge/generic-alpaca/estimateMaxSpendable.ts +11 -5
  367. package/src/bridge/generic-alpaca/getTransactionStatus.ts +2 -1
  368. package/src/bridge/generic-alpaca/prepareTransaction.ts +20 -16
  369. package/src/bridge/generic-alpaca/signOperation.ts +3 -2
  370. package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +1 -1
  371. package/src/bridge/generic-alpaca/utils.ts +0 -2
  372. package/src/bridge/impl.ts +1 -1
  373. package/src/currencies/index.ts +0 -1
  374. package/src/currencies/sortByMarketcap.test.ts +3 -2
  375. package/src/domain/getTokensWithFunds.test.ts +1 -1
  376. package/src/e2e/enum/AppInfos.ts +1 -1
  377. package/src/e2e/enum/DeviceLabels.ts +2 -1
  378. package/src/e2e/enum/Provider.ts +2 -2
  379. package/src/e2e/families/solana.ts +7 -4
  380. package/src/e2e/speculos.ts +4 -5
  381. package/src/e2e/speculosCI.ts +18 -6
  382. package/src/exchange/swap/api/v5/actions.ts +1 -1
  383. package/src/exchange/swap/types.ts +1 -1
  384. package/src/families/bitcoin/__snapshots__/bridge.integration.test.ts.snap +7 -0
  385. package/src/families/bitcoin/satstack.test.ts +1 -1
  386. package/src/families/evm/setup.ts +12 -1
  387. package/src/families/hedera/__snapshots__/bridge.integration.test.ts.snap +464 -1135
  388. package/src/families/hedera/constants.ts +2 -0
  389. package/src/families/hedera/setup.ts +7 -3
  390. package/src/families/solana/setup.ts +2 -0
  391. package/src/families/sui/__snapshots__/bridge.integration.test.ts.snap +3 -1
  392. package/src/families/sui/constants.ts +2 -0
  393. package/src/families/sui/logic.ts +2 -0
  394. package/src/families/sui/react.ts +115 -0
  395. package/src/families/sui/types.ts +2 -0
  396. package/src/families/tron/data.mock.ts +1 -1
  397. package/src/featureFlags/defaultFeatures.ts +1 -0
  398. package/src/market/utils/countervalueFormatter.ts +0 -1
  399. package/src/market/utils/types.ts +4 -0
  400. package/src/modularDrawer/__mocks__/currencies.mock.ts +1 -1
  401. package/src/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.ts +1 -1
  402. package/src/modularDrawer/data/entities/index.ts +79 -0
  403. package/src/modularDrawer/data/state-manager/api.ts +62 -0
  404. package/src/modularDrawer/hooks/__test__/useAssetsData.test.ts +139 -0
  405. package/src/modularDrawer/hooks/modules/useAssetAccountCounts.tsx +36 -0
  406. package/src/modularDrawer/hooks/modules/useLeftApyModule.tsx +26 -0
  407. package/src/modularDrawer/hooks/useAssetsData.ts +36 -0
  408. package/src/modularDrawer/types.ts +1 -0
  409. package/src/modularDrawer/utils/__tests__/counterValueFormatter.test.ts +549 -0
  410. package/src/modularDrawer/utils/__tests__/currencyUtils.test.ts +1 -1
  411. package/src/modularDrawer/utils/__tests__/haveOneCommonProvider.test.ts +2 -2
  412. package/src/modularDrawer/utils/calculateProviderTotal.ts +23 -0
  413. package/src/modularDrawer/utils/counterValueFormatter.ts +165 -0
  414. package/src/modularDrawer/utils/getBalanceAndFiatValueByAssets.ts +76 -0
  415. package/src/modularDrawer/utils/getProviderCurrency.ts +13 -0
  416. package/src/modularDrawer/utils/groupAccountsByAsset.ts +51 -0
  417. package/src/modularDrawer/utils/parseToBigNumber.ts +17 -0
  418. package/src/modularDrawer/utils/type.ts +22 -0
  419. package/src/utils/__tests__/getAccountTuplesForCurrency.test.ts +1 -1
  420. package/src/wallet-api/Exchange/error.ts +10 -0
  421. package/src/wallet-api/Exchange/server.test.ts +5 -1
  422. package/src/wallet-api/Exchange/server.ts +44 -5
@@ -0,0 +1,549 @@
1
+ import { counterValueFormatter } from "../counterValueFormatter";
2
+ import { TFunction } from "i18next";
3
+
4
+ const translations = {
5
+ "numberCompactNotation.K": "K",
6
+ "numberCompactNotation.M": "M",
7
+ "numberCompactNotation.B": "B",
8
+ };
9
+
10
+ const mockT = jest.fn().mockImplementation((key: keyof typeof translations) => {
11
+ return translations[key] || key;
12
+ }) as unknown as TFunction;
13
+
14
+ describe("counterValueFormatter", () => {
15
+ it("should return '-' for NaN values", () => {
16
+ const result = counterValueFormatter({
17
+ value: NaN,
18
+ locale: "en-US",
19
+ });
20
+ expect(result).toBe("-");
21
+ });
22
+
23
+ it("should format a number as currency", () => {
24
+ const result = counterValueFormatter({
25
+ value: 1234.56,
26
+ currency: "USD",
27
+ locale: "en-US",
28
+ });
29
+ expect(result).toBe("$1,234.56");
30
+ });
31
+
32
+ it("should format a number as decimal when no currency is provided", () => {
33
+ const result = counterValueFormatter({
34
+ value: 1234.56,
35
+ locale: "en-US",
36
+ });
37
+ expect(result).toBe("1,234.56");
38
+ });
39
+
40
+ it("should format a number in compact notation when shorten is true", () => {
41
+ const result = counterValueFormatter({
42
+ value: 1234567,
43
+ locale: "en-US",
44
+ shorten: true,
45
+ });
46
+ expect(result).toContain("1.235M");
47
+ });
48
+
49
+ it("should include the ticker in the formatted value", () => {
50
+ const result = counterValueFormatter({
51
+ value: 1234.56,
52
+ locale: "en-US",
53
+ ticker: "BTC",
54
+ });
55
+ expect(result).toBe("1,234.56 BTC");
56
+ });
57
+
58
+ it("should allow zero values when allowZeroValue is true", () => {
59
+ const result = counterValueFormatter({
60
+ value: 0,
61
+ locale: "en-US",
62
+ allowZeroValue: true,
63
+ });
64
+ expect(result).toBe("0.00");
65
+ });
66
+
67
+ it("should format a number with specified decimal places set to 0", () => {
68
+ const result = counterValueFormatter({
69
+ value: 10.231023213,
70
+ locale: "en-US",
71
+ decimalPlaces: 0,
72
+ allowZeroValue: true,
73
+ });
74
+ expect(result).toBe("10");
75
+ });
76
+
77
+ it("should format a number with specified decimal places set to 4", () => {
78
+ const result = counterValueFormatter({
79
+ value: 10.231023213,
80
+ locale: "en-US",
81
+ decimalPlaces: 4,
82
+ allowZeroValue: true,
83
+ });
84
+ expect(result).toBe("10.2310");
85
+ });
86
+
87
+ it("should format a number in compact notation with translation", () => {
88
+ const result = counterValueFormatter({
89
+ value: 1234567,
90
+ locale: "en-US",
91
+ shorten: true,
92
+ t: mockT,
93
+ });
94
+
95
+ expect(result).toContain("1.235 M");
96
+ expect(mockT).toHaveBeenCalledWith("numberCompactNotation.M");
97
+ });
98
+
99
+ it("should handle different locales for formatting", () => {
100
+ const result = counterValueFormatter({
101
+ value: 1234.56,
102
+ locale: "fr-FR",
103
+ });
104
+ expect(result).toBe("1\u202f234,56");
105
+ });
106
+
107
+ it("should handle invalid currency gracefully", () => {
108
+ const result = counterValueFormatter({
109
+ value: 1234.56,
110
+ currency: "INVALID",
111
+ locale: "en-US",
112
+ });
113
+ expect(result).toBe("1,234.56");
114
+ });
115
+
116
+ it("should return - if value is NaN and it's not discreet mode", () => {
117
+ const result = counterValueFormatter({
118
+ value: NaN,
119
+ locale: "en-US",
120
+ });
121
+ expect(result).toBe("-");
122
+ });
123
+
124
+ it("should return sanitized value with *** in discreet mode for NaN", () => {
125
+ const result = counterValueFormatter({
126
+ value: NaN,
127
+ locale: "en-US",
128
+ discreetMode: true,
129
+ });
130
+ expect(result).toBe("***");
131
+ });
132
+ it("should return sanitized value with *** in discreet mode for zero value", () => {
133
+ const result = counterValueFormatter({
134
+ value: 0,
135
+ locale: "en-US",
136
+ discreetMode: true,
137
+ });
138
+ expect(result).toBe("***");
139
+ });
140
+ it("should return sanitized value with *** in discreet mode for non-zero value", () => {
141
+ const result = counterValueFormatter({
142
+ value: 1234.56,
143
+ locale: "en-US",
144
+ discreetMode: true,
145
+ });
146
+ expect(result).toBe("***");
147
+ });
148
+ it("should return sanitized value with *** in discreet mode for zero value with allowZeroValue", () => {
149
+ const result = counterValueFormatter({
150
+ value: 0,
151
+ locale: "en-US",
152
+ allowZeroValue: true,
153
+ discreetMode: true,
154
+ currency: "USD",
155
+ });
156
+ expect(result).toBe("$***");
157
+ });
158
+
159
+ describe("Multiple locales", () => {
160
+ it("should format German locale with EUR currency", () => {
161
+ const result = counterValueFormatter({
162
+ value: 1234.56,
163
+ locale: "de-DE",
164
+ currency: "EUR",
165
+ });
166
+ expect(result).toBe("1.234,56\u00A0€");
167
+ });
168
+
169
+ it("should handle french locale", () => {
170
+ const result = counterValueFormatter({
171
+ value: 10.23,
172
+ locale: "fr-FR",
173
+ allowZeroValue: true,
174
+ currency: "EUR",
175
+ });
176
+ expect(result).toBe("10,23\u00A0€");
177
+ });
178
+ it("should handle french locale with allowZeroValue", () => {
179
+ const result = counterValueFormatter({
180
+ value: 0,
181
+ locale: "fr-FR",
182
+ allowZeroValue: true,
183
+ currency: "EUR",
184
+ });
185
+ expect(result).toBe("0,00\u00A0€");
186
+ });
187
+ it("should handle french locale with USD currency", () => {
188
+ const result = counterValueFormatter({
189
+ value: 0,
190
+ locale: "fr-FR",
191
+ allowZeroValue: true,
192
+ currency: "USD",
193
+ });
194
+ expect(result).toBe("0,00\u00A0$US");
195
+ });
196
+
197
+ it("should format German locale with zero value", () => {
198
+ const result = counterValueFormatter({
199
+ value: 0,
200
+ locale: "de-DE",
201
+ currency: "EUR",
202
+ allowZeroValue: true,
203
+ });
204
+ expect(result).toBe("0,00\u00A0€");
205
+ });
206
+
207
+ it("should format Japanese locale with JPY currency", () => {
208
+ const result = counterValueFormatter({
209
+ value: 1234.56,
210
+ locale: "ja-JP",
211
+ currency: "JPY",
212
+ });
213
+ expect(result).toBe("¥1,235");
214
+ });
215
+
216
+ it("should format Japanese locale with zero value", () => {
217
+ const result = counterValueFormatter({
218
+ value: 0,
219
+ locale: "ja-JP",
220
+ currency: "JPY",
221
+ allowZeroValue: true,
222
+ });
223
+ expect(result).toBe("¥0");
224
+ });
225
+
226
+ it("should format UK locale with GBP currency", () => {
227
+ const result = counterValueFormatter({
228
+ value: 1234.56,
229
+ locale: "en-GB",
230
+ currency: "GBP",
231
+ });
232
+ expect(result).toBe("£1,234.56");
233
+ });
234
+
235
+ it("should format UK locale with zero value", () => {
236
+ const result = counterValueFormatter({
237
+ value: 0,
238
+ locale: "en-GB",
239
+ currency: "GBP",
240
+ allowZeroValue: true,
241
+ });
242
+ expect(result).toBe("£0.00");
243
+ });
244
+
245
+ it("should format Italian locale with EUR currency", () => {
246
+ const result = counterValueFormatter({
247
+ value: 1234.56,
248
+ locale: "it-IT",
249
+ currency: "EUR",
250
+ });
251
+ expect(result).toBe("1234,56\u00A0€");
252
+ });
253
+
254
+ it("should format Italian locale with zero value", () => {
255
+ const result = counterValueFormatter({
256
+ value: 0,
257
+ locale: "it-IT",
258
+ currency: "EUR",
259
+ allowZeroValue: true,
260
+ });
261
+ expect(result).toBe("0,00\u00A0€");
262
+ });
263
+
264
+ it("should format Spanish locale with EUR currency", () => {
265
+ const result = counterValueFormatter({
266
+ value: 1234.56,
267
+ locale: "es-ES",
268
+ currency: "EUR",
269
+ });
270
+ expect(result).toBe("1234,56\u00A0€");
271
+ });
272
+
273
+ it("should format Spanish locale with zero value", () => {
274
+ const result = counterValueFormatter({
275
+ value: 0,
276
+ locale: "es-ES",
277
+ currency: "EUR",
278
+ allowZeroValue: true,
279
+ });
280
+ expect(result).toBe("0,00\u00A0€");
281
+ });
282
+
283
+ it("should format Chinese locale with CNY currency", () => {
284
+ const result = counterValueFormatter({
285
+ value: 1234.56,
286
+ locale: "zh-CN",
287
+ currency: "CNY",
288
+ });
289
+ expect(result).toBe("¥1,234.56");
290
+ });
291
+
292
+ it("should format Chinese locale with zero value", () => {
293
+ const result = counterValueFormatter({
294
+ value: 0,
295
+ locale: "zh-CN",
296
+ currency: "CNY",
297
+ allowZeroValue: true,
298
+ });
299
+ expect(result).toBe("¥0.00");
300
+ });
301
+
302
+ it("should format Canadian locale with CAD currency", () => {
303
+ const result = counterValueFormatter({
304
+ value: 1234.56,
305
+ locale: "en-CA",
306
+ currency: "CAD",
307
+ });
308
+ expect(result).toBe("$1,234.56");
309
+ });
310
+
311
+ it("should format Canadian locale with zero value", () => {
312
+ const result = counterValueFormatter({
313
+ value: 0,
314
+ locale: "en-CA",
315
+ currency: "CAD",
316
+ allowZeroValue: true,
317
+ });
318
+ expect(result).toBe("$0.00");
319
+ });
320
+
321
+ it("should format Brazilian locale with BRL currency", () => {
322
+ const result = counterValueFormatter({
323
+ value: 1234.56,
324
+ locale: "pt-BR",
325
+ currency: "BRL",
326
+ });
327
+ expect(result).toBe("R$\u00A01.234,56");
328
+ });
329
+
330
+ it("should format Brazilian locale with zero value", () => {
331
+ const result = counterValueFormatter({
332
+ value: 0,
333
+ locale: "pt-BR",
334
+ currency: "BRL",
335
+ allowZeroValue: true,
336
+ });
337
+ expect(result).toBe("R$\u00A00,00");
338
+ });
339
+
340
+ it("should format Thai locale with THB currency", () => {
341
+ const result = counterValueFormatter({
342
+ value: 1234.56,
343
+ locale: "th-TH",
344
+ currency: "THB",
345
+ });
346
+ expect(result).toBe("฿1,234.56");
347
+ });
348
+
349
+ it("should format Thai locale with zero value", () => {
350
+ const result = counterValueFormatter({
351
+ value: 0,
352
+ locale: "th-TH",
353
+ currency: "THB",
354
+ allowZeroValue: true,
355
+ });
356
+ expect(result).toBe("฿0.00");
357
+ });
358
+
359
+ it("should format Turkish locale with TRY currency", () => {
360
+ const result = counterValueFormatter({
361
+ value: 1234.56,
362
+ locale: "tr-TR",
363
+ currency: "TRY",
364
+ });
365
+ expect(result).toBe("₺1.234,56");
366
+ });
367
+
368
+ it("should format Turkish locale with zero value", () => {
369
+ const result = counterValueFormatter({
370
+ value: 0,
371
+ locale: "tr-TR",
372
+ currency: "TRY",
373
+ allowZeroValue: true,
374
+ });
375
+ expect(result).toBe("₺0,00");
376
+ });
377
+
378
+ it("should format Russian locale with RUB currency", () => {
379
+ const result = counterValueFormatter({
380
+ value: 1234.56,
381
+ locale: "ru-RU",
382
+ currency: "RUB",
383
+ });
384
+ expect(result).toBe("1\u00A0234,56\u00A0₽");
385
+ });
386
+
387
+ it("should format Russian locale with zero value", () => {
388
+ const result = counterValueFormatter({
389
+ value: 0,
390
+ locale: "ru-RU",
391
+ currency: "RUB",
392
+ allowZeroValue: true,
393
+ });
394
+ expect(result).toBe("0,00\u00A0₽");
395
+ });
396
+
397
+ it("should format Indian locale with INR currency", () => {
398
+ const result = counterValueFormatter({
399
+ value: 1234.56,
400
+ locale: "hi-IN",
401
+ currency: "INR",
402
+ });
403
+ expect(result).toBe("₹1,234.56");
404
+ });
405
+
406
+ it("should format Indian locale with zero value", () => {
407
+ const result = counterValueFormatter({
408
+ value: 0,
409
+ locale: "hi-IN",
410
+ currency: "INR",
411
+ allowZeroValue: true,
412
+ });
413
+ expect(result).toBe("₹0.00");
414
+ });
415
+
416
+ it("should format Korean locale with KRW currency", () => {
417
+ const result = counterValueFormatter({
418
+ value: 1234.56,
419
+ locale: "ko-KR",
420
+ currency: "KRW",
421
+ });
422
+ expect(result).toBe("₩1,235");
423
+ });
424
+
425
+ it("should format Korean locale with zero value", () => {
426
+ const result = counterValueFormatter({
427
+ value: 0,
428
+ locale: "ko-KR",
429
+ currency: "KRW",
430
+ allowZeroValue: true,
431
+ });
432
+ expect(result).toBe("₩0");
433
+ });
434
+
435
+ it("should format Mexican locale with MXN currency", () => {
436
+ const result = counterValueFormatter({
437
+ value: 1234.56,
438
+ locale: "es-MX",
439
+ currency: "MXN",
440
+ });
441
+ expect(result).toBe("$1,234.56");
442
+ });
443
+
444
+ it("should format Mexican locale with zero value", () => {
445
+ const result = counterValueFormatter({
446
+ value: 0,
447
+ locale: "es-MX",
448
+ currency: "MXN",
449
+ allowZeroValue: true,
450
+ });
451
+ expect(result).toBe("$0.00");
452
+ });
453
+
454
+ it("should format South African locale with ZAR currency", () => {
455
+ const result = counterValueFormatter({
456
+ value: 1234.56,
457
+ locale: "en-ZA",
458
+ currency: "ZAR",
459
+ });
460
+ expect(result).toBe("R\u00A01\u00A0234,56");
461
+ });
462
+
463
+ it("should format South African locale with zero value", () => {
464
+ const result = counterValueFormatter({
465
+ value: 0,
466
+ locale: "en-ZA",
467
+ currency: "ZAR",
468
+ allowZeroValue: true,
469
+ });
470
+ expect(result).toBe("R\u00A00,00");
471
+ });
472
+
473
+ it("should format Swedish locale with SEK currency", () => {
474
+ const result = counterValueFormatter({
475
+ value: 1234.56,
476
+ locale: "sv-SE",
477
+ currency: "SEK",
478
+ });
479
+ expect(result).toBe("1\u00A0234,56\u00A0kr");
480
+ });
481
+
482
+ it("should format Swedish locale with zero value", () => {
483
+ const result = counterValueFormatter({
484
+ value: 0,
485
+ locale: "sv-SE",
486
+ currency: "SEK",
487
+ allowZeroValue: true,
488
+ });
489
+ expect(result).toBe("0,00\u00A0kr");
490
+ });
491
+
492
+ it("should format Norwegian locale with NOK currency", () => {
493
+ const result = counterValueFormatter({
494
+ value: 1234.56,
495
+ locale: "no-NO",
496
+ currency: "NOK",
497
+ });
498
+ expect(result).toBe("1\u00A0234,56\u00A0kr");
499
+ });
500
+
501
+ it("should format Norwegian locale with zero value", () => {
502
+ const result = counterValueFormatter({
503
+ value: 0,
504
+ locale: "no-NO",
505
+ currency: "NOK",
506
+ allowZeroValue: true,
507
+ });
508
+ expect(result).toBe("0,00\u00A0kr");
509
+ });
510
+
511
+ it("should format Swiss locale with CHF currency", () => {
512
+ const result = counterValueFormatter({
513
+ value: 1234.56,
514
+ locale: "de-CH",
515
+ currency: "CHF",
516
+ });
517
+ expect(result).toBe("CHF\u00A01’234.56");
518
+ });
519
+
520
+ it("should format Swiss locale with zero value", () => {
521
+ const result = counterValueFormatter({
522
+ value: 0,
523
+ locale: "de-CH",
524
+ currency: "CHF",
525
+ allowZeroValue: true,
526
+ });
527
+ expect(result).toBe("CHF\u00A00.00");
528
+ });
529
+
530
+ it("should format Vietnamese locale with VND currency", () => {
531
+ const result = counterValueFormatter({
532
+ value: 1234.56,
533
+ locale: "vi-VN",
534
+ currency: "VND",
535
+ });
536
+ expect(result).toBe("1.235\u00A0₫");
537
+ });
538
+
539
+ it("should format Vietnamese locale with zero value", () => {
540
+ const result = counterValueFormatter({
541
+ value: 0,
542
+ locale: "vi-VN",
543
+ currency: "VND",
544
+ allowZeroValue: true,
545
+ });
546
+ expect(result).toBe("0\u00A0₫");
547
+ });
548
+ });
549
+ });
@@ -1,4 +1,4 @@
1
- import { useGroupedCurrenciesByProvider } from "@ledgerhq/live-common/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock";
1
+ import { useGroupedCurrenciesByProvider } from "../../__mocks__/useGroupedCurrenciesByProvider.mock";
2
2
  import { TokenCurrency } from "@ledgerhq/types-cryptoassets";
3
3
 
4
4
  import {
@@ -1,8 +1,8 @@
1
1
  import { haveOneCommonProvider } from "../haveOneCommonProvider";
2
2
  import { useGroupedCurrenciesByProvider } from "../../__mocks__/useGroupedCurrenciesByProvider.mock";
3
- import { LoadingBasedGroupedCurrencies } from "@ledgerhq/live-common/deposit/type";
3
+ import { LoadingBasedGroupedCurrencies } from "../../../deposit/type";
4
4
 
5
- jest.mock("@ledgerhq/live-common/deposit/useGroupedCurrenciesByProvider.hook", () => ({
5
+ jest.mock("../../../deposit/useGroupedCurrenciesByProvider.hook", () => ({
6
6
  useGroupedCurrenciesByProvider: () => useGroupedCurrenciesByProvider(),
7
7
  }));
8
8
 
@@ -0,0 +1,23 @@
1
+ import { CryptoOrTokenCurrency } from "@ledgerhq/types-cryptoassets";
2
+ import BigNumber from "bignumber.js";
3
+ import { GroupedAccount } from "./groupAccountsByAsset";
4
+
5
+ export const calculateProviderTotals = (
6
+ currencies: CryptoOrTokenCurrency[],
7
+ groupedAccountsByAsset: Record<string, GroupedAccount>,
8
+ ) => {
9
+ let totalBalance = new BigNumber(0);
10
+ let totalFiatValue = new BigNumber(0);
11
+ let hasAccounts = false;
12
+
13
+ for (const currency of currencies) {
14
+ const assetGroup = groupedAccountsByAsset[currency.id];
15
+ if (assetGroup?.accounts.length > 0) {
16
+ totalBalance = totalBalance.plus(assetGroup.totalBalance);
17
+ totalFiatValue = totalFiatValue.plus(assetGroup.totalFiatValue);
18
+ hasAccounts = true;
19
+ }
20
+ }
21
+
22
+ return { totalBalance, totalFiatValue, hasAccounts };
23
+ };