@ledgerhq/live-common 34.50.0-nightly.6 → 34.51.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 (179) hide show
  1. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  2. package/lib/bridge/generic-alpaca/prepareTransaction.js +3 -6
  3. package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  4. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js +60 -0
  5. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  6. package/lib/bridge/generic-alpaca/types.d.ts +0 -1
  7. package/lib/bridge/generic-alpaca/types.d.ts.map +1 -1
  8. package/lib/exchange/swap/postSwapState.d.ts.map +1 -1
  9. package/lib/exchange/swap/postSwapState.js +19 -23
  10. package/lib/exchange/swap/postSwapState.js.map +1 -1
  11. package/lib/exchange/swap/setBroadcastTransaction.d.ts +4 -4
  12. package/lib/exchange/swap/setBroadcastTransaction.js +7 -7
  13. package/lib/exchange/swap/setBroadcastTransaction.js.map +1 -1
  14. package/lib/exchange/swap/types.d.ts +3 -3
  15. package/lib/exchange/swap/types.d.ts.map +1 -1
  16. package/lib/families/tezos/config.js +2 -2
  17. package/lib/modularDrawer/hooks/modules/useRightMarketTrendModule.js +5 -2
  18. package/lib/modularDrawer/hooks/modules/useRightMarketTrendModule.js.map +1 -1
  19. package/lib/modularDrawer/hooks/useRightBalanceAsset.d.ts +5 -8
  20. package/lib/modularDrawer/hooks/useRightBalanceAsset.d.ts.map +1 -1
  21. package/lib/modularDrawer/hooks/useRightBalanceAsset.js +15 -24
  22. package/lib/modularDrawer/hooks/useRightBalanceAsset.js.map +1 -1
  23. package/lib/modularDrawer/hooks/useRightBalanceNetwork.d.ts +6 -25
  24. package/lib/modularDrawer/hooks/useRightBalanceNetwork.d.ts.map +1 -1
  25. package/lib/modularDrawer/hooks/useRightBalanceNetwork.js +4 -3
  26. package/lib/modularDrawer/hooks/useRightBalanceNetwork.js.map +1 -1
  27. package/lib/modularDrawer/modules/createNetworkConfiguration.d.ts.map +1 -1
  28. package/lib/modularDrawer/modules/createNetworkConfiguration.js +8 -4
  29. package/lib/modularDrawer/modules/createNetworkConfiguration.js.map +1 -1
  30. package/lib/modularDrawer/utils/__tests__/calculateProviderTotal.test.d.ts +2 -0
  31. package/lib/modularDrawer/utils/__tests__/calculateProviderTotal.test.d.ts.map +1 -0
  32. package/lib/modularDrawer/utils/__tests__/calculateProviderTotal.test.js +212 -0
  33. package/lib/modularDrawer/utils/__tests__/calculateProviderTotal.test.js.map +1 -0
  34. package/lib/modularDrawer/utils/__tests__/groupAccountsByAsset.test.d.ts +2 -0
  35. package/lib/modularDrawer/utils/__tests__/groupAccountsByAsset.test.d.ts.map +1 -0
  36. package/lib/modularDrawer/utils/__tests__/groupAccountsByAsset.test.js +202 -0
  37. package/lib/modularDrawer/utils/__tests__/groupAccountsByAsset.test.js.map +1 -0
  38. package/lib/modularDrawer/utils/calculateProviderTotal.d.ts +1 -0
  39. package/lib/modularDrawer/utils/calculateProviderTotal.d.ts.map +1 -1
  40. package/lib/modularDrawer/utils/calculateProviderTotal.js +10 -2
  41. package/lib/modularDrawer/utils/calculateProviderTotal.js.map +1 -1
  42. package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts +6 -4
  43. package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts.map +1 -1
  44. package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.js +9 -22
  45. package/lib/modularDrawer/utils/getBalanceAndFiatValueByAssets.js.map +1 -1
  46. package/lib/modularDrawer/utils/groupAccountsByAsset.d.ts +4 -3
  47. package/lib/modularDrawer/utils/groupAccountsByAsset.d.ts.map +1 -1
  48. package/lib/modularDrawer/utils/groupAccountsByAsset.js +27 -11
  49. package/lib/modularDrawer/utils/groupAccountsByAsset.js.map +1 -1
  50. package/lib/modularDrawer/utils/index.d.ts +0 -1
  51. package/lib/modularDrawer/utils/index.d.ts.map +1 -1
  52. package/lib/modularDrawer/utils/index.js +1 -3
  53. package/lib/modularDrawer/utils/index.js.map +1 -1
  54. package/lib/modularDrawer/utils/sortByBalance.d.ts +1 -3
  55. package/lib/modularDrawer/utils/sortByBalance.d.ts.map +1 -1
  56. package/lib/modularDrawer/utils/sortByBalance.js +6 -18
  57. package/lib/modularDrawer/utils/sortByBalance.js.map +1 -1
  58. package/lib/modularDrawer/utils/type.d.ts +9 -8
  59. package/lib/modularDrawer/utils/type.d.ts.map +1 -1
  60. package/lib/wallet-api/Exchange/server.js +6 -6
  61. package/lib/wallet-api/Exchange/server.js.map +1 -1
  62. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  63. package/lib-es/bridge/generic-alpaca/prepareTransaction.js +3 -6
  64. package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  65. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js +60 -0
  66. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  67. package/lib-es/bridge/generic-alpaca/types.d.ts +0 -1
  68. package/lib-es/bridge/generic-alpaca/types.d.ts.map +1 -1
  69. package/lib-es/exchange/swap/postSwapState.d.ts.map +1 -1
  70. package/lib-es/exchange/swap/postSwapState.js +19 -23
  71. package/lib-es/exchange/swap/postSwapState.js.map +1 -1
  72. package/lib-es/exchange/swap/setBroadcastTransaction.d.ts +4 -4
  73. package/lib-es/exchange/swap/setBroadcastTransaction.js +7 -7
  74. package/lib-es/exchange/swap/setBroadcastTransaction.js.map +1 -1
  75. package/lib-es/exchange/swap/types.d.ts +3 -3
  76. package/lib-es/exchange/swap/types.d.ts.map +1 -1
  77. package/lib-es/families/tezos/config.js +2 -2
  78. package/lib-es/modularDrawer/hooks/modules/useRightMarketTrendModule.js +1 -1
  79. package/lib-es/modularDrawer/hooks/modules/useRightMarketTrendModule.js.map +1 -1
  80. package/lib-es/modularDrawer/hooks/useRightBalanceAsset.d.ts +5 -8
  81. package/lib-es/modularDrawer/hooks/useRightBalanceAsset.d.ts.map +1 -1
  82. package/lib-es/modularDrawer/hooks/useRightBalanceAsset.js +15 -24
  83. package/lib-es/modularDrawer/hooks/useRightBalanceAsset.js.map +1 -1
  84. package/lib-es/modularDrawer/hooks/useRightBalanceNetwork.d.ts +6 -25
  85. package/lib-es/modularDrawer/hooks/useRightBalanceNetwork.d.ts.map +1 -1
  86. package/lib-es/modularDrawer/hooks/useRightBalanceNetwork.js +4 -3
  87. package/lib-es/modularDrawer/hooks/useRightBalanceNetwork.js.map +1 -1
  88. package/lib-es/modularDrawer/modules/createNetworkConfiguration.d.ts.map +1 -1
  89. package/lib-es/modularDrawer/modules/createNetworkConfiguration.js +8 -4
  90. package/lib-es/modularDrawer/modules/createNetworkConfiguration.js.map +1 -1
  91. package/lib-es/modularDrawer/utils/__tests__/calculateProviderTotal.test.d.ts +2 -0
  92. package/lib-es/modularDrawer/utils/__tests__/calculateProviderTotal.test.d.ts.map +1 -0
  93. package/lib-es/modularDrawer/utils/__tests__/calculateProviderTotal.test.js +207 -0
  94. package/lib-es/modularDrawer/utils/__tests__/calculateProviderTotal.test.js.map +1 -0
  95. package/lib-es/modularDrawer/utils/__tests__/groupAccountsByAsset.test.d.ts +2 -0
  96. package/lib-es/modularDrawer/utils/__tests__/groupAccountsByAsset.test.d.ts.map +1 -0
  97. package/lib-es/modularDrawer/utils/__tests__/groupAccountsByAsset.test.js +197 -0
  98. package/lib-es/modularDrawer/utils/__tests__/groupAccountsByAsset.test.js.map +1 -0
  99. package/lib-es/modularDrawer/utils/calculateProviderTotal.d.ts +1 -0
  100. package/lib-es/modularDrawer/utils/calculateProviderTotal.d.ts.map +1 -1
  101. package/lib-es/modularDrawer/utils/calculateProviderTotal.js +10 -2
  102. package/lib-es/modularDrawer/utils/calculateProviderTotal.js.map +1 -1
  103. package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts +6 -4
  104. package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.d.ts.map +1 -1
  105. package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.js +9 -22
  106. package/lib-es/modularDrawer/utils/getBalanceAndFiatValueByAssets.js.map +1 -1
  107. package/lib-es/modularDrawer/utils/groupAccountsByAsset.d.ts +4 -3
  108. package/lib-es/modularDrawer/utils/groupAccountsByAsset.d.ts.map +1 -1
  109. package/lib-es/modularDrawer/utils/groupAccountsByAsset.js +27 -11
  110. package/lib-es/modularDrawer/utils/groupAccountsByAsset.js.map +1 -1
  111. package/lib-es/modularDrawer/utils/index.d.ts +0 -1
  112. package/lib-es/modularDrawer/utils/index.d.ts.map +1 -1
  113. package/lib-es/modularDrawer/utils/index.js +0 -1
  114. package/lib-es/modularDrawer/utils/index.js.map +1 -1
  115. package/lib-es/modularDrawer/utils/sortByBalance.d.ts +1 -3
  116. package/lib-es/modularDrawer/utils/sortByBalance.d.ts.map +1 -1
  117. package/lib-es/modularDrawer/utils/sortByBalance.js +5 -15
  118. package/lib-es/modularDrawer/utils/sortByBalance.js.map +1 -1
  119. package/lib-es/modularDrawer/utils/type.d.ts +9 -8
  120. package/lib-es/modularDrawer/utils/type.d.ts.map +1 -1
  121. package/lib-es/wallet-api/Exchange/server.js +6 -6
  122. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  123. package/package.json +70 -70
  124. package/src/bridge/generic-alpaca/prepareTransaction.ts +3 -7
  125. package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +78 -0
  126. package/src/bridge/generic-alpaca/types.ts +1 -1
  127. package/src/exchange/swap/postSwapState.ts +28 -32
  128. package/src/exchange/swap/setBroadcastTransaction.ts +12 -12
  129. package/src/exchange/swap/types.ts +3 -3
  130. package/src/families/tezos/config.ts +2 -2
  131. package/src/modularDrawer/hooks/modules/useRightMarketTrendModule.tsx +1 -1
  132. package/src/modularDrawer/hooks/useRightBalanceAsset.tsx +22 -38
  133. package/src/modularDrawer/hooks/useRightBalanceNetwork.tsx +5 -7
  134. package/src/modularDrawer/modules/createNetworkConfiguration.ts +10 -5
  135. package/src/modularDrawer/utils/__tests__/calculateProviderTotal.test.ts +237 -0
  136. package/src/modularDrawer/utils/__tests__/groupAccountsByAsset.test.ts +228 -0
  137. package/src/modularDrawer/utils/calculateProviderTotal.ts +13 -2
  138. package/src/modularDrawer/utils/getBalanceAndFiatValueByAssets.ts +13 -37
  139. package/src/modularDrawer/utils/groupAccountsByAsset.ts +38 -19
  140. package/src/modularDrawer/utils/index.ts +0 -2
  141. package/src/modularDrawer/utils/sortByBalance.tsx +5 -18
  142. package/src/modularDrawer/utils/type.ts +13 -4
  143. package/src/wallet-api/Exchange/server.ts +6 -6
  144. package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts +0 -2
  145. package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts.map +0 -1
  146. package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.js +0 -496
  147. package/lib/modularDrawer/utils/__tests__/counterValueFormatter.test.js.map +0 -1
  148. package/lib/modularDrawer/utils/counterValueFormatter.d.ts +0 -14
  149. package/lib/modularDrawer/utils/counterValueFormatter.d.ts.map +0 -1
  150. package/lib/modularDrawer/utils/counterValueFormatter.js +0 -107
  151. package/lib/modularDrawer/utils/counterValueFormatter.js.map +0 -1
  152. package/lib/modularDrawer/utils/getBalanceAndFiatValue.d.ts +0 -20
  153. package/lib/modularDrawer/utils/getBalanceAndFiatValue.d.ts.map +0 -1
  154. package/lib/modularDrawer/utils/getBalanceAndFiatValue.js +0 -39
  155. package/lib/modularDrawer/utils/getBalanceAndFiatValue.js.map +0 -1
  156. package/lib/modularDrawer/utils/parseToBigNumber.d.ts +0 -9
  157. package/lib/modularDrawer/utils/parseToBigNumber.d.ts.map +0 -1
  158. package/lib/modularDrawer/utils/parseToBigNumber.js +0 -24
  159. package/lib/modularDrawer/utils/parseToBigNumber.js.map +0 -1
  160. package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts +0 -2
  161. package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.d.ts.map +0 -1
  162. package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.js +0 -494
  163. package/lib-es/modularDrawer/utils/__tests__/counterValueFormatter.test.js.map +0 -1
  164. package/lib-es/modularDrawer/utils/counterValueFormatter.d.ts +0 -14
  165. package/lib-es/modularDrawer/utils/counterValueFormatter.d.ts.map +0 -1
  166. package/lib-es/modularDrawer/utils/counterValueFormatter.js +0 -103
  167. package/lib-es/modularDrawer/utils/counterValueFormatter.js.map +0 -1
  168. package/lib-es/modularDrawer/utils/getBalanceAndFiatValue.d.ts +0 -20
  169. package/lib-es/modularDrawer/utils/getBalanceAndFiatValue.d.ts.map +0 -1
  170. package/lib-es/modularDrawer/utils/getBalanceAndFiatValue.js +0 -32
  171. package/lib-es/modularDrawer/utils/getBalanceAndFiatValue.js.map +0 -1
  172. package/lib-es/modularDrawer/utils/parseToBigNumber.d.ts +0 -9
  173. package/lib-es/modularDrawer/utils/parseToBigNumber.d.ts.map +0 -1
  174. package/lib-es/modularDrawer/utils/parseToBigNumber.js +0 -17
  175. package/lib-es/modularDrawer/utils/parseToBigNumber.js.map +0 -1
  176. package/src/modularDrawer/utils/__tests__/counterValueFormatter.test.ts +0 -549
  177. package/src/modularDrawer/utils/counterValueFormatter.ts +0 -165
  178. package/src/modularDrawer/utils/getBalanceAndFiatValue.ts +0 -53
  179. package/src/modularDrawer/utils/parseToBigNumber.ts +0 -17
