@metamask/assets-controllers 95.3.0 → 97.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/dist/AccountTrackerController.d.cts +2 -2
  3. package/dist/AccountTrackerController.d.mts +2 -2
  4. package/dist/CurrencyRateController.d.cts +2 -2
  5. package/dist/CurrencyRateController.d.mts +2 -2
  6. package/dist/DeFiPositionsController/DeFiPositionsController.d.cts +2 -2
  7. package/dist/DeFiPositionsController/DeFiPositionsController.d.mts +2 -2
  8. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.cts +2 -2
  9. package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.mts +2 -2
  10. package/dist/NftController.cjs +2 -47
  11. package/dist/NftController.cjs.map +1 -1
  12. package/dist/NftController.d.cts +0 -10
  13. package/dist/NftController.d.cts.map +1 -1
  14. package/dist/NftController.d.mts +0 -10
  15. package/dist/NftController.d.mts.map +1 -1
  16. package/dist/NftController.mjs +2 -47
  17. package/dist/NftController.mjs.map +1 -1
  18. package/dist/TokenBalancesController.d.cts +2 -2
  19. package/dist/TokenBalancesController.d.mts +2 -2
  20. package/dist/TokenDetectionController.d.cts +2 -2
  21. package/dist/TokenDetectionController.d.mts +2 -2
  22. package/dist/TokenListController.d.cts +2 -2
  23. package/dist/TokenListController.d.mts +2 -2
  24. package/dist/TokenRatesController.cjs +8 -1
  25. package/dist/TokenRatesController.cjs.map +1 -1
  26. package/dist/TokenRatesController.d.cts +4 -3
  27. package/dist/TokenRatesController.d.cts.map +1 -1
  28. package/dist/TokenRatesController.d.mts +4 -3
  29. package/dist/TokenRatesController.d.mts.map +1 -1
  30. package/dist/TokenRatesController.mjs +8 -1
  31. package/dist/TokenRatesController.mjs.map +1 -1
  32. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.cjs +3 -53
  33. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.cjs.map +1 -1
  34. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.d.cts +1 -12
  35. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.d.cts.map +1 -1
  36. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.d.mts +1 -12
  37. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.d.mts.map +1 -1
  38. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.mjs +3 -53
  39. package/dist/TokenSearchDiscoveryDataController/TokenSearchDiscoveryDataController.mjs.map +1 -1
  40. package/dist/selectors/token-selectors.cjs +1 -1
  41. package/dist/selectors/token-selectors.cjs.map +1 -1
  42. package/dist/selectors/token-selectors.mjs +1 -1
  43. package/dist/selectors/token-selectors.mjs.map +1 -1
  44. package/dist/token-prices-service/abstract-token-prices-service.cjs.map +1 -1
  45. package/dist/token-prices-service/abstract-token-prices-service.d.cts +12 -1
  46. package/dist/token-prices-service/abstract-token-prices-service.d.cts.map +1 -1
  47. package/dist/token-prices-service/abstract-token-prices-service.d.mts +12 -1
  48. package/dist/token-prices-service/abstract-token-prices-service.d.mts.map +1 -1
  49. package/dist/token-prices-service/abstract-token-prices-service.mjs.map +1 -1
  50. package/dist/token-prices-service/codefi-v2.cjs +229 -20
  51. package/dist/token-prices-service/codefi-v2.cjs.map +1 -1
  52. package/dist/token-prices-service/codefi-v2.d.cts +78 -4
  53. package/dist/token-prices-service/codefi-v2.d.cts.map +1 -1
  54. package/dist/token-prices-service/codefi-v2.d.mts +78 -4
  55. package/dist/token-prices-service/codefi-v2.d.mts.map +1 -1
  56. package/dist/token-prices-service/codefi-v2.mjs +223 -20
  57. package/dist/token-prices-service/codefi-v2.mjs.map +1 -1
  58. package/dist/token-prices-service/index.cjs +4 -1
  59. package/dist/token-prices-service/index.cjs.map +1 -1
  60. package/dist/token-prices-service/index.d.cts +2 -2
  61. package/dist/token-prices-service/index.d.cts.map +1 -1
  62. package/dist/token-prices-service/index.d.mts +2 -2
  63. package/dist/token-prices-service/index.d.mts.map +1 -1
  64. package/dist/token-prices-service/index.mjs +1 -1
  65. package/dist/token-prices-service/index.mjs.map +1 -1
  66. package/package.json +4 -3
