@metamask-previews/assets-controllers 73.0.1-preview-bf50b46b → 73.0.1-preview-e4e5ca5c

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 (96) hide show
  1. package/CHANGELOG.md +1 -13
  2. package/dist/AccountTrackerController.cjs +5 -167
  3. package/dist/AccountTrackerController.cjs.map +1 -1
  4. package/dist/AccountTrackerController.d.cts +2 -14
  5. package/dist/AccountTrackerController.d.cts.map +1 -1
  6. package/dist/AccountTrackerController.d.mts +2 -14
  7. package/dist/AccountTrackerController.d.mts.map +1 -1
  8. package/dist/AccountTrackerController.mjs +5 -167
  9. package/dist/AccountTrackerController.mjs.map +1 -1
  10. package/dist/TokenBalancesController.cjs +321 -267
  11. package/dist/TokenBalancesController.cjs.map +1 -1
  12. package/dist/TokenBalancesController.d.cts +93 -51
  13. package/dist/TokenBalancesController.d.cts.map +1 -1
  14. package/dist/TokenBalancesController.d.mts +93 -51
  15. package/dist/TokenBalancesController.d.mts.map +1 -1
  16. package/dist/TokenBalancesController.mjs +320 -270
  17. package/dist/TokenBalancesController.mjs.map +1 -1
  18. package/dist/assetsUtil.cjs +1 -13
  19. package/dist/assetsUtil.cjs.map +1 -1
  20. package/dist/assetsUtil.d.cts +0 -8
  21. package/dist/assetsUtil.d.cts.map +1 -1
  22. package/dist/assetsUtil.d.mts +0 -8
  23. package/dist/assetsUtil.d.mts.map +1 -1
  24. package/dist/assetsUtil.mjs +1 -12
  25. package/dist/assetsUtil.mjs.map +1 -1
  26. package/dist/constants.cjs +1 -12
  27. package/dist/constants.cjs.map +1 -1
  28. package/dist/constants.d.cts +0 -1
  29. package/dist/constants.d.cts.map +1 -1
  30. package/dist/constants.d.mts +0 -1
  31. package/dist/constants.d.mts.map +1 -1
  32. package/dist/constants.mjs +0 -11
  33. package/dist/constants.mjs.map +1 -1
  34. package/dist/index.cjs +3 -3
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.cts +3 -2
  37. package/dist/index.d.cts.map +1 -1
  38. package/dist/index.d.mts +3 -2
  39. package/dist/index.d.mts.map +1 -1
  40. package/dist/index.mjs +1 -1
  41. package/dist/index.mjs.map +1 -1
  42. package/dist/multi-chain-accounts-service/multi-chain-accounts.cjs +1 -35
  43. package/dist/multi-chain-accounts-service/multi-chain-accounts.cjs.map +1 -1
  44. package/dist/multi-chain-accounts-service/multi-chain-accounts.d.cts +0 -16
  45. package/dist/multi-chain-accounts-service/multi-chain-accounts.d.cts.map +1 -1
  46. package/dist/multi-chain-accounts-service/multi-chain-accounts.d.mts +0 -16
  47. package/dist/multi-chain-accounts-service/multi-chain-accounts.d.mts.map +1 -1
  48. package/dist/multi-chain-accounts-service/multi-chain-accounts.mjs +0 -33
  49. package/dist/multi-chain-accounts-service/multi-chain-accounts.mjs.map +1 -1
  50. package/dist/multi-chain-accounts-service/types.cjs.map +1 -1
  51. package/dist/multi-chain-accounts-service/types.d.cts +0 -8
  52. package/dist/multi-chain-accounts-service/types.d.cts.map +1 -1
  53. package/dist/multi-chain-accounts-service/types.d.mts +0 -8
  54. package/dist/multi-chain-accounts-service/types.d.mts.map +1 -1
  55. package/dist/multi-chain-accounts-service/types.mjs.map +1 -1
  56. package/dist/multicall.cjs +22 -397
  57. package/dist/multicall.cjs.map +1 -1
  58. package/dist/multicall.d.cts +0 -39
  59. package/dist/multicall.d.cts.map +1 -1
  60. package/dist/multicall.d.mts +0 -39
  61. package/dist/multicall.d.mts.map +1 -1
  62. package/dist/multicall.mjs +21 -398
  63. package/dist/multicall.mjs.map +1 -1
  64. package/dist/selectors/balanceSelectors.cjs +275 -0
  65. package/dist/selectors/balanceSelectors.cjs.map +1 -0
  66. package/dist/selectors/balanceSelectors.d.cts +248 -0
  67. package/dist/selectors/balanceSelectors.d.cts.map +1 -0
  68. package/dist/selectors/balanceSelectors.d.mts +248 -0
  69. package/dist/selectors/balanceSelectors.d.mts.map +1 -0
  70. package/dist/selectors/balanceSelectors.mjs +268 -0
  71. package/dist/selectors/balanceSelectors.mjs.map +1 -0
  72. package/package.json +6 -3
  73. package/dist/multi-chain-accounts-service/api-balance-fetcher.cjs +0 -98
  74. package/dist/multi-chain-accounts-service/api-balance-fetcher.cjs.map +0 -1
  75. package/dist/multi-chain-accounts-service/api-balance-fetcher.d.cts +0 -28
  76. package/dist/multi-chain-accounts-service/api-balance-fetcher.d.cts.map +0 -1
  77. package/dist/multi-chain-accounts-service/api-balance-fetcher.d.mts +0 -28
  78. package/dist/multi-chain-accounts-service/api-balance-fetcher.d.mts.map +0 -1
  79. package/dist/multi-chain-accounts-service/api-balance-fetcher.mjs +0 -98
  80. package/dist/multi-chain-accounts-service/api-balance-fetcher.mjs.map +0 -1
  81. package/dist/rpc-service/rpc-balance-fetcher.cjs +0 -128
  82. package/dist/rpc-service/rpc-balance-fetcher.cjs.map +0 -1
  83. package/dist/rpc-service/rpc-balance-fetcher.d.cts +0 -34
  84. package/dist/rpc-service/rpc-balance-fetcher.d.cts.map +0 -1
  85. package/dist/rpc-service/rpc-balance-fetcher.d.mts +0 -34
  86. package/dist/rpc-service/rpc-balance-fetcher.d.mts.map +0 -1
  87. package/dist/rpc-service/rpc-balance-fetcher.mjs +0 -124
  88. package/dist/rpc-service/rpc-balance-fetcher.mjs.map +0 -1
  89. package/dist/selectors.cjs +0 -64
  90. package/dist/selectors.cjs.map +0 -1
  91. package/dist/selectors.d.cts +0 -51
  92. package/dist/selectors.d.cts.map +0 -1
  93. package/dist/selectors.d.mts +0 -51
  94. package/dist/selectors.d.mts.map +0 -1
  95. package/dist/selectors.mjs +0 -61
  96. package/dist/selectors.mjs.map +0 -1
