@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.
- package/CHANGELOG.md +1 -13
- package/dist/AccountTrackerController.cjs +5 -167
- package/dist/AccountTrackerController.cjs.map +1 -1
- package/dist/AccountTrackerController.d.cts +2 -14
- package/dist/AccountTrackerController.d.cts.map +1 -1
- package/dist/AccountTrackerController.d.mts +2 -14
- package/dist/AccountTrackerController.d.mts.map +1 -1
- package/dist/AccountTrackerController.mjs +5 -167
- package/dist/AccountTrackerController.mjs.map +1 -1
- package/dist/TokenBalancesController.cjs +321 -267
- package/dist/TokenBalancesController.cjs.map +1 -1
- package/dist/TokenBalancesController.d.cts +93 -51
- package/dist/TokenBalancesController.d.cts.map +1 -1
- package/dist/TokenBalancesController.d.mts +93 -51
- package/dist/TokenBalancesController.d.mts.map +1 -1
- package/dist/TokenBalancesController.mjs +320 -270
- package/dist/TokenBalancesController.mjs.map +1 -1
- package/dist/assetsUtil.cjs +1 -13
- package/dist/assetsUtil.cjs.map +1 -1
- package/dist/assetsUtil.d.cts +0 -8
- package/dist/assetsUtil.d.cts.map +1 -1
- package/dist/assetsUtil.d.mts +0 -8
- package/dist/assetsUtil.d.mts.map +1 -1
- package/dist/assetsUtil.mjs +1 -12
- package/dist/assetsUtil.mjs.map +1 -1
- package/dist/constants.cjs +1 -12
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +0 -1
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +0 -1
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +0 -11
- package/dist/constants.mjs.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +3 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/multi-chain-accounts-service/multi-chain-accounts.cjs +1 -35
- package/dist/multi-chain-accounts-service/multi-chain-accounts.cjs.map +1 -1
- package/dist/multi-chain-accounts-service/multi-chain-accounts.d.cts +0 -16
- package/dist/multi-chain-accounts-service/multi-chain-accounts.d.cts.map +1 -1
- package/dist/multi-chain-accounts-service/multi-chain-accounts.d.mts +0 -16
- package/dist/multi-chain-accounts-service/multi-chain-accounts.d.mts.map +1 -1
- package/dist/multi-chain-accounts-service/multi-chain-accounts.mjs +0 -33
- package/dist/multi-chain-accounts-service/multi-chain-accounts.mjs.map +1 -1
- package/dist/multi-chain-accounts-service/types.cjs.map +1 -1
- package/dist/multi-chain-accounts-service/types.d.cts +0 -8
- package/dist/multi-chain-accounts-service/types.d.cts.map +1 -1
- package/dist/multi-chain-accounts-service/types.d.mts +0 -8
- package/dist/multi-chain-accounts-service/types.d.mts.map +1 -1
- package/dist/multi-chain-accounts-service/types.mjs.map +1 -1
- package/dist/multicall.cjs +22 -397
- package/dist/multicall.cjs.map +1 -1
- package/dist/multicall.d.cts +0 -39
- package/dist/multicall.d.cts.map +1 -1
- package/dist/multicall.d.mts +0 -39
- package/dist/multicall.d.mts.map +1 -1
- package/dist/multicall.mjs +21 -398
- package/dist/multicall.mjs.map +1 -1
- package/dist/selectors/balanceSelectors.cjs +275 -0
- package/dist/selectors/balanceSelectors.cjs.map +1 -0
- package/dist/selectors/balanceSelectors.d.cts +248 -0
- package/dist/selectors/balanceSelectors.d.cts.map +1 -0
- package/dist/selectors/balanceSelectors.d.mts +248 -0
- package/dist/selectors/balanceSelectors.d.mts.map +1 -0
- package/dist/selectors/balanceSelectors.mjs +268 -0
- package/dist/selectors/balanceSelectors.mjs.map +1 -0
- package/package.json +6 -3
- package/dist/multi-chain-accounts-service/api-balance-fetcher.cjs +0 -98
- package/dist/multi-chain-accounts-service/api-balance-fetcher.cjs.map +0 -1
- package/dist/multi-chain-accounts-service/api-balance-fetcher.d.cts +0 -28
- package/dist/multi-chain-accounts-service/api-balance-fetcher.d.cts.map +0 -1
- package/dist/multi-chain-accounts-service/api-balance-fetcher.d.mts +0 -28
- package/dist/multi-chain-accounts-service/api-balance-fetcher.d.mts.map +0 -1
- package/dist/multi-chain-accounts-service/api-balance-fetcher.mjs +0 -98
- package/dist/multi-chain-accounts-service/api-balance-fetcher.mjs.map +0 -1
- package/dist/rpc-service/rpc-balance-fetcher.cjs +0 -128
- package/dist/rpc-service/rpc-balance-fetcher.cjs.map +0 -1
- package/dist/rpc-service/rpc-balance-fetcher.d.cts +0 -34
- package/dist/rpc-service/rpc-balance-fetcher.d.cts.map +0 -1
- package/dist/rpc-service/rpc-balance-fetcher.d.mts +0 -34
- package/dist/rpc-service/rpc-balance-fetcher.d.mts.map +0 -1
- package/dist/rpc-service/rpc-balance-fetcher.mjs +0 -124
- package/dist/rpc-service/rpc-balance-fetcher.mjs.map +0 -1
- package/dist/selectors.cjs +0 -64
- package/dist/selectors.cjs.map +0 -1
- package/dist/selectors.d.cts +0 -51
- package/dist/selectors.d.cts.map +0 -1
- package/dist/selectors.d.mts +0 -51
- package/dist/selectors.d.mts.map +0 -1
- package/dist/selectors.mjs +0 -61
- package/dist/selectors.mjs.map +0 -1
package/dist/selectors.mjs
DELETED
|
@@ -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
|
package/dist/selectors.mjs.map
DELETED
|
@@ -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"]}
|