package/CHANGELOG.md CHANGED
@@ -7,6 +7,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [97.0.0]
11
+
12
+ ### Added
13
+
14
+ - Add dynamic fetching of supported networks from `/v2/supportedNetworks` API endpoint with fallback to hardcoded list ([#7716](https://github.com/MetaMask/core/pull/7716))
15
+ - Add `fetchSupportedNetworks()`, `getSupportedNetworks()`, and `resetSupportedNetworksCache()` exports from token-prices-service
16
+ - Add `setNativeAssetIdentifiers()` method to `CodefiTokenPricesServiceV2` for CAIP-19 native token lookups
17
+ - Add `updateSupportedNetworks()` method to `CodefiTokenPricesServiceV2`
18
+ - Add `NativeAssetIdentifiersMap` type export from token-prices-service
19
+
20
+ ### Changed
21
+
22
+ - **BREAKING:** Integrate `TokenRatesController` with `NetworkEnablementController` to use native asset identifiers for token price lookups ([#7716](https://github.com/MetaMask/core/pull/7716))
23
+ - Bump `@metamask/keyring-controller` from `^25.0.0` to `^25.1.0` ([#7713](https://github.com/MetaMask/core/pull/7713))
24
+ - Add `@metamask/network-enablement-controller` as a dependency ([#7716](https://github.com/MetaMask/core/pull/7716))
25
+
26
+ ### Removed
27
+
28
+ - **BREAKING:** Remove swaps token fetching functionality from TokenSearchDiscoveryDataController ([#7712](https://github.com/MetaMask/core/pull/7712))
29
+ - Remove `swapsTokenAddressesByChainId` from controller state
30
+ - Remove `swapsSupportedChainIds`, `fetchTokens`, and `fetchSwapsTokensThresholdMs` constructor parameters
31
+ - Remove `fetchSwapsTokens` method
32
+
33
+ ## [96.0.0]
34
+
35
+ ### Added
36
+
37
+ - Add dynamic fetching of supported currencies from `/v1/supportedVsCurrencies` API endpoint with fallback to hardcoded list ([#7699](https://github.com/MetaMask/core/pull/7699))
38
+
39
+ ### Changed
40
+
41
+ - Removed call to NFT collections endpoint ([#7687](https://github.com/MetaMask/core/pull/7687))
42
+ - Bump `@metamask/multichain-account-service` from `^5.0.0` to `^5.1.0` ([#7678](https://github.com/MetaMask/core/pull/7678))
43
+ - Set zero address for native token of Henesys/MSU ([#7666](https://github.com/MetaMask/core/pull/7666))
44
+
45
+ ### Removed
46
+
47
+ - **BREAKING:** Remove unused deprecated `getNFTContractInfo` function from NftController ([#7703](https://github.com/MetaMask/core/pull/7703))
48
+
49
+ ### Fixed
50
+
51
+ - Fix crash in `selectAllMultichainAssets` selector when asset metadata is missing `units` property ([#7702](https://github.com/MetaMask/core/pull/7702))
52
+
10
53
  ## [95.3.0]
11
54
 
12
55
  ### Added
@@ -2528,7 +2571,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2528
2571
 
2529
2572
  - Use Ethers for AssetsContractController ([#845](https://github.com/MetaMask/core/pull/845))
2530
2573
 
2531
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@95.3.0...HEAD
2574
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@97.0.0...HEAD
2575
+ [97.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@96.0.0...@metamask/assets-controllers@97.0.0
2576
+ [96.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@95.3.0...@metamask/assets-controllers@96.0.0
2532
2577
  [95.3.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@95.2.0...@metamask/assets-controllers@95.3.0
2533
2578
  [95.2.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@95.1.0...@metamask/assets-controllers@95.2.0
2534
2579
  [95.1.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@95.0.0...@metamask/assets-controllers@95.1.0
@@ -90,8 +90,8 @@ type AccountTrackerPollingInput = {
90
90
  queryAllAccounts?: boolean;
91
91
  };
92
92
  declare const AccountTrackerController_base: (abstract new (...args: any[]) => {
93
- readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
94
- "__#14@#intervalLength": number | undefined;
93
+ readonly "__#15@#intervalIds": Record<string, NodeJS.Timeout>;
94
+ "__#15@#intervalLength": number | undefined;
95
95
  setIntervalLength(intervalLength: number): void;
96
96
  getIntervalLength(): number | undefined;
97
97
  _startPolling(input: AccountTrackerPollingInput): void;
@@ -90,8 +90,8 @@ type AccountTrackerPollingInput = {
90
90
  queryAllAccounts?: boolean;
91
91
  };
92
92
  declare const AccountTrackerController_base: (abstract new (...args: any[]) => {
93
- readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
94
- "__#14@#intervalLength": number | undefined;
93
+ readonly "__#15@#intervalIds": Record<string, NodeJS.Timeout>;
94
+ "__#15@#intervalLength": number | undefined;
95
95
  setIntervalLength(intervalLength: number): void;
96
96
  getIntervalLength(): number | undefined;
97
97
  _startPolling(input: AccountTrackerPollingInput): void;
@@ -33,8 +33,8 @@ type CurrencyRatePollingInput = {
33
33
  nativeCurrencies: string[];
34
34
  };
35
35
  declare const CurrencyRateController_base: (abstract new (...args: any[]) => {
36
- readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
37
- "__#14@#intervalLength": number | undefined;
36
+ readonly "__#15@#intervalIds": Record<string, NodeJS.Timeout>;
37
+ "__#15@#intervalLength": number | undefined;
38
38
  setIntervalLength(intervalLength: number): void;
39
39
  getIntervalLength(): number | undefined;
40
40
  _startPolling(input: CurrencyRatePollingInput): void;
@@ -33,8 +33,8 @@ type CurrencyRatePollingInput = {
33
33
  nativeCurrencies: string[];
34
34
  };
35
35
  declare const CurrencyRateController_base: (abstract new (...args: any[]) => {
36
- readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
37
- "__#14@#intervalLength": number | undefined;
36
+ readonly "__#15@#intervalIds": Record<string, NodeJS.Timeout>;
37
+ "__#15@#intervalLength": number | undefined;
38
38
  setIntervalLength(intervalLength: number): void;
39
39
  getIntervalLength(): number | undefined;
40
40
  _startPolling(input: CurrencyRatePollingInput): void;
@@ -57,8 +57,8 @@ export type AllowedEvents = KeyringControllerLockEvent | TransactionControllerTr
57
57
  */
58
58
  export type DeFiPositionsControllerMessenger = Messenger<typeof controllerName, DeFiPositionsControllerActions | AllowedActions, DeFiPositionsControllerEvents | AllowedEvents>;
59
59
  declare const DeFiPositionsController_base: (abstract new (...args: any[]) => {
60
- readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
61
- "__#14@#intervalLength": number | undefined;
60
+ readonly "__#15@#intervalIds": Record<string, NodeJS.Timeout>;
61
+ "__#15@#intervalLength": number | undefined;
62
62
  setIntervalLength(intervalLength: number): void;
63
63
  getIntervalLength(): number | undefined;
64
64
  _startPolling(input: import("@metamask/utils").Json): void;
@@ -57,8 +57,8 @@ export type AllowedEvents = KeyringControllerLockEvent | TransactionControllerTr
57
57
  */
58
58
  export type DeFiPositionsControllerMessenger = Messenger<typeof controllerName, DeFiPositionsControllerActions | AllowedActions, DeFiPositionsControllerEvents | AllowedEvents>;
59
59
  declare const DeFiPositionsController_base: (abstract new (...args: any[]) => {
60
- readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
61
- "__#14@#intervalLength": number | undefined;
60
+ readonly "__#15@#intervalIds": Record<string, NodeJS.Timeout>;
61
+ "__#15@#intervalLength": number | undefined;
62
62
  setIntervalLength(intervalLength: number): void;
63
63
  getIntervalLength(): number | undefined;
64
64
  _startPolling(input: import("@metamask/utils").Json): void;
@@ -81,8 +81,8 @@ export type ConversionRatesWithMarketData = {
81
81
  conversionRates: Record<CaipAssetType, Record<CaipAssetType, UnifiedAssetConversion | null>>;
82
82
  };
83
83
  declare const MultichainAssetsRatesController_base: (abstract new (...args: any[]) => {
84
- readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
85
- "__#14@#intervalLength": number | undefined;
84
+ readonly "__#15@#intervalIds": Record<string, NodeJS.Timeout>;
85
+ "__#15@#intervalLength": number | undefined;
86
86
  setIntervalLength(intervalLength: number): void;
87
87
  getIntervalLength(): number | undefined;
88
88
  _startPolling(input: MultichainAssetsRatesPollingInput): void;
@@ -81,8 +81,8 @@ export type ConversionRatesWithMarketData = {
81
81
  conversionRates: Record<CaipAssetType, Record<CaipAssetType, UnifiedAssetConversion | null>>;
82
82
  };
83
83
  declare const MultichainAssetsRatesController_base: (abstract new (...args: any[]) => {
84
- readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
85
- "__#14@#intervalLength": number | undefined;
84
+ readonly "__#15@#intervalIds": Record<string, NodeJS.Timeout>;
85
+ "__#15@#intervalLength": number | undefined;
86
86
  setIntervalLength(intervalLength: number): void;
87
87
  getIntervalLength(): number | undefined;
88
88
  _startPolling(input: MultichainAssetsRatesPollingInput): void;
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
- var _NftController_instances, _NftController_mutex, _NftController_selectedAccountId, _NftController_ipfsGateway, _NftController_displayNftMedia, _NftController_useIpfsSubdomains, _NftController_isIpfsGatewayEnabled, _NftController_onNftAdded, _NftController_onPreferencesControllerStateChange, _NftController_onSelectedAccountChange, _NftController_updateNestedNftState, _NftController_getNftCollectionApi, _NftController_getNftInformationFromApi, _NftController_getNftInformationFromTokenURI, _NftController_getNftURIAndStandard, _NftController_getNftInformation, _NftController_getNftContractInformationFromContract, _NftController_getNftContractInformation, _NftController_addIndividualNft, _NftController_addNftContract, _NftController_removeAndIgnoreIndividualNft, _NftController_removeIndividualNft, _NftController_removeNftContract, _NftController_validateWatchNft, _NftController_getAddressOrSelectedAddress, _NftController_updateNftUpdateForAccount, _NftController_bulkSanitizeNftMetadata, _NftController_sanitizeNftMetadata;
16
+ var _NftController_instances, _NftController_mutex, _NftController_selectedAccountId, _NftController_ipfsGateway, _NftController_displayNftMedia, _NftController_useIpfsSubdomains, _NftController_isIpfsGatewayEnabled, _NftController_onNftAdded, _NftController_onPreferencesControllerStateChange, _NftController_onSelectedAccountChange, _NftController_updateNestedNftState, _NftController_getNftInformationFromApi, _NftController_getNftInformationFromTokenURI, _NftController_getNftURIAndStandard, _NftController_getNftInformation, _NftController_getNftContractInformationFromContract, _NftController_getNftContractInformation, _NftController_addIndividualNft, _NftController_addNftContract, _NftController_removeAndIgnoreIndividualNft, _NftController_removeIndividualNft, _NftController_removeNftContract, _NftController_validateWatchNft, _NftController_getAddressOrSelectedAddress, _NftController_updateNftUpdateForAccount, _NftController_bulkSanitizeNftMetadata, _NftController_sanitizeNftMetadata;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.NftController = exports.getDefaultNftControllerState = void 0;
19
19
  const address_1 = require("@ethersproject/address");
@@ -600,25 +600,6 @@ class NftController extends base_controller_1.BaseController {
600
600
  });
601
601
  return true;
602
602
  }
603
- /**
604
- * Fetches NFT Collection Metadata from the NFT API.
605
- *
606
- * @param contractAddresses - The contract addresses of the NFTs.
607
- * @param chainId - The chain ID of the network where the NFT is located.
608
- * @returns NFT collections metadata.
609
- */
610
- async getNFTContractInfo(contractAddresses, chainId) {
611
- const url = new URL(__classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getNftCollectionApi).call(this));
612
- url.searchParams.append('chainId', chainId);
613
- for (const address of contractAddresses) {
614
- url.searchParams.append('contract', address);
615
- }
616
- return await (0, controller_utils_1.handleFetch)(url, {
617
- headers: {
618
- Version: controller_utils_1.NFT_API_VERSION,
619
- },
620
- });
621
- }
622
603
  async _requestApproval(suggestedNftMeta) {
623
604
  return this.messenger.call('ApprovalController:addRequest', {
624
605
  id: suggestedNftMeta.id,
@@ -707,8 +688,6 @@ async function _NftController_onSelectedAccountChange(internalAccount) {
707
688
  [userAddress]: newAddressState,
708
689
  };
709
690
  });
710
- }, _NftController_getNftCollectionApi = function _NftController_getNftCollectionApi() {
711
- return `${controller_utils_1.NFT_API_BASE_URL}/collections`;
712
691
  }, _NftController_getNftInformationFromApi =
713
692
  /**
714
693
  * Request individual NFT information from NFT API.
@@ -736,20 +715,6 @@ async function _NftController_getNftInformationFromApi(contractAddress, tokenId)
736
715
  },
737
716
  },
738
717
  });
739
- // Params for getCollections API call
740
- const getCollectionParams = new URLSearchParams({
741
- chainId: '1',
742
- id: `${nftInformation?.tokens[0]?.token?.collection?.id}`,
743
- }).toString();
744
- // Fetch collection information using collectionId
745
- const collectionInformation = await (0, controller_utils_1.fetchWithErrorHandling)({
746
- url: `${controller_utils_1.NFT_API_BASE_URL}/collections?${getCollectionParams}`,
747
- options: {
748
- headers: {
749
- Version: controller_utils_1.NFT_API_VERSION,
750
- },
751
- },
752
- });
753
718
  // if we were still unable to fetch the data we return out the default/null of `NftMetadata`
754
719
  if (!nftInformation?.tokens?.[0]?.token) {
755
720
  return {
@@ -765,17 +730,7 @@ async function _NftController_getNftInformationFromApi(contractAddress, tokenId)
765
730
  /* istanbul ignore next */
766
731
  const nftMetadata = Object.assign({}, { name: name || null }, { description: description || null }, { image: image || null }, collection?.creator && { creator: collection.creator }, imageOriginal && { imageOriginal }, imageSmall && { imageThumbnail: imageSmall }, kind && { standard: kind.toUpperCase() }, lastSale && { lastSale }, attributes && { attributes }, nftInformation.tokens[0].market?.topBid && {
767
732
  topBid: nftInformation.tokens[0].market?.topBid,
768
- }, rarityRank && { rarityRank }, rarity && { rarity }, (collection || collectionInformation) && {
769
- collection: {
770
- ...(collection || {}),
771
- creator: collection?.creator ||
772
- collectionInformation?.collections[0].creator,
773
- openseaVerificationStatus: collectionInformation?.collections[0].openseaVerificationStatus,
774
- contractDeployedAt: collectionInformation?.collections[0].contractDeployedAt,
775
- ownerCount: collectionInformation?.collections[0].ownerCount,
776
- topBid: collectionInformation?.collections[0].topBid,
777
- },
778
- });
733
+ }, rarityRank && { rarityRank }, rarity && { rarity }, collection && { collection });
779
734
  return nftMetadata;
780
735
  }, _NftController_getNftInformationFromTokenURI =
781
736
  /**