@@ -1,61 +0,0 @@
1
- import { convertHexToDecimal } from "@metamask/controller-utils";
2
- import { createSelector } from "reselect";
3
- const currencyConversionRate = (state) => state.currencyRates;
4
- const evmTokenBalances = (state) => state.tokenBalances;
5
- const evmTokenRates = (state) => state.marketData;
6
- const tokensInformations = (state) => state.allTokens;
7
- export const evmAggregatedBalancesForAccount = createSelector(evmTokenBalances, evmTokenRates, currencyConversionRate, tokensInformations, (_state, account) => account, (tokenBalances, tokenRates, currencyConversionRateState, tokensInformationsState, account) => {
8
- const balancesForAccount = tokenBalances?.[account];
9
- if (!balancesForAccount) {
10
- return {};
11
- }
12
- // Calculate total balance value across all chains for this account
13
- let totalBalance = 0;
14
- for (const [chainId, chainBalances] of Object.entries(balancesForAccount)) {
15
- for (const [tokenAddress, balance] of Object.entries(chainBalances)) {
16
- // tokenRates is organized by chainId -> tokenAddress -> MarketDataDetails
17
- // We need to find the market data for this token across all chains
18
- let marketData;
19
- for (const chainData of Object.values(tokenRates)) {
20
- if (chainData[tokenAddress]) {
21
- marketData = chainData[tokenAddress];
22
- break;
23
- }
24
- }
25
- const rateToUse = currencyConversionRateState[marketData?.currency ?? '']
26
- ?.conversionRate ?? 0;
27
- if (marketData?.price) {
28
- const { price } = marketData;
29
- // Find the token decimals from tokensInformations
30
- let tokenDecimals = 18; // Default to 18 decimals
31
- const chainTokens = tokensInformationsState[chainId];
32
- if (chainTokens) {
33
- // Look through all accounts in this chain to find the token
34
- for (const accountTokens of Object.values(chainTokens)) {
35
- if (Array.isArray(accountTokens)) {
36
- const foundToken = accountTokens.find((token) => token.address.toLowerCase() === tokenAddress.toLowerCase());
37
- if (foundToken && foundToken.decimals !== undefined) {
38
- tokenDecimals = foundToken.decimals;
39
- break;
40
- }
41
- }
42
- }
43
- }
44
- // Convert all balances to 18 decimal equivalent first
45
- let normalizedBalance = convertHexToDecimal(balance);
46
- // If token has different decimals, convert to 18 decimals
47
- if (tokenDecimals !== 18) {
48
- const decimalDifference = 18 - tokenDecimals;
49
- normalizedBalance *= Math.pow(10, decimalDifference);
50
- }
51
- // Now divide by 10^18 since everything is normalized to 18 decimals
52
- const balanceInTokens = normalizedBalance / Math.pow(10, 18);
53
- const tokenValue = price * balanceInTokens * rateToUse;
54
- const roundedTokenValue = Math.round(tokenValue * 100) / 100; // Round to 2 decimal places
55
- totalBalance += roundedTokenValue;
56
- }
57
- }
58
- }
59
- return totalBalance;
60
- });
61
- //# sourceMappingURL=selectors.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selectors.mjs","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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","sourcesContent":["import { convertHexToDecimal } from '@metamask/controller-utils';\nimport type { Hex } from '@metamask/utils';\nimport { createSelector } from 'reselect';\n\nimport type { CurrencyRateState } from './CurrencyRateController';\nimport type { TokenBalancesControllerState } from './TokenBalancesController';\nimport type { TokenRatesControllerState } from './TokenRatesController';\nimport type { TokensControllerState } from './TokensController';\n\nconst currencyConversionRate = (state: CurrencyRateState) =>\n state.currencyRates;\n\nconst evmTokenBalances = (state: TokenBalancesControllerState) =>\n state.tokenBalances;\n\nconst evmTokenRates = (state: TokenRatesControllerState) => state.marketData;\n\nconst tokensInformations = (state: TokensControllerState) => state.allTokens;\n\nexport const evmAggregatedBalancesForAccount = createSelector(\n evmTokenBalances,\n evmTokenRates,\n currencyConversionRate,\n tokensInformations,\n (_state: TokenBalancesControllerState, account: Hex) => account,\n (\n tokenBalances,\n tokenRates,\n currencyConversionRateState,\n tokensInformationsState,\n account,\n ) => {\n const balancesForAccount = tokenBalances?.[account];\n if (!balancesForAccount) {\n return {};\n }\n\n // Calculate total balance value across all chains for this account\n let totalBalance = 0;\n\n for (const [chainId, chainBalances] of Object.entries(balancesForAccount)) {\n for (const [tokenAddress, balance] of Object.entries(chainBalances)) {\n // tokenRates is organized by chainId -> tokenAddress -> MarketDataDetails\n // We need to find the market data for this token across all chains\n let marketData;\n for (const chainData of Object.values(tokenRates)) {\n if (chainData[tokenAddress as Hex]) {\n marketData = chainData[tokenAddress as Hex];\n break;\n }\n }\n\n const rateToUse =\n currencyConversionRateState[marketData?.currency ?? '']\n ?.conversionRate ?? 0;\n\n if (marketData?.price) {\n const { price } = marketData;\n\n // Find the token decimals from tokensInformations\n let tokenDecimals = 18; // Default to 18 decimals\n const chainTokens = tokensInformationsState[chainId as Hex];\n if (chainTokens) {\n // Look through all accounts in this chain to find the token\n for (const accountTokens of Object.values(chainTokens)) {\n if (Array.isArray(accountTokens)) {\n const foundToken = accountTokens.find(\n (token: { address: string; decimals: number }) =>\n token.address.toLowerCase() === tokenAddress.toLowerCase(),\n );\n if (foundToken && foundToken.decimals !== undefined) {\n tokenDecimals = foundToken.decimals;\n break;\n }\n }\n }\n }\n\n // Convert all balances to 18 decimal equivalent first\n let normalizedBalance = convertHexToDecimal(balance);\n\n // If token has different decimals, convert to 18 decimals\n if (tokenDecimals !== 18) {\n const decimalDifference = 18 - tokenDecimals;\n normalizedBalance *= Math.pow(10, decimalDifference);\n }\n\n // Now divide by 10^18 since everything is normalized to 18 decimals\n const balanceInTokens = normalizedBalance / Math.pow(10, 18);\n const tokenValue = price * balanceInTokens * rateToUse;\n const roundedTokenValue = Math.round(tokenValue * 100) / 100; // Round to 2 decimal places\n\n totalBalance += roundedTokenValue;\n }\n }\n }\n\n return totalBalance;\n },\n);\n"]}