@@ -1,18 +1,15 @@
1
- import { type ReactNode } from "react";
1
+ /// <reference types="react" />
2
2
  import type { CryptoOrTokenCurrency } from "@ledgerhq/types-cryptoassets";
3
- import { UseBalanceDeps } from "../utils/type";
3
+ import { UseBalanceDeps, CreateBalanceItem } from "../utils/type";
4
4
  export type NetworkDeps = {
5
- balanceItem: (asset: {
6
- fiatValue?: string;
7
- balance?: string;
8
- }) => ReactNode;
5
+ balanceItem: CreateBalanceItem;
9
6
  useBalanceDeps: UseBalanceDeps;
10
7
  };
11
8
  type Params = {
12
9
  networks: CryptoOrTokenCurrency[];
13
10
  };
14
- export declare function createUseRightBalanceNetwork({ useBalanceDeps, balanceItem }: NetworkDeps): ({ networks }: Params) => ({
15
- rightElement: ReactNode;
11
+ export declare function createUseRightBalanceNetwork({ useBalanceDeps, balanceItem }: NetworkDeps): ({ networks }: Params) => {
12
+ rightElement: import("react").ReactNode;
16
13
  balanceData: {};
17
14
  name: string;
18
15
  ticker: string;
@@ -42,22 +39,6 @@ export declare function createUseRightBalanceNetwork({ useBalanceDeps, balanceIt
42
39
  deviceTicker?: string | undefined;
43
40
  explorerId?: import("@ledgerhq/types-cryptoassets").LedgerExplorerId | undefined;
44
41
  tokenTypes?: string[] | undefined;
45
- } | {
46
- rightElement: ReactNode;
47
- balanceData: {};
48
- name: string;
49
- ticker: string;
50
- units: import("@ledgerhq/types-cryptoassets").Unit[];
51
- symbol?: string | undefined;
52
- disableCountervalue?: boolean | undefined;
53
- delisted?: boolean | undefined;
54
- keywords?: string[] | undefined;
55
- type: "TokenCurrency";
56
- id: string;
57
- ledgerSignature?: string | undefined;
58
- contractAddress: string;
59
- parentCurrency: import("@ledgerhq/types-cryptoassets").CryptoCurrency;
60
- tokenType: string;
61
- })[];
42
+ }[];
62
43
  export {};
63
44
  //# sourceMappingURL=useRightBalanceNetwork.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRightBalanceNetwork.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useRightBalanceNetwork.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC;IAC5E,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,WAAW,kBAClC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuB5D"}
1
+ {"version":3,"file":"useRightBalanceNetwork.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useRightBalanceNetwork.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGlE,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,WAAW,kBAClC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsB5D"}
@@ -4,13 +4,14 @@ exports.createUseRightBalanceNetwork = void 0;
4
4
  const getBalanceAndFiatValueByAssets_1 = require("../utils/getBalanceAndFiatValueByAssets");
5
5
  function createUseRightBalanceNetwork({ useBalanceDeps, balanceItem }) {
6
6
  return function useRightBalanceNetwork({ networks }) {
7
- const { flattenedAccounts, discreet, state, counterValueCurrency, locale } = useBalanceDeps();
8
- const networkBalanceData = (0, getBalanceAndFiatValueByAssets_1.getBalanceAndFiatValueByAssets)(flattenedAccounts, networks, state, counterValueCurrency, discreet, locale);
7
+ const { flattenedAccounts, state, counterValueCurrency } = useBalanceDeps();
8
+ const networkBalanceData = (0, getBalanceAndFiatValueByAssets_1.getBalanceAndFiatValueByAssets)(flattenedAccounts, networks, state, counterValueCurrency);
9
9
  const balanceMap = new Map(networkBalanceData.map(b => [b.id, b]));
10
10
  return networks.map(network => {
11
11
  const balanceData = balanceMap.get(network.id) || {};
12
+ const details = network.type === "TokenCurrency" ? network.parentCurrency : network;
12
13
  return {
13
- ...network,
14
+ ...details,
14
15
  rightElement: balanceItem(balanceData),
15
16
  balanceData: balanceData,
16
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useRightBalanceNetwork.js","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useRightBalanceNetwork.tsx"],"names":[],"mappings":";;;AAGA,4FAAyF;AAWzF,SAAgB,4BAA4B,CAAC,EAAE,cAAc,EAAE,WAAW,EAAe;IACvF,OAAO,SAAS,sBAAsB,CAAC,EAAE,QAAQ,EAAU;QACzD,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;QAE9F,MAAM,kBAAkB,GAAG,IAAA,+DAA8B,EACvD,iBAAiB,EACjB,QAAQ,EACR,KAAK,EACL,oBAAoB,EACpB,QAAQ,EACR,MAAM,CACP,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACrD,OAAO;gBACL,GAAG,OAAO;gBACV,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC;gBACtC,WAAW,EAAE,WAAW;aACzB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAxBD,oEAwBC"}
1
+ {"version":3,"file":"useRightBalanceNetwork.js","sourceRoot":"","sources":["../../../src/modularDrawer/hooks/useRightBalanceNetwork.tsx"],"names":[],"mappings":";;;AAEA,4FAAyF;AAWzF,SAAgB,4BAA4B,CAAC,EAAE,cAAc,EAAE,WAAW,EAAe;IACvF,OAAO,SAAS,sBAAsB,CAAC,EAAE,QAAQ,EAAU;QACzD,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,cAAc,EAAE,CAAC;QAE5E,MAAM,kBAAkB,GAAG,IAAA,+DAA8B,EACvD,iBAAiB,EACjB,QAAQ,EACR,KAAK,EACL,oBAAoB,CACrB,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;YACpF,OAAO;gBACL,GAAG,OAAO;gBACV,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC;gBACtC,WAAW,EAAE,WAAW;aACzB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAvBD,oEAuBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createNetworkConfiguration.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/modules/createNetworkConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EACL,mCAAmC,EACnC,wBAAwB,EACxB,eAAe,EACf,OAAO,EACP,WAAW,EACX,gBAAgB,EAGjB,MAAM,eAAe,CAAC;AAIvB,eAAO,MAAM,cAAc,yEAEV,eAAe,KAAG,WAAW,GAAG,SAmB9C,CAAC;AAEJ,eAAO,MAAM,eAAe,0EAEV,gBAAgB,KAAG,WAAW,GAAG,SAWhD,CAAC;AAEJ,eAAO,MAAM,8BAA8B,0FAET,mCAAmC,cASvD,qBAAqB,EAAE,YACrB,qBAAqB,EAAE,KAChC,MAAM,qBAAqB,GAAG,OAAO,CA6BzC,CAAC"}
1
+ {"version":3,"file":"createNetworkConfiguration.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/modules/createNetworkConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,OAAO,EACL,mCAAmC,EACnC,wBAAwB,EACxB,eAAe,EACf,OAAO,EACP,WAAW,EACX,gBAAgB,EAGjB,MAAM,eAAe,CAAC;AAIvB,eAAO,MAAM,cAAc,yEAEV,eAAe,KAAG,WAAW,GAAG,SAmB9C,CAAC;AAEJ,eAAO,MAAM,eAAe,0EAEV,gBAAgB,KAAG,WAAW,GAAG,SAWhD,CAAC;AAEJ,eAAO,MAAM,8BAA8B,0FAET,mCAAmC,cASvD,qBAAqB,EAAE,YACrB,qBAAqB,EAAE,KAChC,MAAM,qBAAqB,GAAG,OAAO,CAkCzC,CAAC"}
@@ -47,12 +47,16 @@ const createNetworkConfigurationHook = (NetworkConfigurationDeps) => ({ networks
47
47
  networks,
48
48
  })));
49
49
  const result = composedHook(assets);
50
- if (leftElement === "numberOfAccounts" || leftElement === "numberOfAccountsAndApy") {
50
+ if (leftElement === "numberOfAccounts" ||
51
+ leftElement === "numberOfAccountsAndApy" ||
52
+ leftElement === undefined // default
53
+ ) {
51
54
  result.sort((a, b) => (b?.count || 0) - (a?.count || 0));
52
55
  }
53
- if (rightElement === "balance") {
54
- const { discreet } = NetworkConfigurationDeps.useBalanceDeps();
55
- result.sort((a, b) => (0, sortByBalance_1.compareByBalanceThenFiat)(a?.balanceData, b?.balanceData, discreet));
56
+ if (rightElement === "balance" ||
57
+ rightElement === undefined // default
58
+ ) {
59
+ result.sort((a, b) => (0, sortByBalance_1.compareByBalanceThenFiat)(a?.balanceData, b?.balanceData));
56
60
  }
57
61
  return result;
58
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"createNetworkConfiguration.js","sourceRoot":"","sources":["../../../src/modularDrawer/modules/createNetworkConfiguration.ts"],"names":[],"mappings":";;;AACA,8DAAuE;AACvE,oEAAuE;AACvE,4EAA+E;AAW/E,2DAAwD;AACxD,0DAAkE;AAE3D,MAAM,cAAc,GACzB,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,WAA6B,EAA2B,EAAE;IACzD,QAAQ,WAAW,EAAE;QACnB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB,KAAK,wBAAwB;YAC3B,OAAO,CAAC,MAAmE,EAAE,EAAE,CAC7E,IAAA,6CAAwB,EACtB,MAAM,EACN,wBAAwB,CAAC,cAAc,EACvC,wBAAwB,CAAC,mBAAmB,EAC5C,MAAM,CAAC,QAAQ,CAChB,CAAC;QACN,KAAK,kBAAkB,CAAC;QACxB;YACE,OAAO,IAAA,6CAA2B,EAAC;gBACjC,cAAc,EAAE,wBAAwB,CAAC,cAAc;gBACvD,aAAa,EAAE,wBAAwB,CAAC,aAAa;aACtD,CAAC,CAAC;KACN;AACH,CAAC,CAAC;AArBS,QAAA,cAAc,kBAqBvB;AAEG,MAAM,eAAe,GAC1B,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,YAA+B,EAA2B,EAAE;IAC3D,QAAQ,YAAY,EAAE;QACpB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS,CAAC;QACf;YACE,OAAO,IAAA,qDAA4B,EAAC;gBAClC,cAAc,EAAE,wBAAwB,CAAC,cAAc;gBACvD,WAAW,EAAE,wBAAwB,CAAC,WAAW;aAClD,CAAC,CAAC;KACN;AACH,CAAC,CAAC;AAbS,QAAA,eAAe,mBAaxB;AAEG,MAAM,8BAA8B,GACzC,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,EAAE,cAAc,EAAE,SAAS,EAAuC,EAAE,EAAE;IACrE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,cAAc,IAAI,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,wBAAwB,CAAC,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC,wBAAwB,CAAC,CAAC,YAAY,CAAC,CAAC;IAE1E,yEAAyE;IACzE,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAkB,CAAC;IAErE,OAAO,CACL,MAA+B,EAC/B,QAAiC,EACO,EAAE;QAC1C,MAAM,YAAY,GAAG,IAAA,2BAAY,EAI/B,GAAG,KAAK,CAAC,GAAG,CACV,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CACX,IAAI,CAAC;YACH,MAAM;YACN,SAAS;YACT,QAAQ;SACT,CAAC,CACL,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,WAAW,KAAK,kBAAkB,IAAI,WAAW,KAAK,wBAAwB,EAAE;YAClF,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1D;QAED,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,wBAAwB,CAAC,cAAc,EAAE,CAAC;YAE/D,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,wCAAwB,EAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC3F;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AA1CS,QAAA,8BAA8B,kCA0CvC"}
1
+ {"version":3,"file":"createNetworkConfiguration.js","sourceRoot":"","sources":["../../../src/modularDrawer/modules/createNetworkConfiguration.ts"],"names":[],"mappings":";;;AACA,8DAAuE;AACvE,oEAAuE;AACvE,4EAA+E;AAW/E,2DAAwD;AACxD,0DAAkE;AAE3D,MAAM,cAAc,GACzB,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,WAA6B,EAA2B,EAAE;IACzD,QAAQ,WAAW,EAAE;QACnB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB,KAAK,wBAAwB;YAC3B,OAAO,CAAC,MAAmE,EAAE,EAAE,CAC7E,IAAA,6CAAwB,EACtB,MAAM,EACN,wBAAwB,CAAC,cAAc,EACvC,wBAAwB,CAAC,mBAAmB,EAC5C,MAAM,CAAC,QAAQ,CAChB,CAAC;QACN,KAAK,kBAAkB,CAAC;QACxB;YACE,OAAO,IAAA,6CAA2B,EAAC;gBACjC,cAAc,EAAE,wBAAwB,CAAC,cAAc;gBACvD,aAAa,EAAE,wBAAwB,CAAC,aAAa;aACtD,CAAC,CAAC;KACN;AACH,CAAC,CAAC;AArBS,QAAA,cAAc,kBAqBvB;AAEG,MAAM,eAAe,GAC1B,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,YAA+B,EAA2B,EAAE;IAC3D,QAAQ,YAAY,EAAE;QACpB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS,CAAC;QACf;YACE,OAAO,IAAA,qDAA4B,EAAC;gBAClC,cAAc,EAAE,wBAAwB,CAAC,cAAc;gBACvD,WAAW,EAAE,wBAAwB,CAAC,WAAW;aAClD,CAAC,CAAC;KACN;AACH,CAAC,CAAC;AAbS,QAAA,eAAe,mBAaxB;AAEG,MAAM,8BAA8B,GACzC,CAAC,wBAAkD,EAAE,EAAE,CACvD,CAAC,EAAE,cAAc,EAAE,SAAS,EAAuC,EAAE,EAAE;IACrE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,cAAc,IAAI,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,wBAAwB,CAAC,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC,wBAAwB,CAAC,CAAC,YAAY,CAAC,CAAC;IAE1E,yEAAyE;IACzE,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAkB,CAAC;IAErE,OAAO,CACL,MAA+B,EAC/B,QAAiC,EACO,EAAE;QAC1C,MAAM,YAAY,GAAG,IAAA,2BAAY,EAI/B,GAAG,KAAK,CAAC,GAAG,CACV,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CACX,IAAI,CAAC;YACH,MAAM;YACN,SAAS;YACT,QAAQ;SACT,CAAC,CACL,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAEpC,IACE,WAAW,KAAK,kBAAkB;YAClC,WAAW,KAAK,wBAAwB;YACxC,WAAW,KAAK,SAAS,CAAC,UAAU;UACpC;YACA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;SAC1D;QAED,IACE,YAAY,KAAK,SAAS;YAC1B,YAAY,KAAK,SAAS,CAAC,UAAU;UACrC;YACA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,wCAAwB,EAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;SACjF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AA/CS,QAAA,8BAA8B,kCA+CvC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=calculateProviderTotal.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateProviderTotal.test.d.ts","sourceRoot":"","sources":["../../../../src/modularDrawer/utils/__tests__/calculateProviderTotal.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const calculateProviderTotal_1 = require("../calculateProviderTotal");
7
+ const cryptoCurrencies_1 = require("../../../mock/fixtures/cryptoCurrencies");
8
+ const account_1 = require("../../../mock/account");
9
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ describe("calculateProviderTotals", () => {
11
+ const mockBTCCurrency = (0, cryptoCurrencies_1.createFixtureCryptoCurrency)("bitcoin");
12
+ const mockETHCurrency = (0, cryptoCurrencies_1.createFixtureCryptoCurrency)("ethereum");
13
+ const mockBTCAccount = (0, account_1.genAccount)("btc-account", { currency: mockBTCCurrency });
14
+ const mockUSDCAccount = (0, account_1.genAccount)("usdc-account", { currency: mockETHCurrency });
15
+ const mockBscUSDCAccount = (0, account_1.genAccount)("bsc-usdc-account", { currency: mockETHCurrency });
16
+ const mockUSDCToken = {
17
+ type: "TokenCurrency",
18
+ id: "ethereum/erc20/usdc",
19
+ contractAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
20
+ parentCurrency: mockETHCurrency,
21
+ tokenType: "erc20",
22
+ name: "USD Coin",
23
+ ticker: "USDC",
24
+ units: [{ name: "USD Coin", code: "USDC", magnitude: 6 }],
25
+ };
26
+ const mockBscUSDCToken = {
27
+ type: "TokenCurrency",
28
+ id: "bsc/bep20/usdc",
29
+ contractAddress: "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
30
+ parentCurrency: mockETHCurrency,
31
+ tokenType: "bep20",
32
+ name: "USD Coin (BSC)",
33
+ ticker: "USDC",
34
+ units: [{ name: "USD Coin", code: "USDC", magnitude: 18 }],
35
+ };
36
+ it("should return totals with hasAccounts false when no accounts exist", () => {
37
+ const currencies = [mockBTCCurrency, mockUSDCToken];
38
+ const groupedAccounts = {};
39
+ const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
40
+ expect(result).toEqual({
41
+ totalBalance: new bignumber_js_1.default(0),
42
+ totalFiatValue: new bignumber_js_1.default(0),
43
+ hasAccounts: false,
44
+ referenceCurrency: null,
45
+ });
46
+ });
47
+ it("should sum totals across multiple currencies", () => {
48
+ const currencies = [mockBTCCurrency, mockUSDCToken];
49
+ const groupedAccounts = {
50
+ [mockBTCCurrency.id]: {
51
+ totalBalance: new bignumber_js_1.default(100000000),
52
+ totalFiatValue: new bignumber_js_1.default(50000),
53
+ accounts: [mockBTCAccount],
54
+ referenceCurrency: mockBTCCurrency,
55
+ },
56
+ [mockUSDCToken.id]: {
57
+ totalBalance: new bignumber_js_1.default(1000000),
58
+ totalFiatValue: new bignumber_js_1.default(1),
59
+ accounts: [mockUSDCAccount],
60
+ referenceCurrency: mockUSDCToken,
61
+ },
62
+ };
63
+ const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
64
+ // BTC (magnitude 8) sets reference, USDC (magnitude 6) gets normalized
65
+ // USDC: 1000000 * 10^(8-6) = 1000000 * 100 = 100000000
66
+ // Total: 100000000 (BTC) + 100000000 (normalized USDC) = 200000000
67
+ expect(result).toEqual({
68
+ totalBalance: new bignumber_js_1.default(200000000),
69
+ totalFiatValue: new bignumber_js_1.default(50001),
70
+ hasAccounts: true,
71
+ referenceCurrency: mockBTCCurrency, // First currency with accounts
72
+ });
73
+ });
74
+ it("should return referenceCurrency from first asset group with accounts", () => {
75
+ const currencies = [mockUSDCToken, mockBscUSDCToken];
76
+ const groupedAccounts = {
77
+ [mockUSDCToken.id]: {
78
+ totalBalance: new bignumber_js_1.default(1000000),
79
+ totalFiatValue: new bignumber_js_1.default(1),
80
+ accounts: [mockUSDCAccount],
81
+ referenceCurrency: mockUSDCToken, // ETH USDC with 6 decimals
82
+ },
83
+ [mockBscUSDCToken.id]: {
84
+ totalBalance: new bignumber_js_1.default("1000000000000000000"),
85
+ totalFiatValue: new bignumber_js_1.default(1),
86
+ accounts: [mockBscUSDCAccount],
87
+ referenceCurrency: mockBscUSDCToken, // BSC USDC with 18 decimals
88
+ },
89
+ };
90
+ const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
91
+ expect(result.referenceCurrency).toEqual(mockUSDCToken); // First currency
92
+ expect(result.hasAccounts).toBe(true);
93
+ });
94
+ it("should skip currencies with no accounts", () => {
95
+ const currencies = [mockBTCCurrency, mockUSDCToken];
96
+ const groupedAccounts = {
97
+ [mockUSDCToken.id]: {
98
+ totalBalance: new bignumber_js_1.default(1000000),
99
+ totalFiatValue: new bignumber_js_1.default(1),
100
+ accounts: [mockUSDCAccount],
101
+ referenceCurrency: mockUSDCToken,
102
+ },
103
+ // BTC has no entry in groupedAccounts
104
+ };
105
+ const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
106
+ expect(result).toEqual({
107
+ totalBalance: new bignumber_js_1.default(1000000),
108
+ totalFiatValue: new bignumber_js_1.default(1),
109
+ hasAccounts: true,
110
+ referenceCurrency: mockUSDCToken,
111
+ });
112
+ });
113
+ it("should skip currencies with empty accounts array", () => {
114
+ const currencies = [mockBTCCurrency, mockUSDCToken];
115
+ const groupedAccounts = {
116
+ [mockBTCCurrency.id]: {
117
+ totalBalance: new bignumber_js_1.default(100000000),
118
+ totalFiatValue: new bignumber_js_1.default(50000),
119
+ accounts: [],
120
+ referenceCurrency: mockBTCCurrency,
121
+ },
122
+ [mockUSDCToken.id]: {
123
+ totalBalance: new bignumber_js_1.default(1000000),
124
+ totalFiatValue: new bignumber_js_1.default(1),
125
+ accounts: [mockUSDCAccount],
126
+ referenceCurrency: mockUSDCToken,
127
+ },
128
+ };
129
+ const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
130
+ expect(result).toEqual({
131
+ totalBalance: new bignumber_js_1.default(1000000),
132
+ totalFiatValue: new bignumber_js_1.default(1),
133
+ hasAccounts: true,
134
+ referenceCurrency: mockUSDCToken,
135
+ });
136
+ });
137
+ it("should normalize balances based on magnitude differences", () => {
138
+ // Test the specific code: magnitude normalization between currencies
139
+ const currencies = [mockUSDCToken, mockBscUSDCToken];
140
+ const groupedAccounts = {
141
+ [mockUSDCToken.id]: {
142
+ totalBalance: new bignumber_js_1.default(1000000),
143
+ totalFiatValue: new bignumber_js_1.default(1),
144
+ accounts: [mockUSDCAccount],
145
+ referenceCurrency: mockUSDCToken, // 6 decimals
146
+ },
147
+ [mockBscUSDCToken.id]: {
148
+ totalBalance: new bignumber_js_1.default("1000000000000000000"),
149
+ totalFiatValue: new bignumber_js_1.default(1),
150
+ accounts: [mockBscUSDCAccount],
151
+ referenceCurrency: mockBscUSDCToken, // 18 decimals
152
+ },
153
+ };
154
+ const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
155
+ // First currency (USDC) sets reference magnitude of 6
156
+ // Second currency (BSC USDC) has magnitude 18, so diff = 6 - 18 = -12
157
+ // BSC balance of 1000000000000000000 shifted by -12 = 1000000
158
+ // Total should be 1000000 + 1000000 = 2000000
159
+ expect(result.totalBalance).toEqual(new bignumber_js_1.default(2000000));
160
+ expect(result.totalFiatValue).toEqual(new bignumber_js_1.default(2));
161
+ expect(result.hasAccounts).toBe(true);
162
+ expect(result.referenceCurrency).toEqual(mockUSDCToken);
163
+ });
164
+ it("should handle magnitude normalization when referenceCurrency is set", () => {
165
+ const currencies = [mockBscUSDCToken];
166
+ const groupedAccounts = {
167
+ [mockBscUSDCToken.id]: {
168
+ totalBalance: new bignumber_js_1.default("2000000000000000000"),
169
+ totalFiatValue: new bignumber_js_1.default(2),
170
+ accounts: [mockBscUSDCAccount],
171
+ referenceCurrency: mockBscUSDCToken,
172
+ },
173
+ };
174
+ const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
175
+ expect(result.totalBalance).toEqual(new bignumber_js_1.default("2000000000000000000"));
176
+ expect(result.referenceCurrency).toEqual(mockBscUSDCToken);
177
+ });
178
+ it("should handle zero magnitude difference correctly", () => {
179
+ const sameMagnitudeCurrency = {
180
+ type: "TokenCurrency",
181
+ id: "ethereum/erc20/usdc2",
182
+ contractAddress: "0x1234567890123456789012345678901234567890",
183
+ parentCurrency: mockETHCurrency,
184
+ tokenType: "erc20",
185
+ name: "USD Coin 2",
186
+ ticker: "USDC2",
187
+ units: [{ name: "USD Coin 2", code: "USDC2", magnitude: 6 }],
188
+ };
189
+ const mockSameMagnitudeAccount = (0, account_1.genAccount)("usdc2-account", { currency: mockETHCurrency });
190
+ const currencies = [mockUSDCToken, sameMagnitudeCurrency];
191
+ const groupedAccounts = {
192
+ [mockUSDCToken.id]: {
193
+ totalBalance: new bignumber_js_1.default(1000000),
194
+ totalFiatValue: new bignumber_js_1.default(1),
195
+ accounts: [mockUSDCAccount],
196
+ referenceCurrency: mockUSDCToken, // 6 decimals
197
+ },
198
+ [sameMagnitudeCurrency.id]: {
199
+ totalBalance: new bignumber_js_1.default(2000000),
200
+ totalFiatValue: new bignumber_js_1.default(2),
201
+ accounts: [mockSameMagnitudeAccount],
202
+ referenceCurrency: sameMagnitudeCurrency, // 6 decimals
203
+ },
204
+ };
205
+ const result = (0, calculateProviderTotal_1.calculateProviderTotals)(currencies, groupedAccounts);
206
+ // Both have magnitude 6, so diff = 6 - 6 = 0
207
+ // No shifting needed, simple addition: 1000000 + 2000000 = 3000000
208
+ expect(result.totalBalance).toEqual(new bignumber_js_1.default(3000000));
209
+ expect(result.totalFiatValue).toEqual(new bignumber_js_1.default(3));
210
+ });
211
+ });
212
+ //# sourceMappingURL=calculateProviderTotal.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateProviderTotal.test.js","sourceRoot":"","sources":["../../../../src/modularDrawer/utils/__tests__/calculateProviderTotal.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=groupAccountsByAsset.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupAccountsByAsset.test.d.ts","sourceRoot":"","sources":["../../../../src/modularDrawer/utils/__tests__/groupAccountsByAsset.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const groupAccountsByAsset_1 = require("../groupAccountsByAsset");
7
+ const cryptoCurrencies_1 = require("../../../mock/fixtures/cryptoCurrencies");
8
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
+ // Mock calculate function
10
+ jest.mock("@ledgerhq/live-countervalues/logic", () => ({
11
+ calculate: jest.fn((state, { value }) => {
12
+ // Mock: return the balance directly as fiat value for simple testing
13
+ return value;
14
+ }),
15
+ }));
16
+ describe("groupAccountsByAsset", () => {
17
+ const mockCurrency = (0, cryptoCurrencies_1.createFixtureCryptoCurrency)("bitcoin");
18
+ const mockEthCurrency = (0, cryptoCurrencies_1.createFixtureCryptoCurrency)("ethereum");
19
+ const mockCounterValuesState = {};
20
+ const mockTargetCurrency = (0, cryptoCurrencies_1.createFixtureCryptoCurrency)("usd");
21
+ const mockUSDCToken = {
22
+ type: "TokenCurrency",
23
+ id: "ethereum/erc20/usdc",
24
+ contractAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
25
+ parentCurrency: mockEthCurrency,
26
+ tokenType: "erc20",
27
+ name: "USD Coin",
28
+ ticker: "USDC",
29
+ units: [{ name: "USD Coin", code: "USDC", magnitude: 6 }],
30
+ };
31
+ const mockBTCAccount = {
32
+ type: "Account",
33
+ id: "btc-account-1",
34
+ seedIdentifier: "seed-id",
35
+ derivationMode: "",
36
+ currency: mockCurrency,
37
+ balance: new bignumber_js_1.default(100000000),
38
+ spendableBalance: new bignumber_js_1.default(100000000),
39
+ blockHeight: 0,
40
+ operations: [],
41
+ operationsCount: 0,
42
+ pendingOperations: [],
43
+ index: 0,
44
+ freshAddress: "btc-address",
45
+ freshAddressPath: "44'/0'/0'/0/0",
46
+ used: true,
47
+ swapHistory: [],
48
+ nfts: [],
49
+ lastSyncDate: new Date(),
50
+ creationDate: new Date(),
51
+ balanceHistoryCache: {
52
+ HOUR: { balances: [], latestDate: null },
53
+ DAY: { balances: [], latestDate: null },
54
+ WEEK: { balances: [], latestDate: null },
55
+ },
56
+ };
57
+ const mockUSDCAccount = {
58
+ type: "TokenAccount",
59
+ id: "usdc-account-1",
60
+ token: mockUSDCToken,
61
+ parentId: "eth-account-1",
62
+ balance: new bignumber_js_1.default(1000000),
63
+ spendableBalance: new bignumber_js_1.default(1000000),
64
+ operations: [],
65
+ operationsCount: 0,
66
+ pendingOperations: [],
67
+ swapHistory: [],
68
+ creationDate: new Date(),
69
+ balanceHistoryCache: {
70
+ HOUR: { balances: [], latestDate: null },
71
+ DAY: { balances: [], latestDate: null },
72
+ WEEK: { balances: [], latestDate: null },
73
+ },
74
+ };
75
+ it("should group accounts by asset ID and aggregate balances", () => {
76
+ const accounts = [mockBTCAccount, mockUSDCAccount];
77
+ const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
78
+ expect(result).toEqual({
79
+ [mockCurrency.id]: {
80
+ totalBalance: new bignumber_js_1.default(100000000),
81
+ totalFiatValue: new bignumber_js_1.default(100000000),
82
+ accounts: [mockBTCAccount],
83
+ referenceCurrency: mockCurrency,
84
+ },
85
+ [mockUSDCToken.id]: {
86
+ totalBalance: new bignumber_js_1.default(1000000),
87
+ totalFiatValue: new bignumber_js_1.default(1000000),
88
+ accounts: [mockUSDCAccount],
89
+ referenceCurrency: mockUSDCToken,
90
+ },
91
+ });
92
+ });
93
+ it("should aggregate multiple accounts with the same asset", () => {
94
+ const secondBTCAccount = {
95
+ ...mockBTCAccount,
96
+ id: "btc-account-2",
97
+ balance: new bignumber_js_1.default(50000000), // 0.5 BTC
98
+ };
99
+ const accounts = [mockBTCAccount, secondBTCAccount];
100
+ const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
101
+ expect(result[mockCurrency.id]).toEqual({
102
+ totalBalance: new bignumber_js_1.default(150000000),
103
+ totalFiatValue: new bignumber_js_1.default(150000000),
104
+ accounts: [mockBTCAccount, secondBTCAccount],
105
+ referenceCurrency: mockCurrency,
106
+ });
107
+ });
108
+ it("should handle empty accounts array", () => {
109
+ const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)([], mockCounterValuesState, mockTargetCurrency);
110
+ expect(result).toEqual({});
111
+ });
112
+ it("should handle accounts with zero balance", () => {
113
+ const zeroBalanceAccount = {
114
+ ...mockBTCAccount,
115
+ balance: new bignumber_js_1.default(0),
116
+ };
117
+ const accounts = [zeroBalanceAccount];
118
+ const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
119
+ expect(result[mockCurrency.id]).toEqual({
120
+ totalBalance: new bignumber_js_1.default(0),
121
+ totalFiatValue: new bignumber_js_1.default(0),
122
+ accounts: [zeroBalanceAccount],
123
+ referenceCurrency: mockCurrency,
124
+ });
125
+ });
126
+ it("should set referenceCurrency to the first currency encountered for each asset group", () => {
127
+ const accounts = [mockBTCAccount, mockUSDCAccount];
128
+ const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
129
+ expect(result[mockCurrency.id].referenceCurrency).toEqual(mockCurrency);
130
+ expect(result[mockUSDCToken.id].referenceCurrency).toEqual(mockUSDCToken);
131
+ });
132
+ it("should normalize balances when tokens have different magnitudes", () => {
133
+ // Create BSC USDC with different magnitude (18 decimals instead of 6)
134
+ const mockBscUSDCToken = {
135
+ ...mockUSDCToken,
136
+ id: "bsc/bep20/usdc",
137
+ name: "USD Coin (BSC)",
138
+ ticker: "USDC",
139
+ units: [{ name: "USD Coin", code: "USDC", magnitude: 18 }], // 18 decimals
140
+ };
141
+ const mockEthUSDCAccount = {
142
+ ...mockUSDCAccount,
143
+ id: "eth-usdc-account",
144
+ token: mockUSDCToken,
145
+ balance: new bignumber_js_1.default(1000000), // 1 USDC with 6 decimals
146
+ };
147
+ const mockBscUSDCAccount = {
148
+ ...mockUSDCAccount,
149
+ id: "bsc-usdc-account",
150
+ token: mockBscUSDCToken,
151
+ balance: new bignumber_js_1.default("1000000000000000000"), // 1 USDC with 18 decimals
152
+ };
153
+ // Both should be grouped under the same token ID for this test
154
+ // First account (ETH USDC) becomes reference currency with 6 decimals
155
+ const accounts = [mockEthUSDCAccount, mockBscUSDCAccount];
156
+ const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
157
+ const ethGroup = result[mockUSDCToken.id];
158
+ expect(ethGroup.referenceCurrency).toEqual(mockUSDCToken); // First currency is reference
159
+ expect(ethGroup.accounts).toHaveLength(1);
160
+ expect(ethGroup.totalBalance).toEqual(new bignumber_js_1.default(1000000)); // 1 USDC normalized to 6 decimals
161
+ const bscGroup = result[mockBscUSDCToken.id];
162
+ expect(bscGroup.referenceCurrency).toEqual(mockBscUSDCToken);
163
+ expect(bscGroup.accounts).toHaveLength(1);
164
+ expect(bscGroup.totalBalance).toEqual(new bignumber_js_1.default("1000000000000000000")); // 1 USDC with 18 decimals
165
+ });
166
+ it("should normalize balances correctly when adding accounts with different magnitudes to same asset group", () => {
167
+ // Create two USDC tokens with same ID but different magnitudes
168
+ const ethUSDCToken = {
169
+ ...mockUSDCToken,
170
+ units: [{ name: "USD Coin", code: "USDC", magnitude: 6 }], // 6 decimals
171
+ };
172
+ const bscUSDCToken = {
173
+ ...mockUSDCToken,
174
+ units: [{ name: "USD Coin", code: "USDC", magnitude: 18 }], // 18 decimals
175
+ };
176
+ const ethAccount = {
177
+ ...mockUSDCAccount,
178
+ id: "eth-usdc",
179
+ token: ethUSDCToken,
180
+ balance: new bignumber_js_1.default(1000000), // 1 USDC with 6 decimals
181
+ };
182
+ const bscAccount = {
183
+ ...mockUSDCAccount,
184
+ id: "bsc-usdc",
185
+ token: bscUSDCToken,
186
+ balance: new bignumber_js_1.default("1000000000000000000"), // 1 USDC with 18 decimals
187
+ };
188
+ // Process ETH account first to make it the reference currency
189
+ const accounts = [ethAccount, bscAccount];
190
+ const result = (0, groupAccountsByAsset_1.groupAccountsByAsset)(accounts, mockCounterValuesState, mockTargetCurrency);
191
+ const group = result[mockUSDCToken.id];
192
+ expect(group.referenceCurrency).toEqual(ethUSDCToken); // First currency is reference (6 decimals)
193
+ expect(group.accounts).toHaveLength(2);
194
+ // BSC balance should be normalized from 18 decimals to 6 decimals
195
+ // 1000000000000000000 (18 decimals) -> 1000000 (6 decimals)
196
+ // magnitudeDiff = 6 - 18 = -12
197
+ // normalized = 1000000000000000000 * 10^(-12) = 1000000
198
+ const expectedTotal = new bignumber_js_1.default(1000000).plus(new bignumber_js_1.default(1000000)); // 2 USDC total
199
+ expect(group.totalBalance).toEqual(expectedTotal);
200
+ });
201
+ });
202
+ //# sourceMappingURL=groupAccountsByAsset.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupAccountsByAsset.test.js","sourceRoot":"","sources":["../../../../src/modularDrawer/utils/__tests__/groupAccountsByAsset.test.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@ export declare const calculateProviderTotals: (currencies: CryptoOrTokenCurrency
5
5
  totalBalance: BigNumber;
6
6
  totalFiatValue: BigNumber;
7
7
  hasAccounts: boolean;
8
+ referenceCurrency: CryptoOrTokenCurrency | null;
8
9
  };
9
10
  //# sourceMappingURL=calculateProviderTotal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calculateProviderTotal.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/utils/calculateProviderTotal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,uBAAuB,eACtB,qBAAqB,EAAE,0BACX,OAAO,MAAM,EAAE,cAAc,CAAC;;;;CAgBvD,CAAC"}
1
+ {"version":3,"file":"calculateProviderTotal.d.ts","sourceRoot":"","sources":["../../../src/modularDrawer/utils/calculateProviderTotal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,uBAAuB,eACtB,qBAAqB,EAAE,0BACX,OAAO,MAAM,EAAE,cAAc,CAAC;;;;;CA2BvD,CAAC"}
@@ -9,15 +9,23 @@ const calculateProviderTotals = (currencies, groupedAccountsByAsset) => {
9
9
  let totalBalance = new bignumber_js_1.default(0);
10
10
  let totalFiatValue = new bignumber_js_1.default(0);
11
11
  let hasAccounts = false;
12
+ let referenceCurrency = null;
12
13
  for (const currency of currencies) {
13
14
  const assetGroup = groupedAccountsByAsset[currency.id];
14
15
  if (assetGroup?.accounts.length > 0) {
15
- totalBalance = totalBalance.plus(assetGroup.totalBalance);
16
+ const refCurrency = referenceCurrency ?? assetGroup.referenceCurrency;
17
+ const magnitudeDiff = refCurrency.units[0].magnitude - assetGroup.referenceCurrency.units[0].magnitude;
18
+ const normalizedBalance = assetGroup.totalBalance.shiftedBy(magnitudeDiff);
19
+ totalBalance = totalBalance.plus(normalizedBalance);
16
20
  totalFiatValue = totalFiatValue.plus(assetGroup.totalFiatValue);
17
21
  hasAccounts = true;
22
+ // Use the referenceCurrency from the first asset group with accounts
23
+ if (!referenceCurrency) {
24
+ referenceCurrency = assetGroup.referenceCurrency;
25
+ }
18
26
  }
19
27
  }
20
- return { totalBalance, totalFiatValue, hasAccounts };
28
+ return { totalBalance, totalFiatValue, hasAccounts, referenceCurrency };
21
29
  };
22
30
  exports.calculateProviderTotals = calculateProviderTotals;
23
31
  //# sourceMappingURL=calculateProviderTotal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calculateProviderTotal.js","sourceRoot":"","sources":["../../../src/modularDrawer/utils/calculateProviderTotal.ts"],"names":[],"mappings":";;;;;;AACA,gEAAqC;AAG9B,MAAM,uBAAuB,GAAG,CACrC,UAAmC,EACnC,sBAAsD,EACtD,EAAE;IACF,IAAI,YAAY,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,cAAc,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;QACjC,MAAM,UAAU,GAAG,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC1D,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAChE,WAAW,GAAG,IAAI,CAAC;SACpB;KACF;IAED,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;AACvD,CAAC,CAAC;AAlBW,QAAA,uBAAuB,2BAkBlC"}
1
+ {"version":3,"file":"calculateProviderTotal.js","sourceRoot":"","sources":["../../../src/modularDrawer/utils/calculateProviderTotal.ts"],"names":[],"mappings":";;;;;;AACA,gEAAqC;AAG9B,MAAM,uBAAuB,GAAG,CACrC,UAAmC,EACnC,sBAAsD,EACtD,EAAE;IACF,IAAI,YAAY,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,cAAc,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,iBAAiB,GAAiC,IAAI,CAAC;IAE3D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;QACjC,MAAM,UAAU,GAAG,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,MAAM,WAAW,GAAG,iBAAiB,IAAI,UAAU,CAAC,iBAAiB,CAAC;YACtE,MAAM,aAAa,GACjB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnF,MAAM,iBAAiB,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAE3E,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACpD,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAChE,WAAW,GAAG,IAAI,CAAC;YAEnB,qEAAqE;YACrE,IAAI,CAAC,iBAAiB,EAAE;gBACtB,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;aAClD;SACF;KACF;IAED,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AAC1E,CAAC,CAAC;AA7BW,QAAA,uBAAuB,2BA6BlC"}