@metamask-previews/assets-controllers 65.0.0-preview-88a682b → 65.0.0-preview-4f323233
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 +10 -0
- package/dist/AccountTrackerController.d.cts +2 -2
- package/dist/AccountTrackerController.d.mts +2 -2
- package/dist/CurrencyRateController.d.cts +2 -2
- package/dist/CurrencyRateController.d.mts +2 -2
- package/dist/DeFiPositionsController/DeFiPositionsController.d.cts +2 -2
- package/dist/DeFiPositionsController/DeFiPositionsController.d.mts +2 -2
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.cts +2 -2
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.mts +2 -2
- package/dist/NftController.cjs +126 -10
- package/dist/NftController.cjs.map +1 -1
- package/dist/NftController.d.cts +9 -1
- package/dist/NftController.d.cts.map +1 -1
- package/dist/NftController.d.mts +9 -1
- package/dist/NftController.d.mts.map +1 -1
- package/dist/NftController.mjs +126 -10
- package/dist/NftController.mjs.map +1 -1
- package/dist/TokenBalancesController.d.cts +2 -2
- package/dist/TokenBalancesController.d.mts +2 -2
- package/dist/TokenDetectionController.d.cts +2 -2
- package/dist/TokenDetectionController.d.mts +2 -2
- package/dist/TokenListController.d.cts +2 -2
- package/dist/TokenListController.d.mts +2 -2
- package/dist/TokenRatesController.d.cts +2 -2
- package/dist/TokenRatesController.d.mts +2 -2
- package/package.json +3 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NftController.d.mts","sourceRoot":"","sources":["../src/NftController.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"NftController.d.mts","sourceRoot":"","sources":["../src/NftController.ts"],"names":[],"mappings":"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"}
|
package/dist/NftController.mjs
CHANGED
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
11
11
|
};
|
12
|
-
var _NftController_instances, _NftController_mutex, _NftController_selectedAccountId, _NftController_chainId, _NftController_ipfsGateway, _NftController_openSeaEnabled, _NftController_useIpfsSubdomains, _NftController_isIpfsGatewayEnabled, _NftController_onNftAdded, _NftController_onNetworkControllerNetworkDidChange, _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_getCorrectChainId, _NftController_getAddressOrSelectedAddress, _NftController_updateNftUpdateForAccount;
|
12
|
+
var _NftController_instances, _NftController_mutex, _NftController_selectedAccountId, _NftController_chainId, _NftController_ipfsGateway, _NftController_openSeaEnabled, _NftController_useIpfsSubdomains, _NftController_isIpfsGatewayEnabled, _NftController_onNftAdded, _NftController_onNetworkControllerNetworkDidChange, _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_getCorrectChainId, _NftController_getAddressOrSelectedAddress, _NftController_updateNftUpdateForAccount, _NftController_bulkSanitizeNftMetadata, _NftController_sanitizeNftMetadata;
|
13
13
|
function $importDefault(module) {
|
14
14
|
if (module?.__esModule) {
|
15
15
|
return module.default;
|
@@ -19,6 +19,7 @@ function $importDefault(module) {
|
|
19
19
|
import { isAddress } from "@ethersproject/address";
|
20
20
|
import { BaseController } from "@metamask/base-controller";
|
21
21
|
import { safelyExecute, handleFetch, toChecksumHexAddress, BNToHex, fetchWithErrorHandling, IPFS_DEFAULT_GATEWAY_URL, ERC721, ERC1155, ApprovalType, NFT_API_BASE_URL, NFT_API_VERSION, convertHexToDecimal } from "@metamask/controller-utils";
|
22
|
+
import { RecommendedAction } from "@metamask/phishing-controller";
|
22
23
|
import { rpcErrors } from "@metamask/rpc-errors";
|
23
24
|
import { remove0x } from "@metamask/utils";
|
24
25
|
import { Mutex } from "async-mutex";
|
@@ -124,11 +125,13 @@ export class NftController extends BaseController {
|
|
124
125
|
}
|
125
126
|
await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_validateWatchNft).call(this, asset, type, addressToSearch);
|
126
127
|
const nftMetadata = await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getNftInformation).call(this, asset.address, asset.tokenId, networkClientId);
|
127
|
-
|
128
|
-
|
128
|
+
// Sanitize metadata
|
129
|
+
const sanitizedMetadata = await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_sanitizeNftMetadata).call(this, nftMetadata);
|
130
|
+
if (sanitizedMetadata.standard && sanitizedMetadata.standard !== type) {
|
131
|
+
throw rpcErrors.invalidInput(`Suggested NFT of type ${sanitizedMetadata.standard} does not match received type ${type}`);
|
129
132
|
}
|
130
133
|
const suggestedNftMeta = {
|
131
|
-
asset: { ...asset, ...
|
134
|
+
asset: { ...asset, ...sanitizedMetadata },
|
132
135
|
type,
|
133
136
|
id: random(),
|
134
137
|
time: Date.now(),
|
@@ -137,7 +140,7 @@ export class NftController extends BaseController {
|
|
137
140
|
};
|
138
141
|
await this._requestApproval(suggestedNftMeta);
|
139
142
|
const { address, tokenId } = asset;
|
140
|
-
const { name, standard, description, image } =
|
143
|
+
const { name, standard, description, image } = sanitizedMetadata;
|
141
144
|
await this.addNft(address, tokenId, {
|
142
145
|
nftMetadata: {
|
143
146
|
name: name ?? null,
|
@@ -234,9 +237,15 @@ export class NftController extends BaseController {
|
|
234
237
|
const checksumHexAddress = toChecksumHexAddress(tokenAddress);
|
235
238
|
// TODO: revisit this with Solana support and instead of passing chainId, make sure chainId is read from nftMetadata
|
236
239
|
const chainIdToAddTo = chainId || __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getCorrectChainId).call(this, { networkClientId });
|
237
|
-
nftMetadata
|
238
|
-
|
239
|
-
|
240
|
+
if (!nftMetadata) {
|
241
|
+
const fetchedMetadata = await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getNftInformation).call(this, checksumHexAddress, tokenId, networkClientId);
|
242
|
+
// Sanitize metadata
|
243
|
+
nftMetadata = await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_sanitizeNftMetadata).call(this, fetchedMetadata);
|
244
|
+
}
|
245
|
+
else {
|
246
|
+
// Sanitize provided metadata
|
247
|
+
nftMetadata = await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_sanitizeNftMetadata).call(this, nftMetadata);
|
248
|
+
}
|
240
249
|
const newNftContracts = await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_addNftContract).call(this, {
|
241
250
|
tokenAddress: checksumHexAddress,
|
242
251
|
userAddress: addressToSearch,
|
@@ -275,13 +284,23 @@ export class NftController extends BaseController {
|
|
275
284
|
address: toChecksumHexAddress(nft.address),
|
276
285
|
};
|
277
286
|
});
|
278
|
-
|
287
|
+
// Get all unsanitized nft metadata
|
288
|
+
const unsanitizedResults = await Promise.all(nftsWithChecksumAdr.map(async (nft) => {
|
279
289
|
const resMetadata = await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getNftInformation).call(this, nft.address, nft.tokenId, networkClientId);
|
280
290
|
return {
|
281
291
|
nft,
|
282
292
|
newMetadata: resMetadata,
|
283
293
|
};
|
284
294
|
}));
|
295
|
+
// Extract metadata
|
296
|
+
const unsanitizedMetadata = unsanitizedResults.map((result) => result.newMetadata);
|
297
|
+
// Sanitize all metadata
|
298
|
+
const sanitizedMetadata = await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_bulkSanitizeNftMetadata).call(this, unsanitizedMetadata);
|
299
|
+
// Reassemble the results with sanitized metadata
|
300
|
+
const nftMetadataResults = unsanitizedResults.map((result, index) => ({
|
301
|
+
nft: result.nft,
|
302
|
+
newMetadata: sanitizedMetadata[index],
|
303
|
+
}));
|
285
304
|
// We want to avoid updating the state if the state and fetched nft info are the same
|
286
305
|
const nftsWithDifferentMetadata = [];
|
287
306
|
const { allNfts } = this.state;
|
@@ -856,7 +875,7 @@ async function _NftController_getNftInformation(contractAddress, tokenId, networ
|
|
856
875
|
? safelyExecute(() => __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getNftInformationFromApi).call(this, contractAddress, tokenId))
|
857
876
|
: undefined,
|
858
877
|
]);
|
859
|
-
|
878
|
+
const metadata = {
|
860
879
|
...nftApiMetadata,
|
861
880
|
name: blockchainMetadata?.name ?? nftApiMetadata?.name ?? null,
|
862
881
|
description: blockchainMetadata?.description ?? nftApiMetadata?.description ?? null,
|
@@ -864,6 +883,8 @@ async function _NftController_getNftInformation(contractAddress, tokenId, networ
|
|
864
883
|
standard: blockchainMetadata?.standard ?? nftApiMetadata?.standard ?? null,
|
865
884
|
tokenURI: blockchainMetadata?.tokenURI ?? null,
|
866
885
|
};
|
886
|
+
// Sanitize the metadata by checking external links against phishing protection
|
887
|
+
return await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_sanitizeNftMetadata).call(this, metadata);
|
867
888
|
}, _NftController_getNftContractInformationFromContract =
|
868
889
|
/**
|
869
890
|
* Request NFT contract information from the contract itself.
|
@@ -1175,6 +1196,101 @@ async function _NftController_addNftContract({ tokenAddress, userAddress, networ
|
|
1175
1196
|
userAddress: account.address,
|
1176
1197
|
});
|
1177
1198
|
}
|
1199
|
+
}, _NftController_bulkSanitizeNftMetadata =
|
1200
|
+
/**
|
1201
|
+
* Sanitizes multiple NFT metadata objects by checking external links against PhishingController in a single bulk request
|
1202
|
+
*
|
1203
|
+
* @param metadataList - Array of NFT metadata objects to sanitize
|
1204
|
+
* @returns Array of sanitized NFT metadata objects
|
1205
|
+
*/
|
1206
|
+
async function _NftController_bulkSanitizeNftMetadata(metadataList) {
|
1207
|
+
// Create a copy of the metadata list to avoid mutating the input
|
1208
|
+
const sanitizedMetadataList = metadataList.map((metadata) => ({
|
1209
|
+
...metadata,
|
1210
|
+
}));
|
1211
|
+
// Maps URL to a list of {metadataIndex, fieldName} to track where each URL is used
|
1212
|
+
const urlMap = {};
|
1213
|
+
const fieldsToCheck = [
|
1214
|
+
'externalLink',
|
1215
|
+
'image',
|
1216
|
+
'imagePreview',
|
1217
|
+
'imageThumbnail',
|
1218
|
+
'imageOriginal',
|
1219
|
+
'animation',
|
1220
|
+
'animationOriginal',
|
1221
|
+
];
|
1222
|
+
// Collect all URLs from all metadata objects
|
1223
|
+
sanitizedMetadataList.forEach((metadata, metadataIndex) => {
|
1224
|
+
// Check regular fields
|
1225
|
+
for (const field of fieldsToCheck) {
|
1226
|
+
const url = metadata[field];
|
1227
|
+
if (typeof url === 'string' && url && url.startsWith('http')) {
|
1228
|
+
if (!urlMap[url]) {
|
1229
|
+
urlMap[url] = [];
|
1230
|
+
}
|
1231
|
+
urlMap[url].push({ metadataIndex, fieldName: field });
|
1232
|
+
}
|
1233
|
+
}
|
1234
|
+
// Check collection links if they exist
|
1235
|
+
if (metadata.collection) {
|
1236
|
+
const { collection } = metadata;
|
1237
|
+
if ('externalLink' in collection &&
|
1238
|
+
typeof collection.externalLink === 'string') {
|
1239
|
+
const url = collection.externalLink;
|
1240
|
+
if (!urlMap[url]) {
|
1241
|
+
urlMap[url] = [];
|
1242
|
+
}
|
1243
|
+
urlMap[url].push({
|
1244
|
+
metadataIndex,
|
1245
|
+
fieldName: 'collection.externalLink',
|
1246
|
+
});
|
1247
|
+
}
|
1248
|
+
}
|
1249
|
+
});
|
1250
|
+
const urlsToCheck = Object.keys(urlMap);
|
1251
|
+
if (urlsToCheck.length === 0) {
|
1252
|
+
return sanitizedMetadataList;
|
1253
|
+
}
|
1254
|
+
try {
|
1255
|
+
// Use bulkScanUrls to check all URLs at once
|
1256
|
+
const bulkScanResponse = await this.messagingSystem.call('PhishingController:bulkScanUrls', urlsToCheck);
|
1257
|
+
// Apply scan results to all metadata objects
|
1258
|
+
Object.entries(bulkScanResponse.results).forEach(([url, result]) => {
|
1259
|
+
if (result.recommendedAction === RecommendedAction.Block) {
|
1260
|
+
// Remove this URL from all metadata objects where it appears
|
1261
|
+
urlMap[url].forEach(({ metadataIndex, fieldName }) => {
|
1262
|
+
if (fieldName === 'collection.externalLink' &&
|
1263
|
+
sanitizedMetadataList[metadataIndex].collection // Check if collection exists
|
1264
|
+
) {
|
1265
|
+
const { collection } = sanitizedMetadataList[metadataIndex];
|
1266
|
+
// Ensure collection is not undefined again just to be safe before using 'in'
|
1267
|
+
if (collection && 'externalLink' in collection) {
|
1268
|
+
delete collection.externalLink;
|
1269
|
+
}
|
1270
|
+
}
|
1271
|
+
else {
|
1272
|
+
delete sanitizedMetadataList[metadataIndex][fieldName];
|
1273
|
+
}
|
1274
|
+
});
|
1275
|
+
}
|
1276
|
+
});
|
1277
|
+
}
|
1278
|
+
catch (error) {
|
1279
|
+
console.error('Error during bulk URL scanning:', error);
|
1280
|
+
// If bulk scan fails, we fall back to keeping all URLs
|
1281
|
+
}
|
1282
|
+
return sanitizedMetadataList;
|
1283
|
+
}, _NftController_sanitizeNftMetadata =
|
1284
|
+
/**
|
1285
|
+
* Sanitizes NFT metadata by checking external links against PhishingController
|
1286
|
+
*
|
1287
|
+
* @param metadata - The NFT metadata to sanitize
|
1288
|
+
* @returns Sanitized NFT metadata with potentially dangerous links removed
|
1289
|
+
*/
|
1290
|
+
async function _NftController_sanitizeNftMetadata(metadata) {
|
1291
|
+
// Use the bulk sanitize function with just a single metadata object
|
1292
|
+
const sanitized = await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_bulkSanitizeNftMetadata).call(this, [metadata]);
|
1293
|
+
return sanitized[0];
|
1178
1294
|
};
|
1179
1295
|
export default NftController;
|
1180
1296
|
//# sourceMappingURL=NftController.mjs.map
|