@metamask/assets-controllers 54.0.0 → 55.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [55.0.1]
11
+
12
+ ### Added
13
+
14
+ - Add an optional chainId argument to `addNftContract` function in NftController ([#5508](https://github.com/MetaMask/core/pull/5508))
15
+
16
+ ## [55.0.0]
17
+
18
+ ### Changed
19
+
20
+ - **BREAKING:** Bump peer dependency `@metamask/accounts-controller` to `^27.0.0` ([#5507](https://github.com/MetaMask/core/pull/5507))
21
+ - **BREAKING:** Bump peer dependency `@metamask/network-controller` to `^23.0.0` ([#5507](https://github.com/MetaMask/core/pull/5507))
22
+ - Bump `@metamask/polling-controller` to `^13.0.0` ([#5507](https://github.com/MetaMask/core/pull/5507))
23
+
10
24
  ## [54.0.0]
11
25
 
12
26
  ### Changed
@@ -1478,7 +1492,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1478
1492
 
1479
1493
  - Use Ethers for AssetsContractController ([#845](https://github.com/MetaMask/core/pull/845))
1480
1494
 
1481
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@54.0.0...HEAD
1495
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@55.0.1...HEAD
1496
+ [55.0.1]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@55.0.0...@metamask/assets-controllers@55.0.1
1497
+ [55.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@54.0.0...@metamask/assets-controllers@55.0.0
1482
1498
  [54.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@53.1.1...@metamask/assets-controllers@54.0.0
1483
1499
  [53.1.1]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@53.1.0...@metamask/assets-controllers@53.1.1
1484
1500
  [53.1.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@53.0.0...@metamask/assets-controllers@53.1.0
@@ -65,8 +65,8 @@ type AccountTrackerPollingInput = {
65
65
  networkClientId: NetworkClientId;
66
66
  };
67
67
  declare const AccountTrackerController_base: (abstract new (...args: any[]) => {
68
- readonly "__#13@#intervalIds": Record<string, NodeJS.Timeout>;
69
- "__#13@#intervalLength": number | undefined;
68
+ readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
69
+ "__#14@#intervalLength": number | undefined;
70
70
  setIntervalLength(intervalLength: number): void;
71
71
  getIntervalLength(): number | undefined;
72
72
  _startPolling(input: AccountTrackerPollingInput): void; /**
@@ -65,8 +65,8 @@ type AccountTrackerPollingInput = {
65
65
  networkClientId: NetworkClientId;
66
66
  };
67
67
  declare const AccountTrackerController_base: (abstract new (...args: any[]) => {
68
- readonly "__#13@#intervalIds": Record<string, NodeJS.Timeout>;
69
- "__#13@#intervalLength": number | undefined;
68
+ readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
69
+ "__#14@#intervalLength": number | undefined;
70
70
  setIntervalLength(intervalLength: number): void;
71
71
  getIntervalLength(): number | undefined;
72
72
  _startPolling(input: AccountTrackerPollingInput): void; /**
@@ -29,8 +29,8 @@ type CurrencyRatePollingInput = {
29
29
  nativeCurrencies: string[];
30
30
  };
31
31
  declare const CurrencyRateController_base: (abstract new (...args: any[]) => {
32
- readonly "__#13@#intervalIds": Record<string, NodeJS.Timeout>;
33
- "__#13@#intervalLength": number | undefined;
32
+ readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
33
+ "__#14@#intervalLength": number | undefined;
34
34
  setIntervalLength(intervalLength: number): void;
35
35
  getIntervalLength(): number | undefined;
36
36
  _startPolling(input: CurrencyRatePollingInput): void;
@@ -29,8 +29,8 @@ type CurrencyRatePollingInput = {
29
29
  nativeCurrencies: string[];
30
30
  };
31
31
  declare const CurrencyRateController_base: (abstract new (...args: any[]) => {
32
- readonly "__#13@#intervalIds": Record<string, NodeJS.Timeout>;
33
- "__#13@#intervalLength": number | undefined;
32
+ readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
33
+ "__#14@#intervalLength": number | undefined;
34
34
  setIntervalLength(intervalLength: number): void;
35
35
  getIntervalLength(): number | undefined;
36
36
  _startPolling(input: CurrencyRatePollingInput): void;
@@ -67,8 +67,8 @@ export type MultichainAssetsRatesPollingInput = {
67
67
  accountId: string;
68
68
  };
69
69
  declare const MultichainAssetsRatesController_base: (abstract new (...args: any[]) => {
70
- readonly "__#13@#intervalIds": Record<string, NodeJS.Timeout>;
71
- "__#13@#intervalLength": number | undefined;
70
+ readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
71
+ "__#14@#intervalLength": number | undefined;
72
72
  setIntervalLength(intervalLength: number): void;
73
73
  getIntervalLength(): number | undefined;
74
74
  _startPolling(input: MultichainAssetsRatesPollingInput): void;
@@ -67,8 +67,8 @@ export type MultichainAssetsRatesPollingInput = {
67
67
  accountId: string;
68
68
  };
69
69
  declare const MultichainAssetsRatesController_base: (abstract new (...args: any[]) => {
70
- readonly "__#13@#intervalIds": Record<string, NodeJS.Timeout>;
71
- "__#13@#intervalLength": number | undefined;
70
+ readonly "__#14@#intervalIds": Record<string, NodeJS.Timeout>;
71
+ "__#14@#intervalLength": number | undefined;
72
72
  setIntervalLength(intervalLength: number): void;
73
73
  getIntervalLength(): number | undefined;
74
74
  _startPolling(input: MultichainAssetsRatesPollingInput): void;
@@ -232,6 +232,7 @@ class NftController extends base_controller_1.BaseController {
232
232
  return;
233
233
  }
234
234
  const checksumHexAddress = (0, controller_utils_1.toChecksumHexAddress)(tokenAddress);
235
+ // TODO: revisit this with Solana support and instead of passing chainId, make sure chainId is read from nftMetadata
235
236
  const chainIdToAddTo = chainId || __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getCorrectChainId).call(this, { networkClientId });
236
237
  nftMetadata =
237
238
  nftMetadata ||
@@ -242,6 +243,7 @@ class NftController extends base_controller_1.BaseController {
242
243
  networkClientId,
243
244
  source,
244
245
  nftMetadata,
246
+ chainIdHex: source === constants_1.Source.Detected ? chainIdToAddTo : undefined,
245
247
  });
246
248
  // If NFT contract was not added, do not add individual NFT
247
249
  const nftContract = newNftContracts.find((contract) => contract.address.toLowerCase() === checksumHexAddress.toLowerCase());
@@ -1012,16 +1014,16 @@ async function _NftController_addIndividualNft(tokenAddress, tokenId, nftMetadat
1012
1014
  * @param options.nftMetadata - The retrieved NFTMetadata from API.
1013
1015
  * @param options.networkClientId - The networkClientId that can be used to identify the network client to use for this request.
1014
1016
  * @param options.source - Whether the NFT was detected, added manually or suggested by a dapp.
1017
+ * @param options.chainIdHex - The chainId to add the NFT contract to.
1015
1018
  * @returns Promise resolving to the current NFT contracts list.
1016
1019
  */
1017
- async function _NftController_addNftContract({ tokenAddress, userAddress, networkClientId, source, nftMetadata, }) {
1020
+ async function _NftController_addNftContract({ tokenAddress, userAddress, networkClientId, source, nftMetadata, chainIdHex, }) {
1018
1021
  const releaseLock = await __classPrivateFieldGet(this, _NftController_mutex, "f").acquire();
1019
1022
  try {
1020
1023
  const checksumHexAddress = (0, controller_utils_1.toChecksumHexAddress)(tokenAddress);
1021
1024
  const { allNftContracts } = this.state;
1022
- const chainId = __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getCorrectChainId).call(this, {
1023
- networkClientId,
1024
- });
1025
+ // TODO: revisit this with Solana support and instead of passing chainId, make sure chainId is read from nftMetadata when nftMetadata is available
1026
+ const chainId = chainIdHex || __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getCorrectChainId).call(this, { networkClientId });
1025
1027
  const nftContracts = allNftContracts[userAddress]?.[chainId] || [];
1026
1028
  const existingEntry = nftContracts.find((nftContract) => nftContract.address.toLowerCase() ===
1027
1029
  checksumHexAddress.toLowerCase());