@metamask-previews/assets-controllers 113.2.0-preview-4a5ac306d → 113.2.0-preview-b6e8e7385
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 +0 -10
- package/dist/NftController.d.ts.map +1 -1
- package/dist/NftController.js +21 -51
- package/dist/NftController.js.map +1 -1
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.ts.map +1 -1
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.js +14 -3
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.js.map +1 -1
- package/dist/Standards/NftStandards/ERC721/ERC721Standard.d.ts.map +1 -1
- package/dist/Standards/NftStandards/ERC721/ERC721Standard.js +13 -3
- package/dist/Standards/NftStandards/ERC721/ERC721Standard.js.map +1 -1
- package/dist/assetsUtil.d.ts +0 -36
- package/dist/assetsUtil.d.ts.map +1 -1
- package/dist/assetsUtil.js +2 -80
- package/dist/assetsUtil.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,16 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
### Changed
|
|
11
|
-
|
|
12
|
-
- Bump `@metamask/abi-utils` from `^2.0.4` to `^3.0.0` ([#11356](https://github.com/MetaMask/core/pull/11356))
|
|
13
|
-
|
|
14
|
-
### Fixed
|
|
15
|
-
|
|
16
|
-
- Stop passing `data:` NFT token URIs to `fetch`, which crashed clients whose `fetch` cannot decode `data:` URLs (e.g. MetaMask Mobile) ([#11308](https://github.com/MetaMask/core/pull/11308))
|
|
17
|
-
- `NftController` now decodes JSON `data:` token URIs (`data:application/json`, base64 or percent-encoded, with optional parameters such as `;charset=utf-8`) inline when adding or refreshing NFTs, and falls back to empty metadata for malformed or non-JSON `data:` token URIs
|
|
18
|
-
- `ERC721Standard.getDetails` and `ERC1155Standard.getDetails` decode JSON `data:` token URIs inline instead of fetching them
|
|
19
|
-
|
|
20
10
|
## [113.2.0]
|
|
21
11
|
|
|
22
12
|
### Added
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NftController.d.ts","sourceRoot":"","sources":["../src/NftController.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+CAA+C,EAC/C,kCAAkC,EAClC,0CAA0C,EAC3C,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EAEzB,MAAM,2BAA2B,CAAC;AAiBnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EACV,eAAe,EACf,mDAAmD,EACnD,2CAA2C,EAC5C,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AAK1F,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,kCAAkC,CAAC;AAE9F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAM3C,OAAO,KAAK,EACV,gDAAgD,EAChD,gDAAgD,EAChD,kDAAkD,EAClD,+CAA+C,EAChD,MAAM,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"NftController.d.ts","sourceRoot":"","sources":["../src/NftController.ts"],"names":[],"mappings":"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"}
|
package/dist/NftController.js
CHANGED
|
@@ -8,7 +8,7 @@ import { remove0x } from '@metamask/utils';
|
|
|
8
8
|
import { Mutex } from 'async-mutex';
|
|
9
9
|
import BN from 'bn.js';
|
|
10
10
|
import { v4 as random } from 'uuid';
|
|
11
|
-
import { compareNftMetadata, getFormattedIpfsUrl, hasNewCollectionFields,
|
|
11
|
+
import { compareNftMetadata, getFormattedIpfsUrl, hasNewCollectionFields, reduceInBatchesSerially, } from './assetsUtil.js';
|
|
12
12
|
import { Source } from './constants.js';
|
|
13
13
|
import { getNftOwnershipForMultipleNfts } from './multicall.js';
|
|
14
14
|
const nftControllerMetadata = {
|
|
@@ -52,15 +52,6 @@ export const getDefaultNftControllerState = () => ({
|
|
|
52
52
|
ignoredNfts: [],
|
|
53
53
|
});
|
|
54
54
|
const NFT_UPDATE_THRESHOLD = 500;
|
|
55
|
-
/**
|
|
56
|
-
* Narrows an untrusted token URI metadata field to a string.
|
|
57
|
-
*
|
|
58
|
-
* @param value - The metadata field value.
|
|
59
|
-
* @returns The value if it is a string, otherwise `null`.
|
|
60
|
-
*/
|
|
61
|
-
function toStringOrNull(value) {
|
|
62
|
-
return typeof value === 'string' ? value : null;
|
|
63
|
-
}
|
|
64
55
|
/**
|
|
65
56
|
* Controller that stores assets and exposes convenience methods
|
|
66
57
|
*/
|
|
@@ -268,53 +259,32 @@ export class NftController extends BaseController {
|
|
|
268
259
|
tokenURI: tokenURI ?? null,
|
|
269
260
|
};
|
|
270
261
|
}
|
|
271
|
-
const fallbackMetadata = {
|
|
272
|
-
image: null,
|
|
273
|
-
name: null,
|
|
274
|
-
description: null,
|
|
275
|
-
standard: standard || null,
|
|
276
|
-
favorite: false,
|
|
277
|
-
tokenURI: tokenURI ?? null,
|
|
278
|
-
};
|
|
279
|
-
// Never hand a `data:` URL to `fetch`: not every client's `fetch` can
|
|
280
|
-
// decode them (e.g. it crashes MetaMask Mobile). JSON metadata is decoded
|
|
281
|
-
// inline; any other `data:` media type gets the safe fallback.
|
|
282
|
-
if (isDataUri(tokenURI)) {
|
|
283
|
-
const object = parseJsonDataUri(tokenURI);
|
|
284
|
-
return object
|
|
285
|
-
? this.#buildNftMetadataFromTokenURIObject(object, standard, tokenURI)
|
|
286
|
-
: fallbackMetadata;
|
|
287
|
-
}
|
|
288
262
|
try {
|
|
289
263
|
const object = await handleFetch(tokenURI);
|
|
290
|
-
|
|
264
|
+
// TODO: Check image_url existence. This is not part of EIP721 nor EIP1155
|
|
265
|
+
const image = Object.prototype.hasOwnProperty.call(object, 'image')
|
|
266
|
+
? 'image'
|
|
267
|
+
: /* istanbul ignore next */ 'image_url';
|
|
268
|
+
return {
|
|
269
|
+
image: object[image],
|
|
270
|
+
name: object.name,
|
|
271
|
+
description: object.description,
|
|
272
|
+
standard,
|
|
273
|
+
favorite: false,
|
|
274
|
+
tokenURI: tokenURI ?? null,
|
|
275
|
+
};
|
|
291
276
|
}
|
|
292
277
|
catch {
|
|
293
|
-
return
|
|
278
|
+
return {
|
|
279
|
+
image: null,
|
|
280
|
+
name: null,
|
|
281
|
+
description: null,
|
|
282
|
+
standard: standard || null,
|
|
283
|
+
favorite: false,
|
|
284
|
+
tokenURI: tokenURI ?? null,
|
|
285
|
+
};
|
|
294
286
|
}
|
|
295
287
|
}
|
|
296
|
-
/**
|
|
297
|
-
* Builds NFT metadata from the JSON object a token URI resolves to.
|
|
298
|
-
*
|
|
299
|
-
* @param object - The JSON metadata object the token URI resolves to.
|
|
300
|
-
* @param standard - The NFT standard.
|
|
301
|
-
* @param tokenURI - The token URI.
|
|
302
|
-
* @returns The NFT metadata.
|
|
303
|
-
*/
|
|
304
|
-
#buildNftMetadataFromTokenURIObject(object, standard, tokenURI) {
|
|
305
|
-
// TODO: Check image_url existence. This is not part of EIP721 nor EIP1155
|
|
306
|
-
const image = Object.prototype.hasOwnProperty.call(object, 'image')
|
|
307
|
-
? 'image'
|
|
308
|
-
: /* istanbul ignore next */ 'image_url';
|
|
309
|
-
return {
|
|
310
|
-
image: toStringOrNull(object[image]),
|
|
311
|
-
name: toStringOrNull(object.name),
|
|
312
|
-
description: toStringOrNull(object.description),
|
|
313
|
-
standard: standard || null,
|
|
314
|
-
favorite: false,
|
|
315
|
-
tokenURI,
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
288
|
/**
|
|
319
289
|
* Retrieve NFT uri with metadata. TODO Update method to use IPFS.
|
|
320
290
|
*
|