From 4210f9518da5e330efc74fcd1fd367537c03fec4 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Fri, 31 Oct 2025 11:13:41 +0100 Subject: [PATCH 01/24] chore: remove supported chainIds constant from utils --- package.json | 2 +- shared/types/background.ts | 1 + .../hooks/useTokenExchangeRate.test.tsx | 4 ++++ .../hooks/useTokenExchangeRate.tsx | 13 +++++++++++-- .../import-tokens-modal.js | 3 +++ ui/ducks/send/helpers.js | 3 +++ ui/ducks/send/helpers.test.js | 1 + ui/helpers/utils/util.js | 3 +++ ui/pages/asset/hooks/useHistoricalPrices.ts | 11 +++++------ ui/pages/asset/util.ts | 6 ++---- .../useBalanceChanges.test.ts | 1 + .../simulation-details/useBalanceChanges.ts | 19 +++++++++++++++++-- .../useDappSwapComparisonInfo.test.ts | 9 ++++++++- .../useDappSwapComparisonInfo.ts | 1 + .../useDappSwapUSDValues.test.ts | 9 ++++++++- .../useDappSwapUSDValues.ts | 11 ++++++++++- ui/selectors/selectors.js | 4 ++++ yarn.lock | 10 +++++----- 18 files changed, 88 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index dc229f3ce4e8..48470506a538 100644 --- a/package.json +++ b/package.json @@ -269,7 +269,7 @@ "@metamask/address-book-controller": "^7.0.0", "@metamask/announcement-controller": "^8.0.0", "@metamask/approval-controller": "^8.0.0", - "@metamask/assets-controllers": "^85.0.0", + "@metamask/assets-controllers": "npm:@metamask-previews/assets-controllers@86.0.0-preview-eee46d4b", "@metamask/base-controller": "^9.0.0", "@metamask/bitcoin-wallet-snap": "^1.4.3", "@metamask/bridge-controller": "^56.0.0", diff --git a/shared/types/background.ts b/shared/types/background.ts index a24b57d00777..328822e3827e 100644 --- a/shared/types/background.ts +++ b/shared/types/background.ts @@ -302,6 +302,7 @@ export type ControllerStatePropertiesEnumerated = { preventPollingOnNetworkRestart: TokenListState['preventPollingOnNetworkRestart']; tokensChainsCache: TokenListState['tokensChainsCache']; marketData: TokenRatesControllerState['marketData']; + supportedChainIds: TokenRatesControllerState['supportedChainIds']; lastFetchedBlockNumbers: TransactionControllerState['lastFetchedBlockNumbers']; methodData: TransactionControllerState['methodData']; transactions: TransactionControllerState['transactions']; diff --git a/ui/components/app/currency-input/hooks/useTokenExchangeRate.test.tsx b/ui/components/app/currency-input/hooks/useTokenExchangeRate.test.tsx index f50a8d370a58..6c9313f5104f 100644 --- a/ui/components/app/currency-input/hooks/useTokenExchangeRate.test.tsx +++ b/ui/components/app/currency-input/hooks/useTokenExchangeRate.test.tsx @@ -26,6 +26,10 @@ const renderUseTokenExchangeRate = ( '0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e': { price: 3.304588 }, }, }, + supportedChainIds: { + timestamp: 0, + data: [], + }, ...metaMaskState, }, }; diff --git a/ui/components/app/currency-input/hooks/useTokenExchangeRate.tsx b/ui/components/app/currency-input/hooks/useTokenExchangeRate.tsx index a4799d94ce88..5299d21338bb 100644 --- a/ui/components/app/currency-input/hooks/useTokenExchangeRate.tsx +++ b/ui/components/app/currency-input/hooks/useTokenExchangeRate.tsx @@ -2,7 +2,10 @@ import { useMemo, useState } from 'react'; import { toChecksumAddress } from 'ethereumjs-util'; import { shallowEqual, useSelector } from 'react-redux'; import { getCurrentChainId } from '../../../../../shared/modules/selectors/networks'; -import { getTokenExchangeRates } from '../../../../selectors'; +import { + getSupportedChainIds, + getTokenExchangeRates, +} from '../../../../selectors'; import { Numeric } from '../../../../../shared/modules/Numeric'; import { getConversionRate, @@ -29,6 +32,7 @@ export default function useTokenExchangeRate( : undefined; const nativeCurrency = useSelector(getNativeCurrency); const chainId = useSelector(getCurrentChainId); + const supportedChainIds = useSelector(getSupportedChainIds); const selectedNativeConversionRate = useSelector(getConversionRate); @@ -70,7 +74,12 @@ export default function useTokenExchangeRate( ...prev, [tokenAddress]: LOADING, })); - fetchTokenExchangeRates(nativeCurrency, [tokenAddress], chainId) + fetchTokenExchangeRates( + nativeCurrency, + [tokenAddress], + chainId, + supportedChainIds, + ) .then((addressToExchangeRate) => { setExchangeRates((prev) => ({ ...prev, diff --git a/ui/components/multichain/import-tokens-modal/import-tokens-modal.js b/ui/components/multichain/import-tokens-modal/import-tokens-modal.js index 24701e56acc5..ff8373634641 100644 --- a/ui/components/multichain/import-tokens-modal/import-tokens-modal.js +++ b/ui/components/multichain/import-tokens-modal/import-tokens-modal.js @@ -33,6 +33,7 @@ import { getTokenNetworkFilter, getAllTokens, getEnabledNetworksByNamespace, + getSupportedChainIds, } from '../../../selectors'; import { addImportedTokens, @@ -211,6 +212,7 @@ export const ImportTokensModal = ({ onClose }) => { const [tokenStandard, setTokenStandard] = useState(TokenStandard.none); const testNetworkBackgroundColor = useSelector(getTestNetworkBackgroundColor); const [showSymbolAndDecimals, setShowSymbolAndDecimals] = useState(false); + const supportedChainIds = useSelector(getSupportedChainIds); const blockExplorerUrl = networkConfigurations[selectedNetworkForCustomImport]?.blockExplorerUrls?.[ @@ -495,6 +497,7 @@ export const ImportTokensModal = ({ onClose }) => { nativeCurrency, tokenAddresses, chainId, + supportedChainIds, ); // dispatch action dispatch(setConfirmationExchangeRates(result)); diff --git a/ui/ducks/send/helpers.js b/ui/ducks/send/helpers.js index 2a54107e0c84..32a9c80c4bab 100644 --- a/ui/ducks/send/helpers.js +++ b/ui/ducks/send/helpers.js @@ -22,6 +22,7 @@ import { checkNetworkAndAccountSupports1559, getConfirmationExchangeRates, getGasPriceInHexWei, + getSupportedChainIds, getTokenExchangeRates, } from '../../selectors'; import { estimateGas } from '../../store/actions'; @@ -211,6 +212,7 @@ export const addAdjustedReturnToQuotes = async ( // get exchange rates from state const contractExchangeRates = getTokenExchangeRates(state); + const supportedChainIds = getSupportedChainIds(state); const confirmationExchangeRates = getConfirmationExchangeRates(state); const mergedRates = { ...contractExchangeRates, @@ -234,6 +236,7 @@ export const addAdjustedReturnToQuotes = async ( nativeCurrency, [destinationAddress], chainId, + supportedChainIds, ) )[destinationAddress]; } diff --git a/ui/ducks/send/helpers.test.js b/ui/ducks/send/helpers.test.js index bb811fef7efe..c64e3eff2a71 100644 --- a/ui/ducks/send/helpers.test.js +++ b/ui/ducks/send/helpers.test.js @@ -61,6 +61,7 @@ jest.mock('../../selectors', () => ({ getConfirmationExchangeRates: jest.fn(), getGasPriceInHexWei: jest.fn(), getTokenExchangeRates: jest.fn(), + getSupportedChainIds: jest.fn(), })); jest.mock('../../store/actions', () => ({ diff --git a/ui/helpers/utils/util.js b/ui/helpers/utils/util.js index 890ce8fcf1d1..8c5eb72d8e43 100644 --- a/ui/helpers/utils/util.js +++ b/ui/helpers/utils/util.js @@ -792,12 +792,14 @@ export const checkTokenIdExists = (address, tokenId, obj) => { * @param {string} nativeCurrency - native currency to fetch prices for. * @param {Hex[]} tokenAddresses - set of contract addresses * @param {Hex} chainId - current chainId + * @param {Hex[]} supportedChainIds - supported chain ids * @returns The prices for the requested tokens. */ export const fetchTokenExchangeRates = async ( nativeCurrency, tokenAddresses, chainId, + supportedChainIds, ) => { try { return await fetchTokenContractExchangeRates({ @@ -805,6 +807,7 @@ export const fetchTokenExchangeRates = async ( nativeCurrency, tokenAddresses, chainId, + supportedChainIds, }); } catch (err) { return {}; diff --git a/ui/pages/asset/hooks/useHistoricalPrices.ts b/ui/pages/asset/hooks/useHistoricalPrices.ts index 0805fe9c7cb4..48a28a8374e3 100644 --- a/ui/pages/asset/hooks/useHistoricalPrices.ts +++ b/ui/pages/asset/hooks/useHistoricalPrices.ts @@ -12,12 +12,9 @@ import { Point } from 'chart.js'; import { useDispatch, useSelector } from 'react-redux'; import { MINUTE } from '../../../../shared/constants/time'; import fetchWithCache from '../../../../shared/lib/fetch-with-cache'; -import { getShouldShowFiat } from '../../../selectors'; +import { getShouldShowFiat, getSupportedChainIds } from '../../../selectors'; import { getHistoricalPrices } from '../../../selectors/assets'; -import { - chainSupportsPricing, - fromIso8601DurationToPriceApiTimePeriod, -} from '../util'; +import { fromIso8601DurationToPriceApiTimePeriod } from '../util'; import { fetchHistoricalPricesForAsset } from '../../../store/actions'; import { endTrace, trace, TraceName } from '../../../../shared/lib/trace'; import { isEvmChainId } from '../../../../shared/lib/asset-utils'; @@ -100,6 +97,8 @@ const useHistoricalPricesEvm = ({ }: UseHistoricalPricesParams) => { const isEvm = isEvmChainId(chainId); const showFiat: boolean = useSelector(getShouldShowFiat); + const supportedChainIds = useSelector(getSupportedChainIds); + const isChainSupportsPricing = supportedChainIds.includes(chainId as Hex); const [loading, setLoading] = useState(false); const [prices, setPrices] = useState([]); @@ -113,7 +112,7 @@ const useHistoricalPricesEvm = ({ return; } - const chainSupported = showFiat && chainSupportsPricing(chainId as Hex); + const chainSupported = showFiat && isChainSupportsPricing(chainId as Hex); if (!chainSupported) { return; } diff --git a/ui/pages/asset/util.ts b/ui/pages/asset/util.ts index 5689de6a0985..0bf0c4355c1e 100644 --- a/ui/pages/asset/util.ts +++ b/ui/pages/asset/util.ts @@ -1,5 +1,3 @@ -import { SUPPORTED_CHAIN_IDS } from '@metamask/assets-controllers'; -import { Hex, assert } from '@metamask/utils'; import { Duration } from 'luxon'; import { PriceApiTimePeriod } from './types/PriceApiTimePeriod'; @@ -42,8 +40,8 @@ export const getPricePrecision = (price: number) => { * * @param chainId - The hexadecimal chain id. */ -export const chainSupportsPricing = (chainId: Hex) => - (SUPPORTED_CHAIN_IDS as readonly string[]).includes(chainId); +/* export const chainSupportsPricing = (chainId: Hex) => + (SUPPORTED_CHAIN_IDS as readonly string[]).includes(chainId); */ /** The opacity components should set during transition */ export const loadingOpacity = 0.2; diff --git a/ui/pages/confirmations/components/simulation-details/useBalanceChanges.test.ts b/ui/pages/confirmations/components/simulation-details/useBalanceChanges.test.ts index 05646a689d08..38693c13ed2e 100644 --- a/ui/pages/confirmations/components/simulation-details/useBalanceChanges.test.ts +++ b/ui/pages/confirmations/components/simulation-details/useBalanceChanges.test.ts @@ -24,6 +24,7 @@ jest.mock('../../../../ducks/metamask/metamask', () => ({ jest.mock('../../../../selectors', () => ({ selectConversionRateByChainId: jest.fn(), getUSDConversionRateByChainId: jest.fn(() => () => 4), + getSupportedChainIds: jest.fn(), })); jest.mock('../../../../helpers/utils/util', () => ({ diff --git a/ui/pages/confirmations/components/simulation-details/useBalanceChanges.ts b/ui/pages/confirmations/components/simulation-details/useBalanceChanges.ts index 8bdb1aea3679..8d93e1c348f7 100644 --- a/ui/pages/confirmations/components/simulation-details/useBalanceChanges.ts +++ b/ui/pages/confirmations/components/simulation-details/useBalanceChanges.ts @@ -12,6 +12,7 @@ import { useAsyncResultOrThrow } from '../../../../hooks/useAsync'; import { TokenStandard } from '../../../../../shared/constants/transaction'; import { getCurrentCurrency } from '../../../../ducks/metamask/metamask'; import { + getSupportedChainIds, // eslint-disable-next-line no-restricted-syntax getUSDConversionRateByChainId, selectConversionRateByChainId, @@ -70,11 +71,13 @@ async function fetchTokenFiatRates( fiatCurrency: string, erc20TokenAddresses: Hex[], chainId: Hex, + supportedChainIds: Hex[], ): Promise { const tokenRates = await fetchTokenExchangeRates( fiatCurrency, erc20TokenAddresses, chainId, + supportedChainIds, ); return Object.fromEntries( @@ -168,6 +171,7 @@ export const useBalanceChanges = ({ getUSDConversionRateByChainId(chainId)(state), ); + const supportedChainIds = useSelector(getSupportedChainIds); const { nativeBalanceChange, tokenBalanceChanges = [] } = simulationData ?? {}; @@ -181,7 +185,13 @@ export const useBalanceChanges = ({ ); const erc20FiatRates = useAsyncResultOrThrow( - () => fetchTokenFiatRates(fiatCurrency, erc20TokenAddresses, chainId), + () => + fetchTokenFiatRates( + fiatCurrency, + erc20TokenAddresses, + chainId, + supportedChainIds, + ), [JSON.stringify(erc20TokenAddresses), chainId, fiatCurrency], ); @@ -189,7 +199,12 @@ export const useBalanceChanges = ({ async () => fiatCurrency === CURRENCY_USD ? (erc20FiatRates.value ?? {}) - : fetchTokenFiatRates(CURRENCY_USD, erc20TokenAddresses, chainId), + : fetchTokenFiatRates( + CURRENCY_USD, + erc20TokenAddresses, + chainId, + supportedChainIds, + ), [ JSON.stringify(erc20TokenAddresses), chainId, diff --git a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.test.ts b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.test.ts index e3360d8131f5..7ca70a9afc06 100644 --- a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.test.ts +++ b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.test.ts @@ -45,7 +45,14 @@ jest.mock('./useDappSwapComparisonLatencyMetrics', () => ({ async function runHook() { const response = renderHookWithConfirmContextProvider( useDappSwapComparisonInfo, - getMockConfirmStateForTransaction(mockSwapConfirmation as Confirmation), + getMockConfirmStateForTransaction(mockSwapConfirmation as Confirmation, { + metamask: { + supportedChainIds: { + timestamp: 0, + data: [], + }, + }, + }), ); await act(async () => { diff --git a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.ts b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.ts index f39b8428da01..272772773003 100644 --- a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.ts +++ b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.ts @@ -176,6 +176,7 @@ export function useDappSwapComparisonInfo() { simulationData, ); + console.log('===================='); captureDappSwapComparisonMetricsProperties({ properties: { // eslint-disable-next-line @typescript-eslint/naming-convention diff --git a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapUSDValues.test.ts b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapUSDValues.test.ts index e9885bce8580..05c0f2391941 100644 --- a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapUSDValues.test.ts +++ b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapUSDValues.test.ts @@ -21,7 +21,14 @@ async function runHook() { ], destTokenAddress: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913', }), - getMockConfirmStateForTransaction(mockSwapConfirmation as Confirmation), + getMockConfirmStateForTransaction(mockSwapConfirmation as Confirmation, { + metamask: { + supportedChainIds: { + timestamp: 0, + data: [], + }, + }, + }), ); await act(async () => { diff --git a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapUSDValues.ts b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapUSDValues.ts index 28b3760b2845..f6a47c83451e 100644 --- a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapUSDValues.ts +++ b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapUSDValues.ts @@ -8,12 +8,14 @@ import { import { TransactionMeta } from '@metamask/transaction-controller'; import { useCallback } from 'react'; +import { useSelector } from 'react-redux'; import { TokenStandAndDetails } from '../../../../../store/actions'; import { fetchTokenExchangeRates } from '../../../../../helpers/utils/util'; import { useAsyncResult } from '../../../../../hooks/useAsync'; import { fetchAllTokenDetails } from '../../../utils/token'; import { getTokenValueFromRecord } from '../../../utils/dapp-swap-comparison-utils'; import { useConfirmContext } from '../../../context/confirm'; +import { getSupportedChainIds } from '../../../../../selectors'; export function useDappSwapUSDValues({ tokenAddresses = [], @@ -23,6 +25,7 @@ export function useDappSwapUSDValues({ destTokenAddress?: Hex; }) { const { currentConfirmation } = useConfirmContext(); + const supportedChainIds = useSelector(getSupportedChainIds); const { chainId, txParams } = currentConfirmation ?? { txParams: {}, }; @@ -31,7 +34,13 @@ export function useDappSwapUSDValues({ const { value: fiatRates, pending: fiatRatesPending } = useAsyncResult< Record >( - () => fetchTokenExchangeRates('usd', tokenAddresses as Hex[], chainId), + () => + fetchTokenExchangeRates( + 'usd', + tokenAddresses as Hex[], + chainId, + supportedChainIds, + ), [chainId, tokenAddresses?.length], ); diff --git a/ui/selectors/selectors.js b/ui/selectors/selectors.js index e8d152679406..4858affd1a17 100644 --- a/ui/selectors/selectors.js +++ b/ui/selectors/selectors.js @@ -1113,6 +1113,10 @@ export const getMarketData = (state) => { return state.metamask.marketData; }; +export const getSupportedChainIds = (state) => { + return state.metamask.supportedChainIds.data; +}; + export function getAddressBook(state) { const chainId = getCurrentChainId(state); if (!state.metamask.addressBook[chainId]) { diff --git a/yarn.lock b/yarn.lock index 66aa3d1596df..1cf64c0f3028 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5584,9 +5584,9 @@ __metadata: languageName: node linkType: hard -"@metamask/assets-controllers@npm:^85.0.0": - version: 85.0.0 - resolution: "@metamask/assets-controllers@npm:85.0.0" +"@metamask/assets-controllers@npm:@metamask-previews/assets-controllers@85.0.0-preview-1ae9d4fd": + version: 85.0.0-preview-1ae9d4fd + resolution: "@metamask-previews/assets-controllers@npm:85.0.0-preview-1ae9d4fd" dependencies: "@ethereumjs/util": "npm:^9.1.0" "@ethersproject/abi": "npm:^5.7.0" @@ -5632,7 +5632,7 @@ __metadata: "@metamask/snaps-controllers": ^14.0.0 "@metamask/transaction-controller": ^61.0.0 webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 - checksum: 10/7e1320856e8024614d1932ccc43750d39e77905be218a1eb932afc7a30b3a51d8899f10e025403626baf1849c309b6aeae1eb07a30ccc119d3402f46376b2e37 + checksum: 10/f29682b987387272ce84ef5ab0a8e5c053d37cacdb6fa7b7ece116fc8542e529e085a41917b00ad4140ab0a7765d42421ee52ab09a424cbb5c152c6b5ff2f2ae languageName: node linkType: hard @@ -31853,7 +31853,7 @@ __metadata: "@metamask/announcement-controller": "npm:^8.0.0" "@metamask/api-specs": "npm:^0.13.0" "@metamask/approval-controller": "npm:^8.0.0" - "@metamask/assets-controllers": "npm:^85.0.0" + "@metamask/assets-controllers": "npm:@metamask-previews/assets-controllers@85.0.0-preview-1ae9d4fd" "@metamask/auto-changelog": "npm:^5.1.0" "@metamask/base-controller": "npm:^9.0.0" "@metamask/bitcoin-wallet-snap": "npm:^1.4.3" From dadac0cf430238d60275dcb368839eb50a5cf9e9 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Fri, 31 Oct 2025 11:22:49 +0100 Subject: [PATCH 02/24] fix: yarn --- yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1cf64c0f3028..9a06fbd56272 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5584,9 +5584,9 @@ __metadata: languageName: node linkType: hard -"@metamask/assets-controllers@npm:@metamask-previews/assets-controllers@85.0.0-preview-1ae9d4fd": - version: 85.0.0-preview-1ae9d4fd - resolution: "@metamask-previews/assets-controllers@npm:85.0.0-preview-1ae9d4fd" +"@metamask/assets-controllers@npm:@metamask-previews/assets-controllers@86.0.0-preview-eee46d4b": + version: 86.0.0-preview-eee46d4b + resolution: "@metamask-previews/assets-controllers@npm:86.0.0-preview-eee46d4b" dependencies: "@ethereumjs/util": "npm:^9.1.0" "@ethersproject/abi": "npm:^5.7.0" @@ -5632,7 +5632,7 @@ __metadata: "@metamask/snaps-controllers": ^14.0.0 "@metamask/transaction-controller": ^61.0.0 webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 - checksum: 10/f29682b987387272ce84ef5ab0a8e5c053d37cacdb6fa7b7ece116fc8542e529e085a41917b00ad4140ab0a7765d42421ee52ab09a424cbb5c152c6b5ff2f2ae + checksum: 10/602362d241d90f81bbf60d754c6f394b355f45f12aac78a6df1d78d9daf621dff7d417e6973ea9247b3b77b9acdb9fe275968b1a1736fa53c92007baf55d0d94 languageName: node linkType: hard @@ -31853,7 +31853,7 @@ __metadata: "@metamask/announcement-controller": "npm:^8.0.0" "@metamask/api-specs": "npm:^0.13.0" "@metamask/approval-controller": "npm:^8.0.0" - "@metamask/assets-controllers": "npm:@metamask-previews/assets-controllers@85.0.0-preview-1ae9d4fd" + "@metamask/assets-controllers": "npm:@metamask-previews/assets-controllers@86.0.0-preview-eee46d4b" "@metamask/auto-changelog": "npm:^5.1.0" "@metamask/base-controller": "npm:^9.0.0" "@metamask/bitcoin-wallet-snap": "npm:^1.4.3" From 8f367a490e6f8efbe6aff1b54fe56cd115ebb058 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Fri, 31 Oct 2025 12:33:47 +0100 Subject: [PATCH 03/24] fix: test --- test/data/confirmations/helper.ts | 4 ++++ ui/selectors/assets.ts | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/test/data/confirmations/helper.ts b/test/data/confirmations/helper.ts index 714fa2154847..feafe2b8e974 100644 --- a/test/data/confirmations/helper.ts +++ b/test/data/confirmations/helper.ts @@ -96,6 +96,10 @@ export const getMockTypedSignConfirmStateForRequest = ( unapprovedTypedMessages: { [signature.id]: signature, }, + supportedChainIds: { + timestamp: 0, + data: [], + }, }, }); diff --git a/ui/selectors/assets.ts b/ui/selectors/assets.ts index 8e94c3f207c6..7d02165a81bf 100644 --- a/ui/selectors/assets.ts +++ b/ui/selectors/assets.ts @@ -54,6 +54,7 @@ import { getSelectedAccountTokensAcrossChains, getTokensAcrossChainsByAccountAddressSelector, getEnabledNetworks, + getSupportedChainIds, } from './selectors'; import { getSelectedMultichainNetworkConfiguration } from './multichain/networks'; import { getInternalAccountBySelectedAccountGroupAndCaip } from './multichain-accounts/account-tree'; @@ -634,8 +635,9 @@ const selectTokenBalancesStateForBalances = createSelector( * Exposes market data (rates) for core balance computations. */ const selectTokenRatesStateForBalances = createSelector( - [getMarketData], - (marketData) => ({ + [getMarketData, getSupportedChainIds], + (marketData, supportedChainIds) => ({ + supportedChainIds, marketData, }), ); From b65392885be5c3905d126c74c198131d9ebd22cb Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Fri, 31 Oct 2025 12:47:16 +0100 Subject: [PATCH 04/24] fix: test --- test/data/mock-state.json | 2274 +++++++++++++++++++------------------ 1 file changed, 1139 insertions(+), 1135 deletions(-) diff --git a/test/data/mock-state.json b/test/data/mock-state.json index d0076293f3e6..2be1f06401e2 100644 --- a/test/data/mock-state.json +++ b/test/data/mock-state.json @@ -60,609 +60,588 @@ } }, "metamask": { - "allTokens": {}, - "enableEnforcedSimulations": true, - "enableEnforcedSimulationsForTransactions": {}, - "enforcedSimulationsSlippage": 10, - "enforcedSimulationsSlippageForTransactions": {}, - "tokenBalances": {}, - "use4ByteResolution": true, - "ipfsGateway": "dweb.link", - "dismissSeedBackUpReminder": false, - "usePhishDetect": true, - "useMultiAccountBalanceChecker": false, - "participateInMetaMetrics": false, - "gasEstimateType": "fee-market", - "showBetaHeader": false, - "isUpdateAvailable": false, - "updateModalLastDismissedAt": null, - "lastUpdatedAt": null, - "subscriptions": [], - "trialedProducts": [], - "gasFeeEstimatesByChainId": { - "0x5": { - "gasEstimateType": "fee-market", - "gasFeeEstimates": { - "low": { - "minWaitTimeEstimate": 180000, - "maxWaitTimeEstimate": 300000, - "suggestedMaxPriorityFeePerGas": "3", - "suggestedMaxFeePerGas": "53" - }, - "medium": { - "minWaitTimeEstimate": 15000, - "maxWaitTimeEstimate": 60000, - "suggestedMaxPriorityFeePerGas": "7", - "suggestedMaxFeePerGas": "70" - }, - "high": { - "minWaitTimeEstimate": 0, - "maxWaitTimeEstimate": 15000, - "suggestedMaxPriorityFeePerGas": "10", - "suggestedMaxFeePerGas": "100" - }, - "estimatedBaseFee": "50", - "historicalBaseFeeRange": ["28.533098435", "70.351148354"], - "baseFeeTrend": "up", - "latestPriorityFeeRange": ["1", "40"], - "historicalPriorityFeeRange": ["0.1458417", "700.156384646"], - "priorityFeeTrend": "down", - "networkCongestion": 0.90625 - } - } - }, - "gasFeeEstimates": { - "low": { - "minWaitTimeEstimate": 180000, - "maxWaitTimeEstimate": 300000, - "suggestedMaxPriorityFeePerGas": "3", - "suggestedMaxFeePerGas": "53" - }, - "medium": { - "minWaitTimeEstimate": 15000, - "maxWaitTimeEstimate": 60000, - "suggestedMaxPriorityFeePerGas": "7", - "suggestedMaxFeePerGas": "70" - }, - "high": { - "minWaitTimeEstimate": 0, - "maxWaitTimeEstimate": 15000, - "suggestedMaxPriorityFeePerGas": "10", - "suggestedMaxFeePerGas": "100" - }, - "estimatedBaseFee": "50", - "historicalBaseFeeRange": ["28.533098435", "70.351148354"], - "baseFeeTrend": "up", - "latestPriorityFeeRange": ["1", "40"], - "historicalPriorityFeeRange": ["0.1458417", "700.156384646"], - "priorityFeeTrend": "down", - "networkCongestion": 0.90625 - }, - "snaps": { - "npm:@metamask/test-snap-bip44": { - "id": "npm:@metamask/test-snap-bip44", - "origin": "npm:@metamask/test-snap-bip44", - "version": "5.1.2", - "iconUrl": null, - "initialPermissions": { - "endowment:ethereum-provider": {} - }, - "manifest": { - "description": "An example Snap that signs messages using BLS.", - "proposedName": "BIP-44 Test Snap", - "repository": { - "type": "git", - "url": "https://github.com/MetaMask/test-snaps.git" - }, - "source": { - "location": { - "npm": { - "filePath": "dist/bundle.js", - "packageName": "@metamask/test-snap-bip44", - "registry": "https://registry.npmjs.org" + "accountGroupsMetadata": {}, + "accountTree": { + "selectedAccountGroup": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0", + "wallets": { + "entropy:01JKAF3DSGM3AB87EM9N0K41AJ": { + "id": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ", + "type": "entropy", + "groups": { + "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0": { + "id": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0", + "type": "multichain-account", + "accounts": [ + "cf8dace4-9439-4bd4-b3a8-88c821c8fcb3", + "07c2cfec-36c9-46c4-8115-3836d3ac9047" + ], + "metadata": { + "name": "Account 1", + "entropy": { + "groupIndex": 0 + }, + "hidden": false, + "pinned": false } - }, - "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + } }, - "version": "5.1.2" - }, - "versionHistory": [ - { - "date": 1680686075921, - "origin": "https://metamask.github.io", - "version": "5.1.2" + "metadata": { + "name": "Wallet 1", + "entropy": { + "id": "01JKAF3DSGM3AB87EM9N0K41AJ" + } } - ] - }, - "npm:@metamask/test-snap-bip32": { - "id": "npm:@metamask/test-snap-bip32", - "origin": "npm:@metamask/test-snap-bip32", - "version": "5.1.2", - "iconUrl": null, - "initialPermissions": { - "endowment:ethereum-provider": {} }, - "manifest": { - "description": "An example Snap that signs messages using BLS.", - "proposedName": "BIP-32 Test Snap", - "repository": { - "type": "git", - "url": "https://github.com/MetaMask/test-snaps.git" - }, - "source": { - "location": { - "npm": { - "filePath": "dist/bundle.js", - "packageName": "@metamask/test-snap-bip32", - "registry": "https://registry.npmjs.org" + "entropy:01JKAF3PJ247KAM6C03G5Q0NP8": { + "id": "entropy:01JKAF3PJ247KAM6C03G5Q0NP8", + "type": "entropy", + "groups": { + "entropy:01JKAF3PJ247KAM6C03G5Q0NP8/0": { + "id": "entropy:01JKAF3PJ247KAM6C03G5Q0NP8/0", + "type": "multichain-account", + "accounts": ["784225f4-d30b-4e77-a900-c8bbce735b88"], + "metadata": { + "name": "Account 2", + "hidden": false, + "pinned": false, + "entropy": { + "groupIndex": 0 + } } - }, - "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + } }, - "version": "5.1.2" - }, - "versionHistory": [ - { - "date": 1680686075921, - "origin": "https://metamask.github.io", - "version": "5.1.2" + "metadata": { + "name": "Wallet 2", + "entropy": { + "id": "01JKAF3PJ247KAM6C03G5Q0NP8" + } } - ] - }, - "npm:@metamask/test-snap-getEntropy": { - "id": "npm:@metamask/test-snap-getEntropy", - "origin": "npm:@metamask/test-snap-getEntropy", - "version": "5.1.2", - "iconUrl": null, - "initialPermissions": { - "endowment:ethereum-provider": {} }, - "manifest": { - "description": "An example Snap that can derive snap specific entropy.", - "proposedName": "Get Entropy Test Snap", - "repository": { - "type": "git", - "url": "https://github.com/MetaMask/test-snaps.git" - }, - "source": { - "location": { - "npm": { - "filePath": "dist/bundle.js", - "packageName": "@metamask/test-snap-getEntropy", - "registry": "https://registry.npmjs.org" + "keyring:Ledger Hardware": { + "id": "keyring:Ledger Hardware", + "type": "keyring", + "groups": { + "keyring:Ledger Hardware/0xc42edfcc21ed14dda456aa0756c153f7985d8813": { + "id": "keyring:Ledger Hardware/0xc42edfcc21ed14dda456aa0756c153f7985d8813", + "type": "single-account", + "accounts": ["15e69915-2a1a-4019-93b3-916e11fd432f"], + "metadata": { + "name": "Ledger Account 1", + "hidden": false, + "pinned": false } - }, - "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + } }, - "version": "5.1.2" - }, - "versionHistory": [ - { - "date": 1680686075921, - "origin": "https://metamask.github.io", - "version": "5.1.2" + "metadata": { + "name": "Ledger Hardware", + "keyring": { + "type": "Ledger Hardware" + } } - ] - }, - "npm:@metamask/test-snap-networkAccess": { - "id": "npm:@metamask/test-snap-networkAccess", - "origin": "npm:@metamask/test-snap-networkAccess", - "version": "5.1.2", - "iconUrl": null, - "initialPermissions": { - "endowment:ethereum-provider": {} }, - "manifest": { - "description": "An example Snap that has network access.", - "proposedName": "Network Access Test Snap", - "repository": { - "type": "git", - "url": "https://github.com/MetaMask/test-snaps.git" - }, - "source": { - "location": { - "npm": { - "filePath": "dist/bundle.js", - "packageName": "@metamask/test-snap-networkAccess", - "registry": "https://registry.npmjs.org" + "snap:local:custody:test": { + "id": "snap:local:custody:test", + "type": "snap", + "groups": { + "snap:local:custody:test/0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281": { + "id": "snap:local:custody:test/0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281", + "type": "single-account", + "accounts": ["694225f4-d30b-4e77-a900-c8bbce735b42"], + "metadata": { + "name": "Another Snap Account 1", + "hidden": false, + "pinned": false } - }, - "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + } }, - "version": "5.1.2" - }, - "versionHistory": [ - { - "date": 1680686075921, - "origin": "https://metamask.github.io", - "version": "5.1.2" + "metadata": { + "name": "Custody test", + "snap": { + "id": "local:custody:test" + } } - ] - }, - "npm:@metamask/test-snap-wasm": { - "id": "npm:@metamask/test-snap-wasm", - "origin": "npm:@metamask/test-snap-wasm", - "version": "5.1.2", - "iconUrl": null, - "initialPermissions": { - "endowment:ethereum-provider": {} }, - "manifest": { - "description": "An example Snap that has WASM access.", - "proposedName": "WASM Test Snap", - "repository": { - "type": "git", - "url": "https://github.com/MetaMask/test-snaps.git" - }, - "source": { - "location": { - "npm": { - "filePath": "dist/bundle.js", - "packageName": "@metamask/test-snap-wasm", - "registry": "https://registry.npmjs.org" + "snap:local:snap-id": { + "id": "snap:local:snap-id", + "type": "snap", + "groups": { + "snap:local:snap-id/0xb552685e3d2790efd64a175b00d51f02cdafee5d": { + "id": "snap:local:snap-id/0xb552685e3d2790efd64a175b00d51f02cdafee5d", + "type": "single-account", + "accounts": ["c3deeb99-ba0d-4a4e-a0aa-033fc1f79ae3"], + "metadata": { + "name": "Snap Account 1", + "hidden": false, + "pinned": false } - }, - "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + } }, - "version": "5.1.2" - }, - "versionHistory": [ - { - "date": 1680686075921, - "origin": "https://metamask.github.io", - "version": "5.1.2" + "metadata": { + "name": "Snap: snap-name", + "snap": { + "id": "local:snap-id" + } } - ] + } + } + }, + "accountWalletsMetadata": {}, + "accounts": { + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { + "balance": "0x346ba7725f412cbfdb", + "address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc" }, - "npm:@metamask/test-snap-notify": { - "id": "npm:@metamask/test-snap-notify", - "origin": "npm:@metamask/test-snap-notify", - "version": "5.1.2", - "iconUrl": null, - "initialPermissions": { - "endowment:ethereum-provider": {} + "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { + "address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", + "balance": "0x0" + }, + "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { + "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", + "balance": "0x0" + }, + "0xeb9e64b93097bc15f01f13eae97015c57ab64823": { + "address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823", + "balance": "0x0" + }, + "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281": { + "address": "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281", + "balance": "0x0" + }, + "0xb552685e3d2790efd64a175b00d51f02cdafee5d": { + "address": "0xb552685e3d2790efd64a175b00d51f02cdafee5d", + "balance": "0x0" + } + }, + "accountsAssets": {}, + "accountsByChainId": { + "0x5": { + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { + "balance": "0x346ba7725f412cbfdb", + "address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc" }, - "manifest": { - "description": "An example Snap that can send notifications.", - "proposedName": "Notification Test Snap", - "repository": { - "type": "git", - "url": "https://github.com/MetaMask/test-snaps.git" - }, - "source": { - "location": { - "npm": { - "filePath": "dist/bundle.js", - "packageName": "@metamask/test-snap-notify", - "registry": "https://registry.npmjs.org" - } - }, - "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" - }, - "version": "5.1.2" + "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { + "address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", + "balance": "0x0" }, - "versionHistory": [ + "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { + "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", + "balance": "0x0" + }, + "0xeb9e64b93097bc15f01f13eae97015c57ab64823": { + "address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823", + "balance": "0x0" + }, + "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281": { + "address": "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281", + "balance": "0x0" + }, + "0xb552685e3d2790efd64a175b00d51f02cdafee5d": { + "address": "0xb552685e3d2790efd64a175b00d51f02cdafee5d", + "balance": "0x0" + } + } + }, + "addSnapAccountEnabled": false, + "addressBook": { + "0x5": { + "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { + "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", + "chainId": "0x5", + "isEns": false, + "memo": "", + "name": "Address Book Account 1" + } + } + }, + "advancedGasFee": { + "0x5": { + "maxBaseFee": "75", + "priorityFee": "2" + } + }, + "alertEnabledness": { + "unconnectedAccount": true + }, + "allIgnoredAssets": {}, + "allNftContracts": { + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { + "0x1": [ { - "date": 1680686075921, - "origin": "https://metamask.github.io", - "version": "5.1.2" + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "description": null, + "name": "Munk Generator", + "logo": null, + "symbol": "MUNK", + "assetContractType": "non-fungible", + "createdDate": null, + "schemaName": "ERC721", + "externalLink": null + } + ], + "0x89": [ + { + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "description": null, + "name": "Munk Generator", + "logo": null, + "symbol": "MUNK", + "assetContractType": "non-fungible", + "createdDate": null, + "schemaName": "ERC721", + "externalLink": null + } + ], + "0xaa36a7": [ + { + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "description": null, + "name": "Munk Generator", + "logo": null, + "symbol": "MUNK", + "assetContractType": "non-fungible", + "createdDate": null, + "schemaName": "ERC721", + "externalLink": null } - ] - }, - "npm:@metamask/test-snap-dialog": { - "id": "npm:@metamask/test-snap-dialog", - "origin": "npm:@metamask/test-snap-dialog", - "version": "5.1.2", - "iconUrl": null, - "initialPermissions": { - "endowment:ethereum-provider": {} - }, - "manifest": { - "description": "An example Snap that can send dialog prompts.", - "proposedName": "Dialog Test Snap", - "repository": { - "type": "git", - "url": "https://github.com/MetaMask/test-snaps.git" - }, - "source": { - "location": { - "npm": { - "filePath": "dist/bundle.js", - "packageName": "@metamask/test-snap-dialog", - "registry": "https://registry.npmjs.org" - } - }, - "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + ], + "0x5": [ + { + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "description": null, + "name": "Munk Generator", + "logo": null, + "symbol": "MUNK", + "assetContractType": "non-fungible", + "createdDate": null, + "schemaName": "ERC721", + "externalLink": null }, - "version": "5.1.2" - }, - "versionHistory": [ { - "date": 1680686075921, - "origin": "https://metamask.github.io", - "version": "5.1.2" + "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", + "description": null, + "name": "Punk Generator", + "logo": null, + "symbol": "PUNK", + "assetContractType": "non-fungible", + "createdDate": null, + "schemaName": "ERC1155", + "externalLink": null } - ] - }, - "local:snap-id": { - "id": "local:snap-id", - "origin": "local:snap-id", - "version": "5.1.2", - "iconUrl": null, - "initialPermissions": {}, - "manifest": { - "description": "mock snap description", - "proposedName": "mock snap name", - "repository": { - "type": "git", - "url": "https://127.0.0.1" - }, - "source": { - "location": { - "npm": { - "filePath": "dist/bundle.js", - "packageName": "@metamask/test-snap-dialog", - "registry": "https://registry.npmjs.org" - } - }, - "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" - }, - "version": "5.1.2" - }, - "versionHistory": [ + ], + "0x99": [ { - "date": 1680686075921, - "origin": "https://metamask.github.io", - "version": "5.1.2" + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "description": null, + "name": "Munk Generator", + "logo": null, + "symbol": "MUNK", + "assetContractType": "non-fungible", + "createdDate": null, + "schemaName": "ERC721", + "externalLink": null } ] } }, - "preferences": { - "hideZeroBalanceTokens": false, - "petnamesEnabled": false, - "showExtensionInFullSizeView": false, - "showFiatInTestnets": false, - "showNativeTokenAsMainBalance": true, - "showTestNetworks": true, - "smartTransactionsOptInStatus": true, - "tokenNetworkFilter": {}, - "tokenSortConfig": { - "key": "tokenFiatAmount", - "order": "dsc", - "sortCallback": "stringNumeric" - } - }, - "ensResolutionsByAddress": {}, - "isUnlocked": true, - "alertEnabledness": { - "unconnectedAccount": true - }, - "featureFlags": {}, - "remoteFeatureFlags": {}, - "networkConfigurationsByChainId": { - "0x1": { - "chainId": "0x1", - "name": "Custom Mainnet RPC", - "nativeCurrency": "ETH", - "defaultRpcEndpointIndex": 0, - "ticker": "ETH", - "rpcEndpoints": [ + "allNfts": { + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { + "0x1": [ { - "type": "custom", - "url": "https://testrpc.com", - "networkClientId": "testNetworkConfigurationId" + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "tokenId": "1", + "name": "MUNK #1", + "description": null, + "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", + "standard": "ERC721" } ], - "blockExplorerUrls": [] - }, - "0x5": { - "chainId": "0x5", - "name": "Goerli", - "nativeCurrency": "ETH", - "defaultRpcEndpointIndex": 0, - "ticker": "ETH", - "rpcEndpoints": [ + "0x89": [ { - "type": "custom", - "url": "https://goerli.com", - "networkClientId": "goerli" + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "tokenId": "1", + "name": "MUNK #1", + "description": null, + "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", + "standard": "ERC721" } ], - "blockExplorerUrls": [] - }, - "0xaa36a7": { - "chainId": "0xaa36a7", - "name": "Sepolia", - "nativeCurrency": "ETH", - "defaultRpcEndpointIndex": 0, - "ticker": "ETH", - "rpcEndpoints": [ + "0xaa36a7": [ + { + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "tokenId": "1", + "name": "MUNK #1", + "description": null, + "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", + "standard": "ERC721" + } + ], + "0x5": [ + { + "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", + "tokenId": "58076532811975507823669075598676816378162417803895263482849101575514658701313", + "name": "Punk #4", + "creator": { + "user": { + "username": null + }, + "profile_img_url": null, + "address": "0x806627172af48bd5b0765d3449a7def80d6576ff", + "config": "" + }, + "description": "Red Mohawk bam!", + "image": "https://lh3.googleusercontent.com/BdxvLseXcfl57BiuQcQYdJ64v-aI8din7WPk0Pgo3qQFhAUH-B6i-dCqqc_mCkRIzULmwzwecnohLhrcH8A9mpWIZqA7ygc52Sr81hE", + "standard": "ERC1155" + }, + { + "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", + "tokenId": "58076532811975507823669075598676816378162417803895263482849101574415147073537", + "name": "Punk #3", + "creator": { + "user": { + "username": null + }, + "profile_img_url": null, + "address": "0x806627172af48bd5b0765d3449a7def80d6576ff", + "config": "" + }, + "description": "Clown PUNK!!!", + "image": "https://lh3.googleusercontent.com/H7VrxaalZv4PF1B8U7ADuc8AfuqTVyzmMEDQ5OXKlx0Tqu5XiwsKYj4j_pAF6wUJjLMQbSN_0n3fuj84lNyRhFW9hyrxqDfY1IiQEQ", + "standard": "ERC1155" + }, + { + "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", + "tokenId": "58076532811975507823669075598676816378162417803895263482849101573315635445761", + "name": "Punk #2", + "creator": { + "user": { + "username": null + }, + "profile_img_url": null, + "address": "0x806627172af48bd5b0765d3449a7def80d6576ff", + "config": "" + }, + "description": "Got glasses and black hair!", + "image": "https://lh3.googleusercontent.com/CHNTSlKB_Gob-iwTq8jcag6XwBkTqBMLt_vEKeBv18Q4AoPFAEPceqK6mRzkad2s5djx6CT5zbGQwDy81WwtNzViK5dQbG60uAWv", + "standard": "ERC1155" + }, + { + "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", + "tokenId": "58076532811975507823669075598676816378162417803895263482849101572216123817985", + "name": "Punk #1", + "creator": { + "user": { + "username": null + }, + "profile_img_url": null, + "address": "0x806627172af48bd5b0765d3449a7def80d6576ff", + "config": "" + }, + "image": "https://lh3.googleusercontent.com/4jfPi-nQNWCUXD5qVNVWX7LX2UufU_elEJcvICFlsTdcBXv70asnDEOlI8oKECZxlXq1wseeIXMwmP5tLyOUxMKk", + "standard": "ERC1155" + }, + { + "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", + "tokenId": "58076532811975507823669075598676816378162417803895263482849101571116612190209", + "name": "Punk #4651", + "creator": { + "user": { + "username": null + }, + "profile_img_url": null, + "address": "0x806627172af48bd5b0765d3449a7def80d6576ff", + "config": "" + }, + "image": "https://lh3.googleusercontent.com/BdxvLseXcfl57BiuQcQYdJ64v-aI8din7WPk0Pgo3qQFhAUH-B6i-dCqqc_mCkRIzULmwzwecnohLhrcH8A9mpWIZqA7ygc52Sr81hE", + "standard": "ERC1155" + }, { - "type": "custom", - "url": "https://sepolia.com", - "networkClientId": "sepolia" - } - ], - "blockExplorerUrls": [] - }, - "0x38": { - "blockExplorerUrls": ["https://bscscan.com/"], - "chainId": "0x38", - "defaultBlockExplorerUrlIndex": 0, - "defaultRpcEndpointIndex": 0, - "lastUpdatedAt": 1738689643708, - "name": "BNB Chain", - "nativeCurrency": "BNB", - "rpcEndpoints": [ + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "tokenId": "1", + "name": "MUNK #1", + "description": null, + "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", + "standard": "ERC721", + "lastSale": { + "total_price": "4900000000000000", + "event_timestamp": "2023-01-18T21:51:23", + "payment_token": { + "symbol": "ETH" + } + } + }, { - "networkClientId": "ae8c8c36-7478-42bf-9b1a-610c81380000", - "type": "custom", - "url": "https://bsc-dataseed.binance.org/" - } - ] - }, - "0x89": { - "blockExplorerUrls": ["https://polygonscan.com/"], - "chainId": "0x89", - "defaultBlockExplorerUrlIndex": 0, - "defaultRpcEndpointIndex": 0, - "lastUpdatedAt": 1738689655105, - "name": "Polygon", - "nativeCurrency": "POL", - "rpcEndpoints": [ + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "tokenId": "2", + "name": "MUNK #2", + "description": null, + "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", + "standard": "ERC721" + }, { - "networkClientId": "b46d8e79-ebf2-4fdc-8cb9-45610e990000", - "type": "custom", - "url": "https://polygon-mainnet.infura.io/v3/" + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "tokenId": "3", + "name": "MUNK #3", + "description": null, + "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", + "standard": "ERC721" } - ] - }, - "0xa4b1": { - "blockExplorerUrls": ["https://explorer.arbitrum.io"], - "chainId": "0xa4b1", - "defaultBlockExplorerUrlIndex": 0, - "defaultRpcEndpointIndex": 0, - "lastUpdatedAt": 1738689624782, - "name": "Arbitrum", - "nativeCurrency": "ETH", - "rpcEndpoints": [ + ], + "0x99": [ { - "networkClientId": "100849a6-a63c-4ebd-9bbe-0c84134d0000", - "type": "custom", - "url": "https://arbitrum-mainnet.infura.io/v3/" + "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", + "tokenId": "1", + "name": "MUNK #1", + "description": null, + "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", + "standard": "ERC721" } ] } }, - "accountTree": { - "selectedAccountGroup": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0", - "wallets": { - "entropy:01JKAF3DSGM3AB87EM9N0K41AJ": { - "id": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ", - "type": "entropy", - "groups": { - "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0": { - "id": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0", - "type": "multichain-account", - "accounts": [ - "cf8dace4-9439-4bd4-b3a8-88c821c8fcb3", - "07c2cfec-36c9-46c4-8115-3836d3ac9047" - ], - "metadata": { - "name": "Account 1", - "entropy": { - "groupIndex": 0 - }, - "hidden": false, - "pinned": false - } - } - }, - "metadata": { - "name": "Wallet 1", - "entropy": { - "id": "01JKAF3DSGM3AB87EM9N0K41AJ" - } - } - }, - "entropy:01JKAF3PJ247KAM6C03G5Q0NP8": { - "id": "entropy:01JKAF3PJ247KAM6C03G5Q0NP8", - "type": "entropy", - "groups": { - "entropy:01JKAF3PJ247KAM6C03G5Q0NP8/0": { - "id": "entropy:01JKAF3PJ247KAM6C03G5Q0NP8/0", - "type": "multichain-account", - "accounts": ["784225f4-d30b-4e77-a900-c8bbce735b88"], - "metadata": { - "name": "Account 2", - "hidden": false, - "pinned": false, - "entropy": { - "groupIndex": 0 - } - } - } - }, + "allTokens": {}, + "assetsMetadata": {}, + "balances": {}, + "coverageResults": {}, + "currencyRates": { + "ETH": { + "conversionRate": 556.12 + } + }, + "currentCurrency": "usd", + "database": { + "verifiedSnaps": { + "npm:@metamask/test-snap-bip44": { + "id": "npm:@metamask/test-snap-bip44", "metadata": { - "name": "Wallet 2", - "entropy": { - "id": "01JKAF3PJ247KAM6C03G5Q0NP8" - } - } - }, - "keyring:Ledger Hardware": { - "id": "keyring:Ledger Hardware", - "type": "keyring", - "groups": { - "keyring:Ledger Hardware/0xc42edfcc21ed14dda456aa0756c153f7985d8813": { - "id": "keyring:Ledger Hardware/0xc42edfcc21ed14dda456aa0756c153f7985d8813", - "type": "single-account", - "accounts": ["15e69915-2a1a-4019-93b3-916e11fd432f"], - "metadata": { - "name": "Ledger Account 1", - "hidden": false, - "pinned": false + "name": "BIP-44", + "author": { + "name": "Consensys", + "website": "https://consensys.io/" + }, + "website": "https://snaps.consensys.io/", + "summary": "An example Snap that signs messages using BLS.", + "description": "An example Snap that signs messages using BLS.", + "audits": [ + { + "auditor": "Consensys Diligence", + "report": "https://consensys.io/diligence/audits/" } - } + ], + "category": "interoperability", + "support": { + "contact": "https://github.com/MetaMask" + }, + "sourceCode": "https://github.com/MetaMask/test-snaps" }, - "metadata": { - "name": "Ledger Hardware", - "keyring": { - "type": "Ledger Hardware" + "versions": { + "5.1.2": { + "checksum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + }, + "5.1.3": { + "checksum": "21k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + }, + "6.0.0": { + "checksum": "31k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" } } - }, - "snap:local:custody:test": { - "id": "snap:local:custody:test", - "type": "snap", - "groups": { - "snap:local:custody:test/0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281": { - "id": "snap:local:custody:test/0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281", - "type": "single-account", - "accounts": ["694225f4-d30b-4e77-a900-c8bbce735b42"], - "metadata": { - "name": "Another Snap Account 1", - "hidden": false, - "pinned": false - } - } + } + } + }, + "delegations": {}, + "dismissSeedBackUpReminder": false, + "enableEnforcedSimulations": true, + "enableEnforcedSimulationsForTransactions": {}, + "enabledNetworkMap": {}, + "enforcedSimulationsSlippage": 10, + "enforcedSimulationsSlippageForTransactions": {}, + "ensResolutionsByAddress": {}, + "featureFlags": {}, + "frequentRpcListDetail": [], + "gasEstimateType": "fee-market", + "gasFeeEstimates": { + "low": { + "minWaitTimeEstimate": 180000, + "maxWaitTimeEstimate": 300000, + "suggestedMaxPriorityFeePerGas": "3", + "suggestedMaxFeePerGas": "53" + }, + "medium": { + "minWaitTimeEstimate": 15000, + "maxWaitTimeEstimate": 60000, + "suggestedMaxPriorityFeePerGas": "7", + "suggestedMaxFeePerGas": "70" + }, + "high": { + "minWaitTimeEstimate": 0, + "maxWaitTimeEstimate": 15000, + "suggestedMaxPriorityFeePerGas": "10", + "suggestedMaxFeePerGas": "100" + }, + "estimatedBaseFee": "50", + "historicalBaseFeeRange": ["28.533098435", "70.351148354"], + "baseFeeTrend": "up", + "latestPriorityFeeRange": ["1", "40"], + "historicalPriorityFeeRange": ["0.1458417", "700.156384646"], + "priorityFeeTrend": "down", + "networkCongestion": 0.90625 + }, + "gasFeeEstimatesByChainId": { + "0x5": { + "gasEstimateType": "fee-market", + "gasFeeEstimates": { + "low": { + "minWaitTimeEstimate": 180000, + "maxWaitTimeEstimate": 300000, + "suggestedMaxPriorityFeePerGas": "3", + "suggestedMaxFeePerGas": "53" }, - "metadata": { - "name": "Custody test", - "snap": { - "id": "local:custody:test" - } - } - }, - "snap:local:snap-id": { - "id": "snap:local:snap-id", - "type": "snap", - "groups": { - "snap:local:snap-id/0xb552685e3d2790efd64a175b00d51f02cdafee5d": { - "id": "snap:local:snap-id/0xb552685e3d2790efd64a175b00d51f02cdafee5d", - "type": "single-account", - "accounts": ["c3deeb99-ba0d-4a4e-a0aa-033fc1f79ae3"], - "metadata": { - "name": "Snap Account 1", - "hidden": false, - "pinned": false - } - } + "medium": { + "minWaitTimeEstimate": 15000, + "maxWaitTimeEstimate": 60000, + "suggestedMaxPriorityFeePerGas": "7", + "suggestedMaxFeePerGas": "70" }, - "metadata": { - "name": "Snap: snap-name", - "snap": { - "id": "local:snap-id" - } - } + "high": { + "minWaitTimeEstimate": 0, + "maxWaitTimeEstimate": 15000, + "suggestedMaxPriorityFeePerGas": "10", + "suggestedMaxFeePerGas": "100" + }, + "estimatedBaseFee": "50", + "historicalBaseFeeRange": ["28.533098435", "70.351148354"], + "baseFeeTrend": "up", + "latestPriorityFeeRange": ["1", "40"], + "historicalPriorityFeeRange": ["0.1458417", "700.156384646"], + "priorityFeeTrend": "down", + "networkCongestion": 0.90625 } } }, - "isAccountTreeSyncingInProgress": false, + "gatorPermissionsMapSerialized": "{\"native-token-stream\":{},\"native-token-periodic\":{},\"erc20-token-stream\":{},\"erc20-token-periodic\":{},\"other\":{}}", "hasAccountTreeSyncingSyncedAtLeastOnce": false, - "accountGroupsMetadata": {}, - "accountWalletsMetadata": {}, + "hiddenAccountList": [], + "identities": { + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { + "address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", + "name": "Test Account" + }, + "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { + "address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", + "name": "Test Account 2" + }, + "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { + "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", + "name": "Test Ledger 1" + }, + "0xeb9e64b93097bc15f01f13eae97015c57ab64823": { + "name": "Test Account 3", + "address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823" + }, + "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281": { + "name": "Custody test", + "address": "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281" + } + }, "internalAccounts": { "accounts": { "cf8dace4-9439-4bd4-b3a8-88c821c8fcb3": { @@ -789,228 +768,76 @@ "enabled": true, "id": "local:snap-id", "name": "snap-name" - } - }, - "options": {}, - "methods": [ - "personal_sign", - "eth_signTransaction", - "eth_signTypedData_v1", - "eth_signTypedData_v3", - "eth_signTypedData_v4" - ], - "scopes": ["eip155:0"], - "type": "eip155:eoa" - } - }, - "selectedAccount": "cf8dace4-9439-4bd4-b3a8-88c821c8fcb3" - }, - "balances": {}, - "keyrings": [ - { - "type": "HD Key Tree", - "accounts": [ - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", - "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b" - ], - "metadata": { - "id": "01JKAF3DSGM3AB87EM9N0K41AJ", - "name": "" - } - }, - { - "type": "Ledger Hardware", - "accounts": ["0xc42edfcc21ed14dda456aa0756c153f7985d8813"], - "metadata": { - "id": "01JKAF3KP7VPAG0YXEDTDRB6ZV", - "name": "" - } - }, - { - "type": "Simple Key Pair", - "accounts": ["0xeb9e64b93097bc15f01f13eae97015c57ab64823"], - "metadata": { - "id": "01JKAF3PJ247KAM6C03G5Q0NP8", - "name": "" - } - }, - { - "type": "Snap Keyring", - "accounts": ["0xb552685e3d2790efd64a175b00d51f02cdafee5d"], - "metadata": { - "id": "01JKAF3SSWRQK818R830GE8PHX", - "name": "" - } - }, - { - "type": "Custody test", - "accounts": ["0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281"], - "metadata": { - "id": "01JKAF3WYGWF7JX6PC4YYVSK2Q", - "name": "" - } - } - ], - "identities": { - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", - "name": "Test Account" - }, - "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { - "address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", - "name": "Test Account 2" - }, - "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { - "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", - "name": "Test Ledger 1" - }, - "0xeb9e64b93097bc15f01f13eae97015c57ab64823": { - "name": "Test Account 3", - "address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823" - }, - "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281": { - "name": "Custody test", - "address": "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281" - } - }, - "selectedNetworkClientId": "goerli", - "networksMetadata": { - "goerli": { - "EIPS": { - "1559": true - }, - "status": "available" - } - }, - "multichainNetworkConfigurationsByChainId": { - "bip122:000000000019d6689c085ae165831e93": { - "chainId": "bip122:000000000019d6689c085ae165831e93", - "name": "Bitcoin", - "nativeCurrency": "bip122:000000000019d6689c085ae165831e93/slip44:0", - "isEvm": false - }, - "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp": { - "chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", - "name": "Solana", - "nativeCurrency": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501", - "isEvm": false - } - }, - "networksWithTransactionActivity": { - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "namespace": "eip155", - "activeChain": ["0x5"] - }, - "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp": { - "namespace": "solana", - "activeChain": [] - } - }, - "selectedMultichainNetworkChainId": "bip122:000000000019d6689c085ae165831e93", - "isEvmSelected": true, - "frequentRpcListDetail": [], - "subjectMetadata": { - "npm:@metamask/test-snap-bip44": { - "name": "@metamask/test-snap-bip44", - "version": "1.2.3", - "subjectType": "snap" - }, - "https://snaps.metamask.io": { - "extensionId": null, - "iconUrl": "https://snaps.metamask.io/favicon-32x32.png?v=96e4834dade94988977ec34e50a62b84", - "name": "MetaMask Snaps Directory", - "origin": "https://snaps.metamask.io", - "subjectType": "website" - } - }, - "snapRegistryList": { - "a51ea3a8-f1b0-4613-9440-b80e2236713b": { - "id": "a51ea3a8-f1b0-4613-9440-b80e2236713b", - "snapId": "npm:@metamask/snap-simple-keyring", - "iconUrl": "", - "snapTitle": "Metamask Simple Keyring", - "snapSlug": "Secure your account with MetaMask Mobile", - "snapDescription": "A simple private key is a randomly generated string of characters that is used to sign transactions. This private key is stored securely within this snap.", - "tags": ["EOA"], - "developer": "Metamask", - "website": "https://www.consensys.io/", - "auditUrls": ["auditUrl1", "auditUrl2"], - "version": "1.1.6", - "lastUpdated": "September 26, 2024" - } - }, - "accountsByChainId": { - "0x5": { - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "balance": "0x346ba7725f412cbfdb", - "address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc" - }, - "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { - "address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", - "balance": "0x0" - }, - "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { - "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", - "balance": "0x0" - }, - "0xeb9e64b93097bc15f01f13eae97015c57ab64823": { - "address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823", - "balance": "0x0" - }, - "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281": { - "address": "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281", - "balance": "0x0" - }, - "0xb552685e3d2790efd64a175b00d51f02cdafee5d": { - "address": "0xb552685e3d2790efd64a175b00d51f02cdafee5d", - "balance": "0x0" + } + }, + "options": {}, + "methods": [ + "personal_sign", + "eth_signTransaction", + "eth_signTypedData_v1", + "eth_signTypedData_v3", + "eth_signTypedData_v4" + ], + "scopes": ["eip155:0"], + "type": "eip155:eoa" } - } - }, - "selectedAddress": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", - "accounts": { - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "balance": "0x346ba7725f412cbfdb", - "address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc" - }, - "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { - "address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", - "balance": "0x0" - }, - "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { - "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", - "balance": "0x0" }, - "0xeb9e64b93097bc15f01f13eae97015c57ab64823": { - "address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823", - "balance": "0x0" + "selectedAccount": "cf8dace4-9439-4bd4-b3a8-88c821c8fcb3" + }, + "ipfsGateway": "dweb.link", + "isAccountTreeSyncingInProgress": false, + "isEvmSelected": true, + "isFetchingGatorPermissions": false, + "isGatorPermissionsEnabled": false, + "isUnlocked": true, + "isUpdateAvailable": false, + "isUpdatingGatorPermissions": false, + "keyrings": [ + { + "type": "HD Key Tree", + "accounts": [ + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", + "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b" + ], + "metadata": { + "id": "01JKAF3DSGM3AB87EM9N0K41AJ", + "name": "" + } }, - "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281": { - "address": "0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281", - "balance": "0x0" + { + "type": "Ledger Hardware", + "accounts": ["0xc42edfcc21ed14dda456aa0756c153f7985d8813"], + "metadata": { + "id": "01JKAF3KP7VPAG0YXEDTDRB6ZV", + "name": "" + } }, - "0xb552685e3d2790efd64a175b00d51f02cdafee5d": { - "address": "0xb552685e3d2790efd64a175b00d51f02cdafee5d", - "balance": "0x0" - } - }, - "tokens": [ { - "address": "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d", - "symbol": "TEST", - "decimals": "0" + "type": "Simple Key Pair", + "accounts": ["0xeb9e64b93097bc15f01f13eae97015c57ab64823"], + "metadata": { + "id": "01JKAF3PJ247KAM6C03G5Q0NP8", + "name": "" + } }, { - "address": "0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5", - "decimals": "8", - "symbol": "TEST2" + "type": "Snap Keyring", + "accounts": ["0xb552685e3d2790efd64a175b00d51f02cdafee5d"], + "metadata": { + "id": "01JKAF3SSWRQK818R830GE8PHX", + "name": "" + } }, { - "address": "0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4", - "symbol": "META", - "decimals": "18" + "type": "Custody test", + "accounts": ["0xca8f1F0245530118D0cf14a06b01Daf8f76Cf281"], + "metadata": { + "id": "01JKAF3WYGWF7JX6PC4YYVSK2Q", + "name": "" + } } ], + "lastUpdatedAt": null, "marketData": { "0x89": { "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d": { @@ -1079,288 +906,592 @@ } } }, - "ticker": "ETH", - "currentCurrency": "usd", - "currencyRates": { - "ETH": { - "conversionRate": 556.12 - } - }, - "addressBook": { - "0x5": { - "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { - "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", - "chainId": "0x5", - "isEns": false, - "memo": "", - "name": "Address Book Account 1" - } - } - }, - "unapprovedPersonalMsgs": {}, - "unapprovedPersonalMsgCount": 0, - "unapprovedDecryptMsgs": {}, - "unapprovedDecryptMsgCount": 0, - "unapprovedEncryptionPublicKeyMsgs": {}, - "unapprovedEncryptionPublicKeyMsgCount": 0, - "unapprovedTypedMessages": {}, - "unapprovedTypedMessagesCount": 0, - "useTokenDetection": true, - "useCurrencyRateCheck": true, - "useNftDetection": true, - "openSeaEnabled": true, - "orderedNetworkList": [], - "enabledNetworkMap": {}, - "pinnedAccountList": [], - "hiddenAccountList": [], - "advancedGasFee": { - "0x5": { - "maxBaseFee": "75", - "priorityFee": "2" - } - }, - "nftsDropdownState": { - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "0x5": { - "0x495f947276749Ce646f68AC8c248420045cb7b5e": false - } + "multichainNetworkConfigurationsByChainId": { + "bip122:000000000019d6689c085ae165831e93": { + "chainId": "bip122:000000000019d6689c085ae165831e93", + "name": "Bitcoin", + "nativeCurrency": "bip122:000000000019d6689c085ae165831e93/slip44:0", + "isEvm": false + }, + "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp": { + "chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", + "name": "Solana", + "nativeCurrency": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501", + "isEvm": false } }, - "allNftContracts": { - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "0x1": [ + "networkConfigurationsByChainId": { + "0x1": { + "chainId": "0x1", + "name": "Custom Mainnet RPC", + "nativeCurrency": "ETH", + "defaultRpcEndpointIndex": 0, + "ticker": "ETH", + "rpcEndpoints": [ { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "description": null, - "name": "Munk Generator", - "logo": null, - "symbol": "MUNK", - "assetContractType": "non-fungible", - "createdDate": null, - "schemaName": "ERC721", - "externalLink": null + "type": "custom", + "url": "https://testrpc.com", + "networkClientId": "testNetworkConfigurationId" } ], - "0x89": [ + "blockExplorerUrls": [] + }, + "0x5": { + "chainId": "0x5", + "name": "Goerli", + "nativeCurrency": "ETH", + "defaultRpcEndpointIndex": 0, + "ticker": "ETH", + "rpcEndpoints": [ { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "description": null, - "name": "Munk Generator", - "logo": null, - "symbol": "MUNK", - "assetContractType": "non-fungible", - "createdDate": null, - "schemaName": "ERC721", - "externalLink": null + "type": "custom", + "url": "https://goerli.com", + "networkClientId": "goerli" } ], - "0xaa36a7": [ + "blockExplorerUrls": [] + }, + "0xaa36a7": { + "chainId": "0xaa36a7", + "name": "Sepolia", + "nativeCurrency": "ETH", + "defaultRpcEndpointIndex": 0, + "ticker": "ETH", + "rpcEndpoints": [ { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "description": null, - "name": "Munk Generator", - "logo": null, - "symbol": "MUNK", - "assetContractType": "non-fungible", - "createdDate": null, - "schemaName": "ERC721", - "externalLink": null + "type": "custom", + "url": "https://sepolia.com", + "networkClientId": "sepolia" } ], - "0x5": [ + "blockExplorerUrls": [] + }, + "0x38": { + "blockExplorerUrls": ["https://bscscan.com/"], + "chainId": "0x38", + "defaultBlockExplorerUrlIndex": 0, + "defaultRpcEndpointIndex": 0, + "lastUpdatedAt": 1738689643708, + "name": "BNB Chain", + "nativeCurrency": "BNB", + "rpcEndpoints": [ { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "description": null, - "name": "Munk Generator", - "logo": null, - "symbol": "MUNK", - "assetContractType": "non-fungible", - "createdDate": null, - "schemaName": "ERC721", - "externalLink": null - }, + "networkClientId": "ae8c8c36-7478-42bf-9b1a-610c81380000", + "type": "custom", + "url": "https://bsc-dataseed.binance.org/" + } + ] + }, + "0x89": { + "blockExplorerUrls": ["https://polygonscan.com/"], + "chainId": "0x89", + "defaultBlockExplorerUrlIndex": 0, + "defaultRpcEndpointIndex": 0, + "lastUpdatedAt": 1738689655105, + "name": "Polygon", + "nativeCurrency": "POL", + "rpcEndpoints": [ { - "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", - "description": null, - "name": "Punk Generator", - "logo": null, - "symbol": "PUNK", - "assetContractType": "non-fungible", - "createdDate": null, - "schemaName": "ERC1155", - "externalLink": null + "networkClientId": "b46d8e79-ebf2-4fdc-8cb9-45610e990000", + "type": "custom", + "url": "https://polygon-mainnet.infura.io/v3/" } - ], - "0x99": [ + ] + }, + "0xa4b1": { + "blockExplorerUrls": ["https://explorer.arbitrum.io"], + "chainId": "0xa4b1", + "defaultBlockExplorerUrlIndex": 0, + "defaultRpcEndpointIndex": 0, + "lastUpdatedAt": 1738689624782, + "name": "Arbitrum", + "nativeCurrency": "ETH", + "rpcEndpoints": [ { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "description": null, - "name": "Munk Generator", - "logo": null, - "symbol": "MUNK", - "assetContractType": "non-fungible", - "createdDate": null, - "schemaName": "ERC721", - "externalLink": null + "networkClientId": "100849a6-a63c-4ebd-9bbe-0c84134d0000", + "type": "custom", + "url": "https://arbitrum-mainnet.infura.io/v3/" } ] } }, - "allNfts": { + "networkConnectionBanner": { + "status": "unknown" + }, + "networksMetadata": { + "goerli": { + "EIPS": { + "1559": true + }, + "status": "available" + } + }, + "networksWithTransactionActivity": { "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "0x1": [ - { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "tokenId": "1", - "name": "MUNK #1", - "description": null, - "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", - "standard": "ERC721" + "namespace": "eip155", + "activeChain": ["0x5"] + }, + "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp": { + "namespace": "solana", + "activeChain": [] + } + }, + "nftsDropdownState": { + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { + "0x5": { + "0x495f947276749Ce646f68AC8c248420045cb7b5e": false + } + } + }, + "openSeaEnabled": true, + "orderedNetworkList": [], + "participateInMetaMetrics": false, + "pendingApprovalCount": 1, + "pendingApprovals": { + "testApprovalId": { + "id": "testApprovalId", + "time": 1528133319641, + "origin": "metamask", + "type": "transaction", + "requestData": { + "txId": "testTransactionId" + }, + "requestState": { + "test": "value" + } + } + }, + "permissionHistory": { + "https://metamask.github.io": { + "eth_accounts": { + "accounts": { + "0dcd5d886577d5081b0c52e242ef29e70be3e7bc": 1709225290848 } - ], - "0x89": [ + } + } + }, + "pinnedAccountList": [], + "preferences": { + "hideZeroBalanceTokens": false, + "petnamesEnabled": false, + "showExtensionInFullSizeView": false, + "showFiatInTestnets": false, + "showNativeTokenAsMainBalance": true, + "showTestNetworks": true, + "smartTransactionsOptInStatus": true, + "tokenNetworkFilter": {}, + "tokenSortConfig": { + "key": "tokenFiatAmount", + "order": "dsc", + "sortCallback": "stringNumeric" + } + }, + "remoteFeatureFlags": {}, + "selectedAddress": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", + "selectedMultichainNetworkChainId": "bip122:000000000019d6689c085ae165831e93", + "selectedNetworkClientId": "goerli", + "showBetaHeader": false, + "snapRegistryList": { + "a51ea3a8-f1b0-4613-9440-b80e2236713b": { + "id": "a51ea3a8-f1b0-4613-9440-b80e2236713b", + "snapId": "npm:@metamask/snap-simple-keyring", + "iconUrl": "", + "snapTitle": "Metamask Simple Keyring", + "snapSlug": "Secure your account with MetaMask Mobile", + "snapDescription": "A simple private key is a randomly generated string of characters that is used to sign transactions. This private key is stored securely within this snap.", + "tags": ["EOA"], + "developer": "Metamask", + "website": "https://www.consensys.io/", + "auditUrls": ["auditUrl1", "auditUrl2"], + "version": "1.1.6", + "lastUpdated": "September 26, 2024" + } + }, + "snaps": { + "npm:@metamask/test-snap-bip44": { + "id": "npm:@metamask/test-snap-bip44", + "origin": "npm:@metamask/test-snap-bip44", + "version": "5.1.2", + "iconUrl": null, + "initialPermissions": { + "endowment:ethereum-provider": {} + }, + "manifest": { + "description": "An example Snap that signs messages using BLS.", + "proposedName": "BIP-44 Test Snap", + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/test-snaps.git" + }, + "source": { + "location": { + "npm": { + "filePath": "dist/bundle.js", + "packageName": "@metamask/test-snap-bip44", + "registry": "https://registry.npmjs.org" + } + }, + "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + }, + "version": "5.1.2" + }, + "versionHistory": [ { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "tokenId": "1", - "name": "MUNK #1", - "description": null, - "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", - "standard": "ERC721" + "date": 1680686075921, + "origin": "https://metamask.github.io", + "version": "5.1.2" } - ], - "0xaa36a7": [ + ] + }, + "npm:@metamask/test-snap-bip32": { + "id": "npm:@metamask/test-snap-bip32", + "origin": "npm:@metamask/test-snap-bip32", + "version": "5.1.2", + "iconUrl": null, + "initialPermissions": { + "endowment:ethereum-provider": {} + }, + "manifest": { + "description": "An example Snap that signs messages using BLS.", + "proposedName": "BIP-32 Test Snap", + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/test-snaps.git" + }, + "source": { + "location": { + "npm": { + "filePath": "dist/bundle.js", + "packageName": "@metamask/test-snap-bip32", + "registry": "https://registry.npmjs.org" + } + }, + "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + }, + "version": "5.1.2" + }, + "versionHistory": [ { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "tokenId": "1", - "name": "MUNK #1", - "description": null, - "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", - "standard": "ERC721" + "date": 1680686075921, + "origin": "https://metamask.github.io", + "version": "5.1.2" } - ], - "0x5": [ - { - "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", - "tokenId": "58076532811975507823669075598676816378162417803895263482849101575514658701313", - "name": "Punk #4", - "creator": { - "user": { - "username": null - }, - "profile_img_url": null, - "address": "0x806627172af48bd5b0765d3449a7def80d6576ff", - "config": "" + ] + }, + "npm:@metamask/test-snap-getEntropy": { + "id": "npm:@metamask/test-snap-getEntropy", + "origin": "npm:@metamask/test-snap-getEntropy", + "version": "5.1.2", + "iconUrl": null, + "initialPermissions": { + "endowment:ethereum-provider": {} + }, + "manifest": { + "description": "An example Snap that can derive snap specific entropy.", + "proposedName": "Get Entropy Test Snap", + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/test-snaps.git" + }, + "source": { + "location": { + "npm": { + "filePath": "dist/bundle.js", + "packageName": "@metamask/test-snap-getEntropy", + "registry": "https://registry.npmjs.org" + } + }, + "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" + }, + "version": "5.1.2" + }, + "versionHistory": [ + { + "date": 1680686075921, + "origin": "https://metamask.github.io", + "version": "5.1.2" + } + ] + }, + "npm:@metamask/test-snap-networkAccess": { + "id": "npm:@metamask/test-snap-networkAccess", + "origin": "npm:@metamask/test-snap-networkAccess", + "version": "5.1.2", + "iconUrl": null, + "initialPermissions": { + "endowment:ethereum-provider": {} + }, + "manifest": { + "description": "An example Snap that has network access.", + "proposedName": "Network Access Test Snap", + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/test-snaps.git" + }, + "source": { + "location": { + "npm": { + "filePath": "dist/bundle.js", + "packageName": "@metamask/test-snap-networkAccess", + "registry": "https://registry.npmjs.org" + } }, - "description": "Red Mohawk bam!", - "image": "https://lh3.googleusercontent.com/BdxvLseXcfl57BiuQcQYdJ64v-aI8din7WPk0Pgo3qQFhAUH-B6i-dCqqc_mCkRIzULmwzwecnohLhrcH8A9mpWIZqA7ygc52Sr81hE", - "standard": "ERC1155" + "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" }, + "version": "5.1.2" + }, + "versionHistory": [ { - "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", - "tokenId": "58076532811975507823669075598676816378162417803895263482849101574415147073537", - "name": "Punk #3", - "creator": { - "user": { - "username": null - }, - "profile_img_url": null, - "address": "0x806627172af48bd5b0765d3449a7def80d6576ff", - "config": "" + "date": 1680686075921, + "origin": "https://metamask.github.io", + "version": "5.1.2" + } + ] + }, + "npm:@metamask/test-snap-wasm": { + "id": "npm:@metamask/test-snap-wasm", + "origin": "npm:@metamask/test-snap-wasm", + "version": "5.1.2", + "iconUrl": null, + "initialPermissions": { + "endowment:ethereum-provider": {} + }, + "manifest": { + "description": "An example Snap that has WASM access.", + "proposedName": "WASM Test Snap", + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/test-snaps.git" + }, + "source": { + "location": { + "npm": { + "filePath": "dist/bundle.js", + "packageName": "@metamask/test-snap-wasm", + "registry": "https://registry.npmjs.org" + } }, - "description": "Clown PUNK!!!", - "image": "https://lh3.googleusercontent.com/H7VrxaalZv4PF1B8U7ADuc8AfuqTVyzmMEDQ5OXKlx0Tqu5XiwsKYj4j_pAF6wUJjLMQbSN_0n3fuj84lNyRhFW9hyrxqDfY1IiQEQ", - "standard": "ERC1155" + "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" }, + "version": "5.1.2" + }, + "versionHistory": [ { - "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", - "tokenId": "58076532811975507823669075598676816378162417803895263482849101573315635445761", - "name": "Punk #2", - "creator": { - "user": { - "username": null - }, - "profile_img_url": null, - "address": "0x806627172af48bd5b0765d3449a7def80d6576ff", - "config": "" + "date": 1680686075921, + "origin": "https://metamask.github.io", + "version": "5.1.2" + } + ] + }, + "npm:@metamask/test-snap-notify": { + "id": "npm:@metamask/test-snap-notify", + "origin": "npm:@metamask/test-snap-notify", + "version": "5.1.2", + "iconUrl": null, + "initialPermissions": { + "endowment:ethereum-provider": {} + }, + "manifest": { + "description": "An example Snap that can send notifications.", + "proposedName": "Notification Test Snap", + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/test-snaps.git" + }, + "source": { + "location": { + "npm": { + "filePath": "dist/bundle.js", + "packageName": "@metamask/test-snap-notify", + "registry": "https://registry.npmjs.org" + } }, - "description": "Got glasses and black hair!", - "image": "https://lh3.googleusercontent.com/CHNTSlKB_Gob-iwTq8jcag6XwBkTqBMLt_vEKeBv18Q4AoPFAEPceqK6mRzkad2s5djx6CT5zbGQwDy81WwtNzViK5dQbG60uAWv", - "standard": "ERC1155" + "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" }, + "version": "5.1.2" + }, + "versionHistory": [ { - "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", - "tokenId": "58076532811975507823669075598676816378162417803895263482849101572216123817985", - "name": "Punk #1", - "creator": { - "user": { - "username": null - }, - "profile_img_url": null, - "address": "0x806627172af48bd5b0765d3449a7def80d6576ff", - "config": "" + "date": 1680686075921, + "origin": "https://metamask.github.io", + "version": "5.1.2" + } + ] + }, + "npm:@metamask/test-snap-dialog": { + "id": "npm:@metamask/test-snap-dialog", + "origin": "npm:@metamask/test-snap-dialog", + "version": "5.1.2", + "iconUrl": null, + "initialPermissions": { + "endowment:ethereum-provider": {} + }, + "manifest": { + "description": "An example Snap that can send dialog prompts.", + "proposedName": "Dialog Test Snap", + "repository": { + "type": "git", + "url": "https://github.com/MetaMask/test-snaps.git" + }, + "source": { + "location": { + "npm": { + "filePath": "dist/bundle.js", + "packageName": "@metamask/test-snap-dialog", + "registry": "https://registry.npmjs.org" + } }, - "image": "https://lh3.googleusercontent.com/4jfPi-nQNWCUXD5qVNVWX7LX2UufU_elEJcvICFlsTdcBXv70asnDEOlI8oKECZxlXq1wseeIXMwmP5tLyOUxMKk", - "standard": "ERC1155" + "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" }, + "version": "5.1.2" + }, + "versionHistory": [ { - "address": "0x495f947276749Ce646f68AC8c248420045cb7b5e", - "tokenId": "58076532811975507823669075598676816378162417803895263482849101571116612190209", - "name": "Punk #4651", - "creator": { - "user": { - "username": null - }, - "profile_img_url": null, - "address": "0x806627172af48bd5b0765d3449a7def80d6576ff", - "config": "" + "date": 1680686075921, + "origin": "https://metamask.github.io", + "version": "5.1.2" + } + ] + }, + "local:snap-id": { + "id": "local:snap-id", + "origin": "local:snap-id", + "version": "5.1.2", + "iconUrl": null, + "initialPermissions": {}, + "manifest": { + "description": "mock snap description", + "proposedName": "mock snap name", + "repository": { + "type": "git", + "url": "https://127.0.0.1" + }, + "source": { + "location": { + "npm": { + "filePath": "dist/bundle.js", + "packageName": "@metamask/test-snap-dialog", + "registry": "https://registry.npmjs.org" + } }, - "image": "https://lh3.googleusercontent.com/BdxvLseXcfl57BiuQcQYdJ64v-aI8din7WPk0Pgo3qQFhAUH-B6i-dCqqc_mCkRIzULmwzwecnohLhrcH8A9mpWIZqA7ygc52Sr81hE", - "standard": "ERC1155" + "shasum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" }, + "version": "5.1.2" + }, + "versionHistory": [ { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "tokenId": "1", - "name": "MUNK #1", - "description": null, - "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", - "standard": "ERC721", - "lastSale": { - "total_price": "4900000000000000", - "event_timestamp": "2023-01-18T21:51:23", - "payment_token": { - "symbol": "ETH" + "date": 1680686075921, + "origin": "https://metamask.github.io", + "version": "5.1.2" + } + ] + } + }, + "subjectMetadata": { + "npm:@metamask/test-snap-bip44": { + "name": "@metamask/test-snap-bip44", + "version": "1.2.3", + "subjectType": "snap" + }, + "https://snaps.metamask.io": { + "extensionId": null, + "iconUrl": "https://snaps.metamask.io/favicon-32x32.png?v=96e4834dade94988977ec34e50a62b84", + "name": "MetaMask Snaps Directory", + "origin": "https://snaps.metamask.io", + "subjectType": "website" + } + }, + "subjects": { + "npm:@metamask/test-snap-bip44": { + "origin": "npm:@metamask/test-snap-bip44", + "permissions": { + "endowment:rpc": { + "caveats": [ + { + "type": "rpcOrigin", + "value": { + "allowedOrigins": ["npm:@metamask/json-rpc-example-snap"], + "dapps": true + } } - } + ], + "date": 1718117256761, + "id": "MhjpHKQFfGpMzI6YzkPGU", + "invoker": "npm:@metamask/test-snap-bip44", + "parentCapability": "endowment:rpc" }, - { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "tokenId": "2", - "name": "MUNK #2", - "description": null, - "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", - "standard": "ERC721" + "snap_dialog": { + "caveats": null, + "date": 1718117256761, + "id": "sBxmdvnow7QiN9aS4uSdn", + "invoker": "npm:@metamask/test-snap-bip44", + "parentCapability": "snap_dialog" }, - { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "tokenId": "3", - "name": "MUNK #3", - "description": null, - "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", - "standard": "ERC721" + "snap_getBip44Entropy": { + "caveats": [ + { + "type": "permittedCoinTypes", + "value": [ + { + "coinType": 1 + }, + { + "coinType": 3 + } + ] + } + ], + "date": 1718117256762, + "id": "R9tggB2pDzyCcbt6dIebN", + "invoker": "npm:@metamask/test-snap-bip44", + "parentCapability": "snap_getBip44Entropy" } - ], - "0x99": [ - { - "address": "0xDc7382Eb0Bc9C352A4CbA23c909bDA01e0206414", - "tokenId": "1", - "name": "MUNK #1", - "description": null, - "image": "ipfs://QmTSZUNt8AKyDabkyXXXP4oHWDnaVXgNdXoJGEyaYzLbeL", - "standard": "ERC721" + } + }, + "https://snaps.metamask.io": { + "origin": "https://snaps.metamask.io", + "permissions": { + "wallet_snap": { + "caveats": [ + { + "type": "snapIds", + "value": { + "npm:@metamask/test-snap-bip44": {} + } + } + ], + "date": 1718117256761, + "id": "sBxmdvnow7QiN9aS4uSdn", + "invoker": "https://snaps.metamask.io" } - ] + } } }, + "subscriptions": [], + "supportedChainIds": { + "timestamp": 0, + "data": [] + }, + "throttledOrigins": {}, + "ticker": "ETH", + "tokenBalances": {}, + "tokens": [ + { + "address": "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d", + "symbol": "TEST", + "decimals": "0" + }, + { + "address": "0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5", + "decimals": "8", + "symbol": "TEST2" + }, + { + "address": "0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4", + "symbol": "META", + "decimals": "18" + } + ], "tokensChainsCache": { "0x5": { "data": { @@ -2205,151 +2336,24 @@ "origin": "tmashuang.github.io" } ], - "addSnapAccountEnabled": false, - "watchEthereumAccountEnabled": false, - "pendingApprovals": { - "testApprovalId": { - "id": "testApprovalId", - "time": 1528133319641, - "origin": "metamask", - "type": "transaction", - "requestData": { - "txId": "testTransactionId" - }, - "requestState": { - "test": "value" - } - } - }, - "pendingApprovalCount": 1, - "database": { - "verifiedSnaps": { - "npm:@metamask/test-snap-bip44": { - "id": "npm:@metamask/test-snap-bip44", - "metadata": { - "name": "BIP-44", - "author": { - "name": "Consensys", - "website": "https://consensys.io/" - }, - "website": "https://snaps.consensys.io/", - "summary": "An example Snap that signs messages using BLS.", - "description": "An example Snap that signs messages using BLS.", - "audits": [ - { - "auditor": "Consensys Diligence", - "report": "https://consensys.io/diligence/audits/" - } - ], - "category": "interoperability", - "support": { - "contact": "https://github.com/MetaMask" - }, - "sourceCode": "https://github.com/MetaMask/test-snaps" - }, - "versions": { - "5.1.2": { - "checksum": "L1k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" - }, - "5.1.3": { - "checksum": "21k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" - }, - "6.0.0": { - "checksum": "31k+dT9Q+y3KfIqzaH09MpDZVPS9ZowEh9w01ZMTWMU=" - } - } - } - } - }, - "permissionHistory": { - "https://metamask.github.io": { - "eth_accounts": { - "accounts": { - "0dcd5d886577d5081b0c52e242ef29e70be3e7bc": 1709225290848 - } - } - } - }, - "subjects": { - "npm:@metamask/test-snap-bip44": { - "origin": "npm:@metamask/test-snap-bip44", - "permissions": { - "endowment:rpc": { - "caveats": [ - { - "type": "rpcOrigin", - "value": { - "allowedOrigins": ["npm:@metamask/json-rpc-example-snap"], - "dapps": true - } - } - ], - "date": 1718117256761, - "id": "MhjpHKQFfGpMzI6YzkPGU", - "invoker": "npm:@metamask/test-snap-bip44", - "parentCapability": "endowment:rpc" - }, - "snap_dialog": { - "caveats": null, - "date": 1718117256761, - "id": "sBxmdvnow7QiN9aS4uSdn", - "invoker": "npm:@metamask/test-snap-bip44", - "parentCapability": "snap_dialog" - }, - "snap_getBip44Entropy": { - "caveats": [ - { - "type": "permittedCoinTypes", - "value": [ - { - "coinType": 1 - }, - { - "coinType": 3 - } - ] - } - ], - "date": 1718117256762, - "id": "R9tggB2pDzyCcbt6dIebN", - "invoker": "npm:@metamask/test-snap-bip44", - "parentCapability": "snap_getBip44Entropy" - } - } - }, - "https://snaps.metamask.io": { - "origin": "https://snaps.metamask.io", - "permissions": { - "wallet_snap": { - "caveats": [ - { - "type": "snapIds", - "value": { - "npm:@metamask/test-snap-bip44": {} - } - } - ], - "date": 1718117256761, - "id": "sBxmdvnow7QiN9aS4uSdn", - "invoker": "https://snaps.metamask.io" - } - } - } - }, + "trialedProducts": [], "txHistory": {}, - "throttledOrigins": {}, - "delegations": {}, - "accountsAssets": {}, - "assetsMetadata": {}, - "allIgnoredAssets": {}, - "gatorPermissionsMapSerialized": "{\"native-token-stream\":{},\"native-token-periodic\":{},\"erc20-token-stream\":{},\"erc20-token-periodic\":{},\"other\":{}}", - "isGatorPermissionsEnabled": false, - "isFetchingGatorPermissions": false, - "isUpdatingGatorPermissions": false, - "networkConnectionBanner": { - "status": "unknown" - }, - "coverageResults": {} + "unapprovedDecryptMsgCount": 0, + "unapprovedDecryptMsgs": {}, + "unapprovedEncryptionPublicKeyMsgCount": 0, + "unapprovedEncryptionPublicKeyMsgs": {}, + "unapprovedPersonalMsgCount": 0, + "unapprovedPersonalMsgs": {}, + "unapprovedTypedMessages": {}, + "unapprovedTypedMessagesCount": 0, + "updateModalLastDismissedAt": null, + "use4ByteResolution": true, + "useCurrencyRateCheck": true, + "useMultiAccountBalanceChecker": false, + "useNftDetection": true, + "usePhishDetect": true, + "useTokenDetection": true, + "watchEthereumAccountEnabled": false }, "ramps": { "buyableChains": [ From fb4829fbeb5f0b4ffdb907f90445b1d4e4119cc7 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Fri, 31 Oct 2025 13:00:38 +0100 Subject: [PATCH 05/24] fix: test --- test/data/mock-send-state.json | 450 +++++++++++++++++---------------- 1 file changed, 227 insertions(+), 223 deletions(-) diff --git a/test/data/mock-send-state.json b/test/data/mock-send-state.json index f1cb1a7b239c..a1e206f955a4 100644 --- a/test/data/mock-send-state.json +++ b/test/data/mock-send-state.json @@ -62,16 +62,125 @@ "currentLocale": "en" }, "metamask": { - "accountsByChainId": {}, - "tokenBalances": { + "accountTree": { + "selectedAccountGroup": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0", + "wallets": { + "entropy:01JKAF3DSGM3AB87EM9N0K41AJ": { + "id": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ", + "type": "entropy", + "groups": { + "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0": { + "id": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0", + "type": "multichain-account", + "accounts": [ + "cf8dace4-9439-4bd4-b3a8-88c821c8fcb3", + "07c2cfec-36c9-46c4-8115-3836d3ac9047" + ], + "metadata": { + "name": "Account 1", + "entropy": { + "groupIndex": 0 + }, + "hidden": false, + "pinned": false + } + } + }, + "metadata": { + "name": "Wallet 1", + "entropy": { + "id": "01JKAF3DSGM3AB87EM9N0K41AJ" + } + } + } + } + }, + "accounts": { "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "0x5": {} + "balance": "0x0", + "address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc" + }, + "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { + "address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", + "balance": "0x0" + }, + "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { + "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", + "balance": "0x0" + }, + "0xeb9e64b93097bc15f01f13eae97015c57ab64823": { + "address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823", + "balance": "0x0" + }, + "0xd5e099c71b797516c10ed0f0d895f429c2781111": { + "address": "0xd5e099c71b797516c10ed0f0d895f429c2781111", + "balance": "0x0" + }, + "0x1234567890123456789012345678901234567890": { + "address": "0x1234567890123456789012345678901234567890", + "balance": "0x0" + }, + "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq": { + "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq", + "balance": "0x0" + }, + "2byhg1jregmqQx2VfLGLn7hb5mStJw2iVVU8sfM5xTYj": { + "address": "2byhg1jregmqQx2VfLGLn7hb5mStJw2iVVU8sfM5xTYj", + "balance": "0x0" } }, - "ipfsGateway": "", + "accountsByChainId": {}, + "addressBook": { + "0x5": { + "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { + "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", + "chainId": "0x5", + "isEns": false, + "memo": "", + "name": "Address Book Account 1" + } + } + }, + "advancedGasFee": { + "maxBaseFee": "75", + "priorityFee": "2" + }, + "alertEnabledness": { + "unconnectedAccount": true + }, + "allTokens": { + "0x5": { + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": [ + { + "address": "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d", + "symbol": "TEST", + "decimals": "0" + }, + { + "address": "0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5", + "decimals": "8", + "symbol": "TEST2" + }, + { + "address": "0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4", + "symbol": "META", + "decimals": "18" + } + ] + } + }, + "completedOnboarding": true, + "currencyRates": { + "ETH": { + "conversionRate": 556.12 + } + }, + "currentCurrency": "usd", "dismissSeedBackUpReminder": false, - "usePhishDetect": true, - "participateInMetaMetrics": false, + "enabledNetworkMap": {}, + "ensResolutionsByAddress": {}, + "featureFlags": {}, + "frequentRpcListDetail": [], "gasEstimateType": "fee-market", "gasFeeEstimates": { "low": { @@ -132,69 +241,22 @@ } } }, - "snaps": {}, - "preferences": { - "hideZeroBalanceTokens": false, - "showFiatInTestnets": false, - "showTestNetworks": true, - "tokenNetworkFilter": {} - }, - "enabledNetworkMap": {}, - "seedPhraseBackedUp": null, - "ensResolutionsByAddress": {}, - "isAccountMenuOpen": false, - "isUnlocked": true, - "completedOnboarding": true, - "showTestnetMessageInDropdown": true, - "alertEnabledness": { - "unconnectedAccount": true - }, - "featureFlags": {}, - "network": "5", - - "networkConfigurationsByChainId": { - "0x5": { - "nativeCurrency": "ETH", - "chainId": "0x5", - "defaultRpcEndpointIndex": 0, - "rpcEndpoints": [ - { - "networkClientId": "goerli" - } - ] - } - }, - "accountTree": { - "selectedAccountGroup": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0", - "wallets": { - "entropy:01JKAF3DSGM3AB87EM9N0K41AJ": { - "id": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ", - "type": "entropy", - "groups": { - "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0": { - "id": "entropy:01JKAF3DSGM3AB87EM9N0K41AJ/0", - "type": "multichain-account", - "accounts": [ - "cf8dace4-9439-4bd4-b3a8-88c821c8fcb3", - "07c2cfec-36c9-46c4-8115-3836d3ac9047" - ], - "metadata": { - "name": "Account 1", - "entropy": { - "groupIndex": 0 - }, - "hidden": false, - "pinned": false - } - } - }, - "metadata": { - "name": "Wallet 1", - "entropy": { - "id": "01JKAF3DSGM3AB87EM9N0K41AJ" - } - } - } + "identities": { + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { + "address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", + "name": "Test Account" + }, + "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { + "address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", + "name": "Test Account 2" + }, + "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { + "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", + "name": "Test Ledger 1" + }, + "0xeb9e64b93097bc15f01f13eae97015c57ab64823": { + "name": "Test Account 3", + "address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823" } }, "internalAccounts": { @@ -290,6 +352,10 @@ }, "selectedAccount": "cf8dace4-9439-4bd4-b3a8-88c821c8fcb3" }, + "ipfsGateway": "", + "isAccountMenuOpen": false, + "isEvmSelected": true, + "isUnlocked": true, "keyrings": [ { "type": "HD Key Tree", @@ -319,22 +385,30 @@ } } ], - "identities": { - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", - "name": "Test Account" - }, - "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { - "address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", - "name": "Test Account 2" - }, - "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { - "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", - "name": "Test Ledger 1" + "marketData": { + "0x1": { + "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d": { + "price": 0.00039345803819379796, + "contractPercentChange1d": 0.004, + "priceChange1d": 0.00004 + }, + "0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5": { + "price": 0.00008189274407698049, + "contractPercentChange1d": 0.01, + "priceChange1d": 0.001 + } }, - "0xeb9e64b93097bc15f01f13eae97015c57ab64823": { - "name": "Test Account 3", - "address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823" + "0x5": { + "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d": { + "price": 0.00039345803819379796, + "contractPercentChange1d": 0.004, + "priceChange1d": 0.00004 + }, + "0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5": { + "price": 0.00008189274407698049, + "contractPercentChange1d": 0.01, + "priceChange1d": 0.001 + } } }, "multichainNetworkConfigurationsByChainId": { @@ -351,19 +425,20 @@ "isEvm": false } }, - "networksWithTransactionActivity": { - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "namespace": "eip155", - "activeChain": ["0x5"] - }, - "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp": { - "namespace": "solana", - "activeChain": [] + "network": "5", + + "networkConfigurationsByChainId": { + "0x5": { + "nativeCurrency": "ETH", + "chainId": "0x5", + "defaultRpcEndpointIndex": 0, + "rpcEndpoints": [ + { + "networkClientId": "goerli" + } + ] } }, - "selectedMultichainNetworkChainId": "bip122:000000000019d6689c085ae165831e93", - "isEvmSelected": true, - "selectedNetworkClientId": "goerli", "networksMetadata": { "goerli": { "EIPS": { @@ -372,8 +447,16 @@ "status": "available" } }, - "frequentRpcListDetail": [], - "subjectMetadata": {}, + "networksWithTransactionActivity": { + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { + "namespace": "eip155", + "activeChain": ["0x5"] + }, + "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp": { + "namespace": "solana", + "activeChain": [] + } + }, "notifications": { "test": { "id": "test", @@ -390,136 +473,31 @@ "message": "Hello, http://localhost:8086!" } }, - "selectedAddress": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", - "accounts": { - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { - "balance": "0x0", - "address": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc" - }, - "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b": { - "address": "0xec1adf982415d2ef5ec55899b9bfb8bc0f29251b", - "balance": "0x0" - }, - "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { - "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", - "balance": "0x0" - }, - "0xeb9e64b93097bc15f01f13eae97015c57ab64823": { - "address": "0xeb9e64b93097bc15f01f13eae97015c57ab64823", - "balance": "0x0" - }, - "0xd5e099c71b797516c10ed0f0d895f429c2781111": { - "address": "0xd5e099c71b797516c10ed0f0d895f429c2781111", - "balance": "0x0" - }, - "0x1234567890123456789012345678901234567890": { - "address": "0x1234567890123456789012345678901234567890", - "balance": "0x0" - }, - "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq": { - "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq", - "balance": "0x0" - }, - "2byhg1jregmqQx2VfLGLn7hb5mStJw2iVVU8sfM5xTYj": { - "address": "2byhg1jregmqQx2VfLGLn7hb5mStJw2iVVU8sfM5xTYj", - "balance": "0x0" - } - }, - "tokens": [ - { - "address": "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d", - "symbol": "TEST", - "decimals": "0" - }, - { - "address": "0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5", - "decimals": "8", - "symbol": "TEST2" - }, - { - "address": "0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4", - "symbol": "META", - "decimals": "18" - } - ], - "allTokens": { - "0x5": { - "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": [ - { - "address": "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d", - "symbol": "TEST", - "decimals": "0" - }, - { - "address": "0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5", - "decimals": "8", - "symbol": "TEST2" - }, - { - "address": "0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4", - "symbol": "META", - "decimals": "18" - } - ] - } + "participateInMetaMetrics": false, + "preferences": { + "hideZeroBalanceTokens": false, + "showFiatInTestnets": false, + "showTestNetworks": true, + "tokenNetworkFilter": {} }, - "marketData": { - "0x1": { - "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d": { - "price": 0.00039345803819379796, - "contractPercentChange1d": 0.004, - "priceChange1d": 0.00004 - }, - "0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5": { - "price": 0.00008189274407698049, - "contractPercentChange1d": 0.01, - "priceChange1d": 0.001 - } - }, - "0x5": { - "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d": { - "price": 0.00039345803819379796, - "contractPercentChange1d": 0.004, - "priceChange1d": 0.00004 - }, - "0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5": { - "price": 0.00008189274407698049, - "contractPercentChange1d": 0.01, - "priceChange1d": 0.001 - } - } + "seedPhraseBackedUp": null, + "selectedAddress": "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc", + "selectedMultichainNetworkChainId": "bip122:000000000019d6689c085ae165831e93", + "selectedNetworkClientId": "goerli", + "showTestnetMessageInDropdown": true, + "snaps": {}, + "subjectMetadata": {}, + "supportedChainIds": { + "timestamp": 0, + "data": [] }, + "swapsState": {}, "ticker": "ETH", - "currentCurrency": "usd", - "currencyRates": { - "ETH": { - "conversionRate": 556.12 - } - }, - "addressBook": { - "0x5": { - "0xc42edfcc21ed14dda456aa0756c153f7985d8813": { - "address": "0xc42edfcc21ed14dda456aa0756c153f7985d8813", - "chainId": "0x5", - "isEns": false, - "memo": "", - "name": "Address Book Account 1" - } + "tokenBalances": { + "0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc": { + "0x5": {} } }, - "unapprovedPersonalMsgs": {}, - "unapprovedPersonalMsgCount": 0, - "unapprovedDecryptMsgs": {}, - "unapprovedDecryptMsgCount": 0, - "unapprovedEncryptionPublicKeyMsgs": {}, - "unapprovedEncryptionPublicKeyMsgCount": 0, - "unapprovedTypedMessages": {}, - "unapprovedTypedMessagesCount": 0, - "useTokenDetection": true, - "advancedGasFee": { - "maxBaseFee": "75", - "priorityFee": "2" - }, "tokenList": { "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599": { "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", @@ -566,6 +544,23 @@ "occurrences": 12 } }, + "tokens": [ + { + "address": "0x108cf70c7d384c552f42c07c41c0e1e46d77ea0d", + "symbol": "TEST", + "decimals": "0" + }, + { + "address": "0xd8f6a2ffb0fc5952d16c9768b71cfd35b6399aa5", + "decimals": "8", + "symbol": "TEST2" + }, + { + "address": "0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4", + "symbol": "META", + "decimals": "18" + } + ], "tokensChainsCache": { "0x5": { "data": { @@ -1403,7 +1398,16 @@ "origin": "tmashuang.github.io" } ], - "swapsState": {} + "unapprovedDecryptMsgCount": 0, + "unapprovedDecryptMsgs": {}, + "unapprovedEncryptionPublicKeyMsgCount": 0, + "unapprovedEncryptionPublicKeyMsgs": {}, + "unapprovedPersonalMsgCount": 0, + "unapprovedPersonalMsgs": {}, + "unapprovedTypedMessages": {}, + "unapprovedTypedMessagesCount": 0, + "usePhishDetect": true, + "useTokenDetection": true }, "ramps": { "buyableChains": [ From 75035291ecba92e71e94a70613b384996334c42d Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Fri, 31 Oct 2025 13:24:22 +0100 Subject: [PATCH 06/24] fix: test --- .../state-snapshots/errors-after-init-opt-in-ui-state.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-ui-state.json b/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-ui-state.json index 7f3c2556c1bc..cac6d960a5bd 100644 --- a/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-ui-state.json +++ b/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-ui-state.json @@ -190,6 +190,7 @@ "conversionRates": "object", "historicalPrices": "object", "marketData": "object", + "supportedChainIds": "object", "multichainNetworkConfigurationsByChainId": "object", "selectedMultichainNetworkChainId": "string", "isEvmSelected": "boolean", From c565efb6544a193a35945af6bed482075c7d04ee Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Fri, 31 Oct 2025 15:01:34 +0100 Subject: [PATCH 07/24] fix: test --- .../dapp-swap-comparison/useDappSwapComparisonInfo.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.test.ts b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.test.ts index 7ca70a9afc06..68522187370d 100644 --- a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.test.ts +++ b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.test.ts @@ -49,7 +49,7 @@ async function runHook() { metamask: { supportedChainIds: { timestamp: 0, - data: [], + data: ['0x2105'], }, }, }), From 7117ecd39a7df1030741dda353d750009774bc58 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Fri, 31 Oct 2025 15:46:54 +0100 Subject: [PATCH 08/24] fix: fix import --- ui/pages/asset/components/asset-page.test.tsx | 4 ++++ ui/pages/asset/hooks/useHistoricalPrices.ts | 2 +- ui/pages/asset/util.ts | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ui/pages/asset/components/asset-page.test.tsx b/ui/pages/asset/components/asset-page.test.tsx index 35f5e29de4a8..5e645a7f7362 100644 --- a/ui/pages/asset/components/asset-page.test.tsx +++ b/ui/pages/asset/components/asset-page.test.tsx @@ -112,6 +112,10 @@ describe('AssetPage', () => { }, }, marketData: {}, + supportedChainIds: { + timestamp: 0, + data: ['0x1'], + }, allTokens: {}, accountsByChainId: { '0x1': { diff --git a/ui/pages/asset/hooks/useHistoricalPrices.ts b/ui/pages/asset/hooks/useHistoricalPrices.ts index 48a28a8374e3..c87756c4b719 100644 --- a/ui/pages/asset/hooks/useHistoricalPrices.ts +++ b/ui/pages/asset/hooks/useHistoricalPrices.ts @@ -112,7 +112,7 @@ const useHistoricalPricesEvm = ({ return; } - const chainSupported = showFiat && isChainSupportsPricing(chainId as Hex); + const chainSupported = showFiat && isChainSupportsPricing; if (!chainSupported) { return; } diff --git a/ui/pages/asset/util.ts b/ui/pages/asset/util.ts index 0bf0c4355c1e..d26fedd0bdfd 100644 --- a/ui/pages/asset/util.ts +++ b/ui/pages/asset/util.ts @@ -1,4 +1,5 @@ import { Duration } from 'luxon'; +import { assert } from '@metamask/utils'; import { PriceApiTimePeriod } from './types/PriceApiTimePeriod'; /** Formats a datetime in a short human readable format like 'Feb 8, 12:11 PM' */ From d527bb0d1c12805ed1ac44fff7de3fc8360f2c74 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Fri, 31 Oct 2025 16:11:39 +0100 Subject: [PATCH 09/24] fix: nock --- .../metamask-controller.actions.test.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/scripts/metamask-controller.actions.test.js b/app/scripts/metamask-controller.actions.test.js index 086f0c8660f2..89a85350811d 100644 --- a/app/scripts/metamask-controller.actions.test.js +++ b/app/scripts/metamask-controller.actions.test.js @@ -125,6 +125,24 @@ describe('MetaMaskController', function () { { url: '127.0.0.1', targetList: 'blocklist', timestamp: 0 }, ]), ); + + nock('https://price.api.cx.metamask.io') + .get('/v1/supportedNetworks') + .reply( + 200, + JSON.stringify({ + fullSupport: [ + 1, 10, 56, 100, 137, 250, 324, 8453, 42161, 43114, 59144, + ], + partialSupport: { + spotPricesV2: [ + 25, 57, 66, 70, 82, 88, 106, 122, 128, 143, 146, 288, 321, 336, + 361, 1088, 1101, 1284, 1285, 1329, 5000, 10000, 42220, 42262, + 81457, 97741, 167000, 333999, 534352, 1313161554, 1666600000, + ], + }, + }), + ); metamaskController = new MetaMaskController({ showUserConfirmation: noop, encryptor: mockEncryptor, From 3fe22ff9a198a63ce0ffcea6b5234184d472703d Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Fri, 31 Oct 2025 16:45:21 +0100 Subject: [PATCH 10/24] fix: nock --- app/scripts/metamask-controller.test.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/scripts/metamask-controller.test.js b/app/scripts/metamask-controller.test.js index 6d235519f3e4..2b84e09457e8 100644 --- a/app/scripts/metamask-controller.test.js +++ b/app/scripts/metamask-controller.test.js @@ -378,6 +378,24 @@ describe('MetaMaskController', () => { ]), ); + nock('https://price.api.cx.metamask.io') + .get('/v1/supportedNetworks') + .reply( + 200, + JSON.stringify({ + fullSupport: [ + 1, 10, 56, 100, 137, 250, 324, 8453, 42161, 43114, 59144, + ], + partialSupport: { + spotPricesV2: [ + 25, 57, 66, 70, 82, 88, 106, 122, 128, 143, 146, 288, 321, 336, + 361, 1088, 1101, 1284, 1285, 1329, 5000, 10000, 42220, 42262, + 81457, 97741, 167000, 333999, 534352, 1313161554, 1666600000, + ], + }, + }), + ); + globalThis.sentry = { withIsolationScope: jest.fn(), }; From 6313e04e32bf92420e7425295c7800822498ce16 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Mon, 3 Nov 2025 09:39:54 +0100 Subject: [PATCH 11/24] fix: test --- ui/selectors/assets.test.ts | 9 +++++++++ ui/selectors/selectors.js | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ui/selectors/assets.test.ts b/ui/selectors/assets.test.ts index 47a7cdb474db..1d37d36b2c6e 100644 --- a/ui/selectors/assets.test.ts +++ b/ui/selectors/assets.test.ts @@ -868,6 +868,10 @@ describe('Aggregated balance recomputation behavior', () => { internalAccounts: { accounts: {}, selectedAccount: '' }, tokenBalances: tokenBalancesA, marketData: {}, + supportedChainIds: { + timestamp: 0, + data: [], + }, balances: {}, allTokens: {}, currentCurrency: 'usd', @@ -1004,6 +1008,10 @@ describe('getAsset', () => { allIgnoredTokens: 'mockAllIgnoredTokens', tokenBalances: 'mockTokenBalances', marketData: 'mockMarketData', + supportedChainIds: { + timestamp: 0, + data: [], + }, currencyRates: 'mockCurrencyRates', currentCurrency: 'mockCurrentCurrency', networkConfigurationsByChainId: 'mockNetworkConfigurationsByChainId', @@ -1069,6 +1077,7 @@ describe('getAsset', () => { 'bip122:000000000019d6689c085ae165831e93/slip44:0', 'bip122:000000000019d6689c085ae165831e93', ); + expect(result).toStrictEqual({ accountType: 'bip122:p2wpkh', accountId: '2d89e6a0-b4e6-45a8-a707-f10cef143b42', diff --git a/ui/selectors/selectors.js b/ui/selectors/selectors.js index 4858affd1a17..a94d61915d93 100644 --- a/ui/selectors/selectors.js +++ b/ui/selectors/selectors.js @@ -1114,7 +1114,7 @@ export const getMarketData = (state) => { }; export const getSupportedChainIds = (state) => { - return state.metamask.supportedChainIds.data; + return state.metamask.supportedChainIds?.data; }; export function getAddressBook(state) { From f1043637c8beca8bf32643a1552b6f76b3ad0795 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Mon, 3 Nov 2025 09:58:48 +0100 Subject: [PATCH 12/24] fix: fix yarn --- yarn.lock | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/yarn.lock b/yarn.lock index b3946857cd9b..1e08d976b7b8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5634,6 +5634,11 @@ __metadata: webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 checksum: 10/602362d241d90f81bbf60d754c6f394b355f45f12aac78a6df1d78d9daf621dff7d417e6973ea9247b3b77b9acdb9fe275968b1a1736fa53c92007baf55d0d94 languageName: node + linkType: hard + +"@metamask/auth-network-utils@npm:^0.3.0, @metamask/auth-network-utils@npm:^0.3.1": + version: 0.3.1 + resolution: "@metamask/auth-network-utils@npm:0.3.1" dependencies: "@noble/curves": "npm:^1.8.1" "@noble/hashes": "npm:^1.7.1" From 8be7c16865e0b0c2628c671e8866521bc77332e7 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Mon, 3 Nov 2025 11:30:56 +0100 Subject: [PATCH 13/24] fix: add mock --- test/e2e/tests/privacy/basic-functionality.spec.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/e2e/tests/privacy/basic-functionality.spec.ts b/test/e2e/tests/privacy/basic-functionality.spec.ts index 2f1c95a82daf..bbe3cef00685 100644 --- a/test/e2e/tests/privacy/basic-functionality.spec.ts +++ b/test/e2e/tests/privacy/basic-functionality.spec.ts @@ -82,6 +82,19 @@ async function mockApis( }, }; }), + await mockServer + .forGet('https://price.api.cx.metamask.io/v1/supportedNetworks') + .thenCallback(() => { + return { + statusCode: 200, + json: { + fullSupport: [1, 137, 56, 59144, 8453, 10, 42161, 534352], + partialSupport: { + spotPricesV2: [1, 137, 56, 59144, 8453, 10, 42161, 534352], + }, + }, + }; + }), await mockEmptyPrices(mockServer, CHAIN_IDS.MAINNET), ]; } From 9ce444ebfe893b8bca6276a072cb99d72e3c4235 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Mon, 3 Nov 2025 13:56:26 +0100 Subject: [PATCH 14/24] fix: fix test --- ui/selectors/selectors.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/selectors/selectors.js b/ui/selectors/selectors.js index 8a711b0d0ebe..10fd1b672383 100644 --- a/ui/selectors/selectors.js +++ b/ui/selectors/selectors.js @@ -1128,7 +1128,7 @@ export const getMarketData = (state) => { }; export const getSupportedChainIds = (state) => { - return state.metamask.supportedChainIds?.data; + return state.metamask.supportedChainIds?.data ?? []; }; export function getAddressBook(state) { From dd8e99aed12fd9ff65b72fd4e1baae7b3894e234 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Mon, 3 Nov 2025 14:14:17 +0100 Subject: [PATCH 15/24] fix: fix test --- ui/pages/asset/hooks/useHistoricalPrices.test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui/pages/asset/hooks/useHistoricalPrices.test.ts b/ui/pages/asset/hooks/useHistoricalPrices.test.ts index ad1291c7ea4b..e6c7d67527b3 100644 --- a/ui/pages/asset/hooks/useHistoricalPrices.test.ts +++ b/ui/pages/asset/hooks/useHistoricalPrices.test.ts @@ -109,6 +109,10 @@ describe('useHistoricalPrices', () => { }, }, }, + supportedChainIds: { + data: ['0x1'], + timestamp: 0, + }, }, }; From 315f9157c715eb182fde1c9715fc908b4d6eeb0b Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Mon, 3 Nov 2025 15:30:01 +0100 Subject: [PATCH 16/24] fix: fix test --- ui/selectors/assets.test.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ui/selectors/assets.test.ts b/ui/selectors/assets.test.ts index 1d37d36b2c6e..9199e1696512 100644 --- a/ui/selectors/assets.test.ts +++ b/ui/selectors/assets.test.ts @@ -797,6 +797,10 @@ describe('Aggregated balance recomputation behavior', () => { const internalAccounts = { accounts: {}, selectedAccount: '' }; const tokenBalances = {}; const marketData = {}; + const supportedChainIds = { + timestamp: 0, + data: [], + }; const conversionRates = {}; const historicalPrices = {}; const balances = {}; @@ -813,6 +817,7 @@ describe('Aggregated balance recomputation behavior', () => { internalAccounts, tokenBalances, marketData, + supportedChainIds, balances, allTokens, currentCurrency: 'usd', @@ -835,6 +840,7 @@ describe('Aggregated balance recomputation behavior', () => { internalAccounts, tokenBalances, marketData, + supportedChainIds, balances, allTokens, currentCurrency: 'usd', From 3629c41d4c0bb4c3cd14a15ae120e3af98852f39 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Mon, 3 Nov 2025 16:37:46 +0100 Subject: [PATCH 17/24] fix: fix e2e --- test/e2e/tests/tokens/token-list.spec.ts | 2 ++ test/e2e/tests/tokens/utils/mocks.ts | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/test/e2e/tests/tokens/token-list.spec.ts b/test/e2e/tests/tokens/token-list.spec.ts index 5daa84e54fb7..06ff4b0d1f89 100644 --- a/test/e2e/tests/tokens/token-list.spec.ts +++ b/test/e2e/tests/tokens/token-list.spec.ts @@ -14,6 +14,7 @@ import { mockEmptyPrices, mockHistoricalPrices, mockSpotPrices, + mockSupportedChainIds, } from './utils/mocks'; const isFirefox = process.env.SELENIUM_BROWSER === Browser.FIREFOX; @@ -88,6 +89,7 @@ describe('Token List', function () { [zeroAddress()]: marketDataNative, [tokenAddress.toLowerCase()]: marketData, }), + await mockSupportedChainIds(mockServer, ['1']), await mockHistoricalPrices(mockServer, { address: tokenAddress, chainId, diff --git a/test/e2e/tests/tokens/utils/mocks.ts b/test/e2e/tests/tokens/utils/mocks.ts index 26883700b2fa..cd9a842062a1 100644 --- a/test/e2e/tests/tokens/utils/mocks.ts +++ b/test/e2e/tests/tokens/utils/mocks.ts @@ -44,6 +44,21 @@ export const mockSpotPrices = async ( })); }; +export const mockSupportedChainIds = async ( + mockServer: Mockttp, + supportedChainIds: string[], +) => { + return mockServer.forGet('/v1/supportedNetworks').thenCallback(() => ({ + statusCode: 200, + json: { + fullSupport: supportedChainIds, + partialSupport: { + spotPricesV2: supportedChainIds, + }, + }, + })); +}; + type HistoricalPricesOptions = { address: string; chainId: string; From ee2999d31dbdd3087833d6d4ff587369bcef7578 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Tue, 4 Nov 2025 14:38:21 +0100 Subject: [PATCH 18/24] fix: update version --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 778e450d3e82..a2bec99a602a 100644 --- a/package.json +++ b/package.json @@ -269,7 +269,7 @@ "@metamask/address-book-controller": "^7.0.0", "@metamask/announcement-controller": "^8.0.0", "@metamask/approval-controller": "^8.0.0", - "@metamask/assets-controllers": "npm:@metamask-previews/assets-controllers@86.0.0-preview-eee46d4b", + "@metamask/assets-controllers": "npm:@metamask-previews/assets-controllers@87.0.0-preview-8315c2ec", "@metamask/base-controller": "^9.0.0", "@metamask/bitcoin-wallet-snap": "^1.4.3", "@metamask/bridge-controller": "^56.0.3", diff --git a/yarn.lock b/yarn.lock index 1e08d976b7b8..7561420e7a79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5584,9 +5584,9 @@ __metadata: languageName: node linkType: hard -"@metamask/assets-controllers@npm:@metamask-previews/assets-controllers@86.0.0-preview-eee46d4b": - version: 86.0.0-preview-eee46d4b - resolution: "@metamask-previews/assets-controllers@npm:86.0.0-preview-eee46d4b" +"@metamask/assets-controllers@npm:@metamask-previews/assets-controllers@87.0.0-preview-8315c2ec": + version: 87.0.0-preview-8315c2ec + resolution: "@metamask-previews/assets-controllers@npm:87.0.0-preview-8315c2ec" dependencies: "@ethereumjs/util": "npm:^9.1.0" "@ethersproject/abi": "npm:^5.7.0" @@ -5632,7 +5632,7 @@ __metadata: "@metamask/snaps-controllers": ^14.0.0 "@metamask/transaction-controller": ^61.0.0 webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0 - checksum: 10/602362d241d90f81bbf60d754c6f394b355f45f12aac78a6df1d78d9daf621dff7d417e6973ea9247b3b77b9acdb9fe275968b1a1736fa53c92007baf55d0d94 + checksum: 10/5501b5f2a77467bbbaeaa842b4cde0fdbc381509baf2375cf7e08cdc4556ba65f452b3ce25030ee9806c4da98849bae52bcf15d6fcbcc48f749a5263f5bcf15f languageName: node linkType: hard @@ -31853,7 +31853,7 @@ __metadata: "@metamask/announcement-controller": "npm:^8.0.0" "@metamask/api-specs": "npm:^0.13.0" "@metamask/approval-controller": "npm:^8.0.0" - "@metamask/assets-controllers": "npm:@metamask-previews/assets-controllers@86.0.0-preview-eee46d4b" + "@metamask/assets-controllers": "npm:@metamask-previews/assets-controllers@87.0.0-preview-8315c2ec" "@metamask/auto-changelog": "npm:^5.1.0" "@metamask/base-controller": "npm:^9.0.0" "@metamask/bitcoin-wallet-snap": "npm:^1.4.3" From 788cf12576af48f8b2fe544ca9c0e104ef368ed0 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Tue, 4 Nov 2025 15:20:56 +0100 Subject: [PATCH 19/24] fix: fix integ test --- .../data/integration-init-state.json | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/test/integration/data/integration-init-state.json b/test/integration/data/integration-init-state.json index e0f5bc92d8d4..9c9254bad64c 100644 --- a/test/integration/data/integration-init-state.json +++ b/test/integration/data/integration-init-state.json @@ -1120,6 +1120,53 @@ } }, "subscriptions": [], + "supportedChainIds": { + "data": [ + "0x1", + "0xa", + "0x38", + "0x64", + "0x89", + "0xfa", + "0x144", + "0x2105", + "0xa4b1", + "0xa86a", + "0xe708", + "0x19", + "0x39", + "0x42", + "0x46", + "0x52", + "0x58", + "0x6a", + "0x7a", + "0x80", + "0x8f", + "0x92", + "0x120", + "0x141", + "0x150", + "0x169", + "0x440", + "0x44d", + "0x504", + "0x505", + "0x531", + "0x1388", + "0x2710", + "0xa4ec", + "0xa516", + "0x13e31", + "0x17dcd", + "0x28c58", + "0x518af", + "0x82750", + "0x4e454152", + "0x63564c40" + ], + "timestamp": 1762161779526 + }, "swapsState": { "quotes": {}, "quotesPollingLimitEnabled": false, From 24383827f418fe41a0215bff3cc70157727fe8b7 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Tue, 4 Nov 2025 15:30:34 +0100 Subject: [PATCH 20/24] fix: fix defi messenger --- .../defi-positions-controller-messenger.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/scripts/controller-init/messengers/defi-positions/defi-positions-controller-messenger.ts b/app/scripts/controller-init/messengers/defi-positions/defi-positions-controller-messenger.ts index 21f78a3b9960..b02403f2afe9 100644 --- a/app/scripts/controller-init/messengers/defi-positions/defi-positions-controller-messenger.ts +++ b/app/scripts/controller-init/messengers/defi-positions/defi-positions-controller-messenger.ts @@ -1,7 +1,3 @@ -import { - AccountsControllerAccountAddedEvent, - AccountsControllerListAccountsAction, -} from '@metamask/accounts-controller'; import { Messenger } from '@metamask/messenger'; import { TransactionControllerTransactionConfirmedEvent } from '@metamask/transaction-controller'; import { @@ -10,6 +6,10 @@ import { } from '@metamask/keyring-controller'; import { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller'; +import { + AccountTreeControllerGetAccountsFromSelectedAccountGroupAction, + AccountTreeControllerSelectedAccountGroupChangeEvent, +} from '@metamask/account-tree-controller'; import { MetaMetricsControllerTrackEventAction } from '../../../controllers/metametrics-controller'; import { RootMessenger } from '../../../lib/messenger'; @@ -17,13 +17,14 @@ export type DefiPositionsControllerMessenger = ReturnType< typeof getDeFiPositionsControllerMessenger >; -type AllowedActions = AccountsControllerListAccountsAction; +type AllowedActions = + AccountTreeControllerGetAccountsFromSelectedAccountGroupAction; type AllowedEvents = | KeyringControllerUnlockEvent | KeyringControllerLockEvent | TransactionControllerTransactionConfirmedEvent - | AccountsControllerAccountAddedEvent; + | AccountTreeControllerSelectedAccountGroupChangeEvent; /** * Get a restricted messenger for the Defi Positions controller. This is scoped to the @@ -46,12 +47,12 @@ export function getDeFiPositionsControllerMessenger( }); messenger.delegate({ messenger: controllerMessenger, - actions: ['AccountsController:listAccounts'], + actions: ['AccountTreeController:getAccountsFromSelectedAccountGroup'], events: [ 'KeyringController:unlock', 'KeyringController:lock', 'TransactionController:transactionConfirmed', - 'AccountsController:accountAdded', + 'AccountTreeController:selectedAccountGroupChange', ], }); return controllerMessenger; From 7c0da5b39bacba18445496135ede7ee3f1b9e99c Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Tue, 4 Nov 2025 16:20:22 +0100 Subject: [PATCH 21/24] fix: fix e2e --- .../errors-after-init-opt-in-background-state.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json b/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json index fc36f0936a37..0348c8b637e3 100644 --- a/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json +++ b/test/e2e/tests/metrics/state-snapshots/errors-after-init-opt-in-background-state.json @@ -391,7 +391,10 @@ "tokensChainsCache": { "0x539": "object" }, "preventPollingOnNetworkRestart": false }, - "TokenRatesController": { "marketData": "object" }, + "TokenRatesController": { + "marketData": "object", + "supportedChainIds": "object" + }, "TokensController": { "allTokens": {}, "allIgnoredTokens": {}, From 374fccb70566a366d387f850bf77886ba314acdf Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Tue, 4 Nov 2025 16:46:11 +0100 Subject: [PATCH 22/24] fix: fix e2e --- test/e2e/tests/tokens/token-details.spec.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/e2e/tests/tokens/token-details.spec.ts b/test/e2e/tests/tokens/token-details.spec.ts index 37bb1c5e44bf..0c9b4931755d 100644 --- a/test/e2e/tests/tokens/token-details.spec.ts +++ b/test/e2e/tests/tokens/token-details.spec.ts @@ -13,6 +13,7 @@ import { mockEmptyPrices, mockHistoricalPrices, mockSpotPrices, + mockSupportedChainIds, } from './utils/mocks'; describe('Token Details', function () { @@ -83,6 +84,7 @@ describe('Token Details', function () { await mockSpotPrices(mockServer, chainId, { [tokenAddress.toLowerCase()]: marketData, }), + await mockSupportedChainIds(mockServer, ['1']), await mockHistoricalPrices(mockServer, { address: tokenAddress, chainId, From 32a051543421219fca126d3ae175b7abb92db5d5 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Tue, 4 Nov 2025 17:45:03 +0100 Subject: [PATCH 23/24] fix: fix e2e --- .../tests/privacy/onboarding-token-price-call-privacy.spec.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/e2e/tests/privacy/onboarding-token-price-call-privacy.spec.ts b/test/e2e/tests/privacy/onboarding-token-price-call-privacy.spec.ts index eaffcf6c5577..3463ceb5b7fe 100644 --- a/test/e2e/tests/privacy/onboarding-token-price-call-privacy.spec.ts +++ b/test/e2e/tests/privacy/onboarding-token-price-call-privacy.spec.ts @@ -8,6 +8,7 @@ import { importSRPOnboardingFlow, createNewWalletOnboardingFlow, } from '../../page-objects/flows/onboarding.flow'; +import { mockSupportedChainIds } from '../tokens/utils/mocks'; // Mock function implementation for Token Price requests async function mockTokenPriceApi( @@ -21,6 +22,7 @@ async function mockTokenPriceApi( statusCode: 200, json: {}, })), + await mockSupportedChainIds(mockServer, ['1']), ]; } From 2be6130d54586d920b802bc78788d21de4cd9217 Mon Sep 17 00:00:00 2001 From: sahar-fehri Date: Wed, 5 Nov 2025 11:09:46 +0100 Subject: [PATCH 24/24] fix: nit --- .../dapp-swap-comparison/useDappSwapComparisonInfo.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.ts b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.ts index 0aaaa43227cd..fe074a61ab9d 100644 --- a/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.ts +++ b/ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapComparisonInfo.ts @@ -186,7 +186,6 @@ export function useDappSwapComparisonInfo() { simulationData, ); - console.log('===================='); captureDappSwapComparisonMetricsProperties({ properties: { // eslint-disable-next-line @typescript-eslint/naming-convention