@metamask/assets-controllers 32.0.0 → 34.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.
- package/CHANGELOG.md +95 -1
- package/dist/AccountTrackerController.js +2 -2
- package/dist/AccountTrackerController.mjs +1 -1
- package/dist/AssetsContractController.js +6 -6
- package/dist/AssetsContractController.mjs +5 -5
- package/dist/CurrencyRateController.js +3 -3
- package/dist/CurrencyRateController.mjs +2 -2
- package/dist/NftController.js +3 -3
- package/dist/NftController.mjs +2 -2
- package/dist/NftDetectionController.js +2 -2
- package/dist/NftDetectionController.mjs +1 -1
- package/dist/RatesController/RatesController.js +3 -3
- package/dist/RatesController/RatesController.mjs +2 -2
- package/dist/RatesController/index.js +3 -3
- package/dist/RatesController/index.mjs +2 -2
- package/dist/Standards/ERC20Standard.js +3 -3
- package/dist/Standards/ERC20Standard.mjs +2 -2
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.js +3 -3
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.mjs +2 -2
- package/dist/Standards/NftStandards/ERC721/ERC721Standard.js +3 -3
- package/dist/Standards/NftStandards/ERC721/ERC721Standard.mjs +2 -2
- package/dist/TokenBalancesController.js +2 -2
- package/dist/TokenBalancesController.mjs +1 -1
- package/dist/TokenDetectionController.js +3 -3
- package/dist/TokenDetectionController.mjs +2 -2
- package/dist/TokenListController.js +4 -4
- package/dist/TokenListController.mjs +3 -3
- package/dist/TokenRatesController.js +9 -5
- package/dist/TokenRatesController.mjs +10 -6
- package/dist/TokensController.js +6 -6
- package/dist/TokensController.mjs +5 -5
- package/dist/assetsUtil.js +2 -2
- package/dist/assetsUtil.mjs +1 -1
- package/dist/chunk-2IIQTSLV.mjs +236 -0
- package/dist/chunk-2IIQTSLV.mjs.map +1 -0
- package/dist/{chunk-4AC3X2U5.js → chunk-2NQRWANM.js} +85 -43
- package/dist/chunk-2NQRWANM.js.map +1 -0
- package/dist/{chunk-MR6EF4B7.mjs → chunk-2TSAUGE7.mjs} +43 -20
- package/dist/chunk-2TSAUGE7.mjs.map +1 -0
- package/dist/chunk-354SINOH.js +236 -0
- package/dist/chunk-354SINOH.js.map +1 -0
- package/dist/{chunk-5W5OO2Q5.mjs → chunk-47CRHAUE.mjs} +2 -2
- package/dist/chunk-47CRHAUE.mjs.map +1 -0
- package/dist/{chunk-73F3SN5O.mjs → chunk-4JLB5OIJ.mjs} +79 -37
- package/dist/chunk-4JLB5OIJ.mjs.map +1 -0
- package/dist/{chunk-D3K5MPMW.mjs → chunk-56O7BVZV.mjs} +2 -2
- package/dist/{chunk-B5YY22QQ.js → chunk-6PPM4ETZ.js} +3 -3
- package/dist/{chunk-WCCLSUOI.mjs → chunk-6VQJFTNC.mjs} +4 -4
- package/dist/chunk-6VQJFTNC.mjs.map +1 -0
- package/dist/{chunk-CGLUTXI7.js → chunk-7JWDWDXT.js} +190 -107
- package/dist/chunk-7JWDWDXT.js.map +1 -0
- package/dist/{chunk-JUI3XNEF.js → chunk-7OZL6IDY.js} +16 -9
- package/dist/chunk-7OZL6IDY.js.map +1 -0
- package/dist/{chunk-YIFA2HXH.js → chunk-F6L3DFOZ.js} +5 -3
- package/dist/chunk-F6L3DFOZ.js.map +1 -0
- package/dist/{chunk-HDI4L2DD.js → chunk-GHKGU6GK.js} +46 -23
- package/dist/chunk-GHKGU6GK.js.map +1 -0
- package/dist/{chunk-E4ECCGJV.mjs → chunk-GJCTAKK5.mjs} +197 -99
- package/dist/chunk-GJCTAKK5.mjs.map +1 -0
- package/dist/{chunk-B6W4CQOR.mjs → chunk-HJ5GXVDT.mjs} +2 -2
- package/dist/chunk-HJ5GXVDT.mjs.map +1 -0
- package/dist/chunk-HVOIBGYN.js +282 -0
- package/dist/chunk-HVOIBGYN.js.map +1 -0
- package/dist/{chunk-BOTVAG4A.js → chunk-JBF4XEGR.js} +5 -5
- package/dist/{chunk-ASA5RLBY.mjs → chunk-JEIAMJGS.mjs} +2 -2
- package/dist/{chunk-CNKVITJO.mjs → chunk-JTXPJ6TK.mjs} +4 -2
- package/dist/chunk-JTXPJ6TK.mjs.map +1 -0
- package/dist/{chunk-U3DJJN4X.js → chunk-LBJTMJFA.js} +4 -4
- package/dist/{chunk-IBK6AXPP.js → chunk-NHFZIY2K.js} +4 -4
- package/dist/chunk-NHFZIY2K.js.map +1 -0
- package/dist/{chunk-NEXY7SE2.js → chunk-NYVA7ZTQ.js} +2 -2
- package/dist/chunk-NYVA7ZTQ.js.map +1 -0
- package/dist/{chunk-UEDNQBJN.js → chunk-RPQ737HL.js} +202 -104
- package/dist/chunk-RPQ737HL.js.map +1 -0
- package/dist/{chunk-B5YVX5IO.mjs → chunk-SBWPU4VT.mjs} +4 -2
- package/dist/chunk-SBWPU4VT.mjs.map +1 -0
- package/dist/{chunk-ELSMS5S7.js → chunk-T5ZX5BV7.js} +3 -3
- package/dist/{chunk-ELSMS5S7.js.map → chunk-T5ZX5BV7.js.map} +1 -1
- package/dist/{chunk-HLCGZGPA.mjs → chunk-TWR6P5WG.mjs} +11 -7
- package/dist/chunk-TWR6P5WG.mjs.map +1 -0
- package/dist/{chunk-LZ5ZGQEX.mjs → chunk-UYH6NWKB.mjs} +2 -2
- package/dist/{chunk-Z6TBQQE5.js → chunk-V6DNVROD.js} +4 -4
- package/dist/chunk-V6DNVROD.js.map +1 -0
- package/dist/{chunk-Q5JRBGWO.mjs → chunk-VELPHITE.mjs} +2 -2
- package/dist/chunk-VELPHITE.mjs.map +1 -0
- package/dist/{chunk-62T7RKU3.mjs → chunk-W57QXOHJ.mjs} +188 -105
- package/dist/chunk-W57QXOHJ.mjs.map +1 -0
- package/dist/{chunk-PYMUBJQX.js → chunk-X4RMS365.js} +3 -3
- package/dist/chunk-X4RMS365.js.map +1 -0
- package/dist/{chunk-Y35SM7TO.mjs → chunk-XQO3EG4J.mjs} +4 -4
- package/dist/chunk-XQO3EG4J.mjs.map +1 -0
- package/dist/{chunk-QHWKLZUC.js → chunk-XSNGD5US.js} +14 -10
- package/dist/chunk-XSNGD5US.js.map +1 -0
- package/dist/{chunk-A2DDWXMS.mjs → chunk-Y45HQET7.mjs} +12 -5
- package/dist/chunk-Y45HQET7.mjs.map +1 -0
- package/dist/chunk-Z7RMCHD4.mjs +282 -0
- package/dist/chunk-Z7RMCHD4.mjs.map +1 -0
- package/dist/{chunk-WB6KJX4N.js → chunk-ZG5MS2TO.js} +4 -2
- package/dist/chunk-ZG5MS2TO.js.map +1 -0
- package/dist/crypto-compare-service/crypto-compare.js +2 -2
- package/dist/crypto-compare-service/crypto-compare.mjs +1 -1
- package/dist/crypto-compare-service/index.js +2 -2
- package/dist/crypto-compare-service/index.mjs +1 -1
- package/dist/index.js +21 -19
- package/dist/index.mjs +21 -19
- package/dist/token-prices-service/codefi-v2.js +2 -2
- package/dist/token-prices-service/codefi-v2.mjs +1 -1
- package/dist/token-prices-service/index.js +2 -2
- package/dist/token-prices-service/index.mjs +1 -1
- package/dist/token-service.js +3 -3
- package/dist/token-service.mjs +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/AccountTrackerController.d.ts +53 -68
- package/dist/types/AccountTrackerController.d.ts.map +1 -1
- package/dist/types/AssetsContractController.d.ts.map +1 -1
- package/dist/types/CurrencyRateController.d.ts.map +1 -1
- package/dist/types/NftController.d.ts +4 -5
- package/dist/types/NftController.d.ts.map +1 -1
- package/dist/types/NftDetectionController.d.ts +7 -18
- package/dist/types/NftDetectionController.d.ts.map +1 -1
- package/dist/types/RatesController/RatesController.d.ts.map +1 -1
- package/dist/types/TokenBalancesController.d.ts +2 -2
- package/dist/types/TokenBalancesController.d.ts.map +1 -1
- package/dist/types/TokenDetectionController.d.ts +4 -6
- package/dist/types/TokenDetectionController.d.ts.map +1 -1
- package/dist/types/TokenListController.d.ts.map +1 -1
- package/dist/types/TokenRatesController.d.ts +72 -65
- package/dist/types/TokenRatesController.d.ts.map +1 -1
- package/dist/types/TokensController.d.ts +4 -6
- package/dist/types/TokensController.d.ts.map +1 -1
- package/dist/types/assetsUtil.d.ts.map +1 -1
- package/dist/types/crypto-compare-service/crypto-compare.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/token-prices-service/abstract-token-prices-service.d.ts +0 -1
- package/dist/types/token-prices-service/abstract-token-prices-service.d.ts.map +1 -1
- package/dist/types/token-prices-service/codefi-v2.d.ts +1 -1
- package/dist/types/token-prices-service/codefi-v2.d.ts.map +1 -1
- package/dist/types/token-service.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-4AC3X2U5.js.map +0 -1
- package/dist/chunk-543CC74T.mjs +0 -253
- package/dist/chunk-543CC74T.mjs.map +0 -1
- package/dist/chunk-5W5OO2Q5.mjs.map +0 -1
- package/dist/chunk-62T7RKU3.mjs.map +0 -1
- package/dist/chunk-65PB33TE.mjs +0 -246
- package/dist/chunk-65PB33TE.mjs.map +0 -1
- package/dist/chunk-73F3SN5O.mjs.map +0 -1
- package/dist/chunk-A2DDWXMS.mjs.map +0 -1
- package/dist/chunk-B5YVX5IO.mjs.map +0 -1
- package/dist/chunk-B6W4CQOR.mjs.map +0 -1
- package/dist/chunk-CGLUTXI7.js.map +0 -1
- package/dist/chunk-CNKVITJO.mjs.map +0 -1
- package/dist/chunk-E4ECCGJV.mjs.map +0 -1
- package/dist/chunk-GU53EI7A.js +0 -246
- package/dist/chunk-GU53EI7A.js.map +0 -1
- package/dist/chunk-HDI4L2DD.js.map +0 -1
- package/dist/chunk-HLCGZGPA.mjs.map +0 -1
- package/dist/chunk-IBK6AXPP.js.map +0 -1
- package/dist/chunk-JUI3XNEF.js.map +0 -1
- package/dist/chunk-MR6EF4B7.mjs.map +0 -1
- package/dist/chunk-NEXY7SE2.js.map +0 -1
- package/dist/chunk-PYMUBJQX.js.map +0 -1
- package/dist/chunk-Q5JRBGWO.mjs.map +0 -1
- package/dist/chunk-QFDTOEYR.js +0 -253
- package/dist/chunk-QFDTOEYR.js.map +0 -1
- package/dist/chunk-QHWKLZUC.js.map +0 -1
- package/dist/chunk-UEDNQBJN.js.map +0 -1
- package/dist/chunk-WB6KJX4N.js.map +0 -1
- package/dist/chunk-WCCLSUOI.mjs.map +0 -1
- package/dist/chunk-Y35SM7TO.mjs.map +0 -1
- package/dist/chunk-YIFA2HXH.js.map +0 -1
- package/dist/chunk-Z6TBQQE5.js.map +0 -1
- /package/dist/{chunk-D3K5MPMW.mjs.map → chunk-56O7BVZV.mjs.map} +0 -0
- /package/dist/{chunk-B5YY22QQ.js.map → chunk-6PPM4ETZ.js.map} +0 -0
- /package/dist/{chunk-BOTVAG4A.js.map → chunk-JBF4XEGR.js.map} +0 -0
- /package/dist/{chunk-ASA5RLBY.mjs.map → chunk-JEIAMJGS.mjs.map} +0 -0
- /package/dist/{chunk-U3DJJN4X.js.map → chunk-LBJTMJFA.js.map} +0 -0
- /package/dist/{chunk-LZ5ZGQEX.mjs.map → chunk-UYH6NWKB.mjs.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compareNftMetadata,
|
|
3
3
|
getFormattedIpfsUrl
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-VELPHITE.mjs";
|
|
5
5
|
import {
|
|
6
6
|
__privateAdd,
|
|
7
7
|
__privateGet,
|
|
@@ -44,14 +44,13 @@ var getDefaultNftControllerState = () => ({
|
|
|
44
44
|
allNfts: {},
|
|
45
45
|
ignoredNfts: []
|
|
46
46
|
});
|
|
47
|
-
var _mutex,
|
|
47
|
+
var _mutex, _selectedAccountId, _chainId, _ipfsGateway, _openSeaEnabled, _useIpfsSubdomains, _isIpfsGatewayEnabled, _getERC721AssetName, _getERC721AssetSymbol, _getERC721TokenURI, _getERC721OwnerOf, _getERC1155BalanceOf, _getERC1155TokenURI, _onNftAdded, _onNetworkControllerNetworkDidChange, onNetworkControllerNetworkDidChange_fn, _onPreferencesControllerStateChange, onPreferencesControllerStateChange_fn, _onSelectedAccountChange, onSelectedAccountChange_fn, _updateNestedNftState, updateNestedNftState_fn, _getNftInformationFromApi, getNftInformationFromApi_fn, _getNftInformationFromTokenURI, getNftInformationFromTokenURI_fn, _getNftURIAndStandard, getNftURIAndStandard_fn, _getNftInformation, getNftInformation_fn, _getNftContractInformationFromContract, getNftContractInformationFromContract_fn, _getNftContractInformation, getNftContractInformation_fn, _addIndividualNft, addIndividualNft_fn, _addNftContract, addNftContract_fn, _removeAndIgnoreIndividualNft, removeAndIgnoreIndividualNft_fn, _removeIndividualNft, removeIndividualNft_fn, _removeNftContract, removeNftContract_fn, _validateWatchNft, validateWatchNft_fn, _getCorrectChainId, getCorrectChainId_fn, _getAddressOrSelectedAddress, getAddressOrSelectedAddress_fn, _updateNftUpdateForAccount, updateNftUpdateForAccount_fn;
|
|
48
48
|
var NftController = class extends BaseController {
|
|
49
49
|
/**
|
|
50
50
|
* Creates an NftController instance.
|
|
51
51
|
*
|
|
52
52
|
* @param options - The controller options.
|
|
53
53
|
* @param options.chainId - The chain ID of the current network.
|
|
54
|
-
* @param options.selectedAddress - The currently selected address.
|
|
55
54
|
* @param options.ipfsGateway - The configured IPFS gateway.
|
|
56
55
|
* @param options.openSeaEnabled - Controls whether the OpenSea API is used.
|
|
57
56
|
* @param options.useIpfsSubdomains - Controls whether IPFS subdomains are used.
|
|
@@ -69,7 +68,6 @@ var NftController = class extends BaseController {
|
|
|
69
68
|
*/
|
|
70
69
|
constructor({
|
|
71
70
|
chainId: initialChainId,
|
|
72
|
-
selectedAddress = "",
|
|
73
71
|
ipfsGateway = IPFS_DEFAULT_GATEWAY_URL,
|
|
74
72
|
openSeaEnabled = false,
|
|
75
73
|
useIpfsSubdomains = true,
|
|
@@ -102,12 +100,16 @@ var NftController = class extends BaseController {
|
|
|
102
100
|
/**
|
|
103
101
|
* Handles the state change of the preference controller.
|
|
104
102
|
* @param preferencesState - The new state of the preference controller.
|
|
105
|
-
* @param preferencesState.selectedAddress - The current selected address.
|
|
106
103
|
* @param preferencesState.ipfsGateway - The configured IPFS gateway.
|
|
107
104
|
* @param preferencesState.openSeaEnabled - Controls whether the OpenSea API is used.
|
|
108
105
|
* @param preferencesState.isIpfsGatewayEnabled - Controls whether IPFS is enabled or not.
|
|
109
106
|
*/
|
|
110
107
|
__privateAdd(this, _onPreferencesControllerStateChange);
|
|
108
|
+
/**
|
|
109
|
+
* Handles the selected account change on the accounts controller.
|
|
110
|
+
* @param internalAccount - The new selected account.
|
|
111
|
+
*/
|
|
112
|
+
__privateAdd(this, _onSelectedAccountChange);
|
|
111
113
|
/**
|
|
112
114
|
* Helper method to update nested state for allNfts and allNftContracts.
|
|
113
115
|
*
|
|
@@ -229,8 +231,10 @@ var NftController = class extends BaseController {
|
|
|
229
231
|
// temporary method to get the correct chainId until we remove chainId from the config & the chainId arg from the detection logic
|
|
230
232
|
// Just a helper method to prefer the networkClient chainId first then the chainId argument and then finally the config chainId
|
|
231
233
|
__privateAdd(this, _getCorrectChainId);
|
|
234
|
+
__privateAdd(this, _getAddressOrSelectedAddress);
|
|
235
|
+
__privateAdd(this, _updateNftUpdateForAccount);
|
|
232
236
|
__privateAdd(this, _mutex, new Mutex());
|
|
233
|
-
__privateAdd(this,
|
|
237
|
+
__privateAdd(this, _selectedAccountId, void 0);
|
|
234
238
|
__privateAdd(this, _chainId, void 0);
|
|
235
239
|
__privateAdd(this, _ipfsGateway, void 0);
|
|
236
240
|
__privateAdd(this, _openSeaEnabled, void 0);
|
|
@@ -243,7 +247,9 @@ var NftController = class extends BaseController {
|
|
|
243
247
|
__privateAdd(this, _getERC1155BalanceOf, void 0);
|
|
244
248
|
__privateAdd(this, _getERC1155TokenURI, void 0);
|
|
245
249
|
__privateAdd(this, _onNftAdded, void 0);
|
|
246
|
-
__privateSet(this,
|
|
250
|
+
__privateSet(this, _selectedAccountId, this.messagingSystem.call(
|
|
251
|
+
"AccountsController:getSelectedAccount"
|
|
252
|
+
).id);
|
|
247
253
|
__privateSet(this, _chainId, initialChainId);
|
|
248
254
|
__privateSet(this, _ipfsGateway, ipfsGateway);
|
|
249
255
|
__privateSet(this, _openSeaEnabled, openSeaEnabled);
|
|
@@ -258,12 +264,20 @@ var NftController = class extends BaseController {
|
|
|
258
264
|
__privateSet(this, _onNftAdded, onNftAdded);
|
|
259
265
|
this.messagingSystem.subscribe(
|
|
260
266
|
"PreferencesController:stateChange",
|
|
267
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
268
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
261
269
|
__privateMethod(this, _onPreferencesControllerStateChange, onPreferencesControllerStateChange_fn).bind(this)
|
|
262
270
|
);
|
|
263
271
|
this.messagingSystem.subscribe(
|
|
264
272
|
"NetworkController:networkDidChange",
|
|
265
273
|
__privateMethod(this, _onNetworkControllerNetworkDidChange, onNetworkControllerNetworkDidChange_fn).bind(this)
|
|
266
274
|
);
|
|
275
|
+
this.messagingSystem.subscribe(
|
|
276
|
+
"AccountsController:selectedEvmAccountChange",
|
|
277
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
278
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
279
|
+
__privateMethod(this, _onSelectedAccountChange, onSelectedAccountChange_fn).bind(this)
|
|
280
|
+
);
|
|
267
281
|
}
|
|
268
282
|
getNftApi() {
|
|
269
283
|
return `${NFT_API_BASE_URL}/tokens`;
|
|
@@ -284,11 +298,13 @@ var NftController = class extends BaseController {
|
|
|
284
298
|
*/
|
|
285
299
|
async watchNft(asset, type, origin, {
|
|
286
300
|
networkClientId,
|
|
287
|
-
userAddress
|
|
288
|
-
} = {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
301
|
+
userAddress
|
|
302
|
+
} = {}) {
|
|
303
|
+
const addressToSearch = __privateMethod(this, _getAddressOrSelectedAddress, getAddressOrSelectedAddress_fn).call(this, userAddress);
|
|
304
|
+
if (!addressToSearch) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
await __privateMethod(this, _validateWatchNft, validateWatchNft_fn).call(this, asset, type, addressToSearch);
|
|
292
308
|
const nftMetadata = await __privateMethod(this, _getNftInformation, getNftInformation_fn).call(this, asset.address, asset.tokenId, networkClientId);
|
|
293
309
|
if (nftMetadata.standard && nftMetadata.standard !== type) {
|
|
294
310
|
throw rpcErrors.invalidInput(
|
|
@@ -300,7 +316,7 @@ var NftController = class extends BaseController {
|
|
|
300
316
|
type,
|
|
301
317
|
id: random(),
|
|
302
318
|
time: Date.now(),
|
|
303
|
-
interactingAddress:
|
|
319
|
+
interactingAddress: addressToSearch,
|
|
304
320
|
origin
|
|
305
321
|
};
|
|
306
322
|
await this._requestApproval(suggestedNftMeta);
|
|
@@ -365,20 +381,19 @@ var NftController = class extends BaseController {
|
|
|
365
381
|
* @param options.source - Whether the NFT was detected, added manually or suggested by a dapp.
|
|
366
382
|
*/
|
|
367
383
|
async addNftVerifyOwnership(address, tokenId, {
|
|
368
|
-
userAddress
|
|
384
|
+
userAddress,
|
|
369
385
|
networkClientId,
|
|
370
386
|
source
|
|
371
|
-
} = {
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
if (!await this.isNftOwner(userAddress, address, tokenId, {
|
|
387
|
+
} = {}) {
|
|
388
|
+
const addressToSearch = __privateMethod(this, _getAddressOrSelectedAddress, getAddressOrSelectedAddress_fn).call(this, userAddress);
|
|
389
|
+
if (!await this.isNftOwner(addressToSearch, address, tokenId, {
|
|
375
390
|
networkClientId
|
|
376
391
|
})) {
|
|
377
392
|
throw new Error("This NFT is not owned by the user");
|
|
378
393
|
}
|
|
379
394
|
await this.addNft(address, tokenId, {
|
|
380
395
|
networkClientId,
|
|
381
|
-
userAddress,
|
|
396
|
+
userAddress: addressToSearch,
|
|
382
397
|
source
|
|
383
398
|
});
|
|
384
399
|
}
|
|
@@ -396,16 +411,20 @@ var NftController = class extends BaseController {
|
|
|
396
411
|
*/
|
|
397
412
|
async addNft(tokenAddress, tokenId, {
|
|
398
413
|
nftMetadata,
|
|
399
|
-
userAddress
|
|
414
|
+
userAddress,
|
|
400
415
|
source = "custom" /* Custom */,
|
|
401
416
|
networkClientId
|
|
402
|
-
} = {
|
|
417
|
+
} = {}) {
|
|
418
|
+
const addressToSearch = __privateMethod(this, _getAddressOrSelectedAddress, getAddressOrSelectedAddress_fn).call(this, userAddress);
|
|
419
|
+
if (!addressToSearch) {
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
403
422
|
const checksumHexAddress = toChecksumHexAddress(tokenAddress);
|
|
404
423
|
const chainId = __privateMethod(this, _getCorrectChainId, getCorrectChainId_fn).call(this, { networkClientId });
|
|
405
424
|
nftMetadata = nftMetadata || await __privateMethod(this, _getNftInformation, getNftInformation_fn).call(this, checksumHexAddress, tokenId, networkClientId);
|
|
406
425
|
const newNftContracts = await __privateMethod(this, _addNftContract, addNftContract_fn).call(this, {
|
|
407
426
|
tokenAddress: checksumHexAddress,
|
|
408
|
-
userAddress,
|
|
427
|
+
userAddress: addressToSearch,
|
|
409
428
|
networkClientId,
|
|
410
429
|
source,
|
|
411
430
|
nftMetadata
|
|
@@ -414,7 +433,7 @@ var NftController = class extends BaseController {
|
|
|
414
433
|
(contract) => contract.address.toLowerCase() === checksumHexAddress.toLowerCase()
|
|
415
434
|
);
|
|
416
435
|
if (nftContract) {
|
|
417
|
-
await __privateMethod(this, _addIndividualNft, addIndividualNft_fn).call(this, checksumHexAddress, tokenId, nftMetadata, nftContract, chainId,
|
|
436
|
+
await __privateMethod(this, _addIndividualNft, addIndividualNft_fn).call(this, checksumHexAddress, tokenId, nftMetadata, nftContract, chainId, addressToSearch, source);
|
|
418
437
|
}
|
|
419
438
|
}
|
|
420
439
|
/**
|
|
@@ -427,46 +446,52 @@ var NftController = class extends BaseController {
|
|
|
427
446
|
*/
|
|
428
447
|
async updateNftMetadata({
|
|
429
448
|
nfts,
|
|
430
|
-
userAddress
|
|
449
|
+
userAddress,
|
|
431
450
|
networkClientId
|
|
432
451
|
}) {
|
|
433
|
-
const
|
|
434
|
-
const
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
};
|
|
439
|
-
});
|
|
440
|
-
const nftMetadataResults = await Promise.all(
|
|
441
|
-
nftsWithChecksumAdr.map(async (nft) => {
|
|
442
|
-
const resMetadata = await __privateMethod(this, _getNftInformation, getNftInformation_fn).call(this, nft.address, nft.tokenId, networkClientId);
|
|
452
|
+
const addressToSearch = __privateMethod(this, _getAddressOrSelectedAddress, getAddressOrSelectedAddress_fn).call(this, userAddress);
|
|
453
|
+
const releaseLock = await __privateGet(this, _mutex).acquire();
|
|
454
|
+
try {
|
|
455
|
+
const chainId = __privateMethod(this, _getCorrectChainId, getCorrectChainId_fn).call(this, { networkClientId });
|
|
456
|
+
const nftsWithChecksumAdr = nfts.map((nft) => {
|
|
443
457
|
return {
|
|
444
|
-
nft,
|
|
445
|
-
|
|
458
|
+
...nft,
|
|
459
|
+
address: toChecksumHexAddress(nft.address)
|
|
446
460
|
};
|
|
447
|
-
})
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
461
|
+
});
|
|
462
|
+
const nftMetadataResults = await Promise.all(
|
|
463
|
+
nftsWithChecksumAdr.map(async (nft) => {
|
|
464
|
+
const resMetadata = await __privateMethod(this, _getNftInformation, getNftInformation_fn).call(this, nft.address, nft.tokenId, networkClientId);
|
|
465
|
+
return {
|
|
466
|
+
nft,
|
|
467
|
+
newMetadata: resMetadata
|
|
468
|
+
};
|
|
469
|
+
})
|
|
455
470
|
);
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
471
|
+
const nftsWithDifferentMetadata = [];
|
|
472
|
+
const { allNfts } = this.state;
|
|
473
|
+
const stateNfts = allNfts[addressToSearch]?.[chainId] || [];
|
|
474
|
+
nftMetadataResults.forEach((singleNft) => {
|
|
475
|
+
const existingEntry = stateNfts.find(
|
|
476
|
+
(nft) => nft.address.toLowerCase() === singleNft.nft.address.toLowerCase() && nft.tokenId === singleNft.nft.tokenId
|
|
460
477
|
);
|
|
461
|
-
if (
|
|
462
|
-
|
|
478
|
+
if (existingEntry) {
|
|
479
|
+
const differentMetadata = compareNftMetadata(
|
|
480
|
+
singleNft.newMetadata,
|
|
481
|
+
existingEntry
|
|
482
|
+
);
|
|
483
|
+
if (differentMetadata) {
|
|
484
|
+
nftsWithDifferentMetadata.push(singleNft);
|
|
485
|
+
}
|
|
463
486
|
}
|
|
487
|
+
});
|
|
488
|
+
if (nftsWithDifferentMetadata.length !== 0) {
|
|
489
|
+
nftsWithDifferentMetadata.forEach(
|
|
490
|
+
(elm) => this.updateNft(elm.nft, elm.newMetadata, addressToSearch, chainId)
|
|
491
|
+
);
|
|
464
492
|
}
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
nftsWithDifferentMetadata.forEach(
|
|
468
|
-
(elm) => this.updateNft(elm.nft, elm.newMetadata, userAddress, chainId)
|
|
469
|
-
);
|
|
493
|
+
} finally {
|
|
494
|
+
releaseLock();
|
|
470
495
|
}
|
|
471
496
|
}
|
|
472
497
|
/**
|
|
@@ -480,23 +505,25 @@ var NftController = class extends BaseController {
|
|
|
480
505
|
*/
|
|
481
506
|
removeNft(address, tokenId, {
|
|
482
507
|
networkClientId,
|
|
483
|
-
userAddress
|
|
484
|
-
} = {
|
|
485
|
-
|
|
486
|
-
}) {
|
|
508
|
+
userAddress
|
|
509
|
+
} = {}) {
|
|
510
|
+
const addressToSearch = __privateMethod(this, _getAddressOrSelectedAddress, getAddressOrSelectedAddress_fn).call(this, userAddress);
|
|
487
511
|
const chainId = __privateMethod(this, _getCorrectChainId, getCorrectChainId_fn).call(this, { networkClientId });
|
|
488
512
|
const checksumHexAddress = toChecksumHexAddress(address);
|
|
489
513
|
__privateMethod(this, _removeIndividualNft, removeIndividualNft_fn).call(this, checksumHexAddress, tokenId, {
|
|
490
514
|
chainId,
|
|
491
|
-
userAddress
|
|
515
|
+
userAddress: addressToSearch
|
|
492
516
|
});
|
|
493
517
|
const { allNfts } = this.state;
|
|
494
|
-
const nfts = allNfts[
|
|
518
|
+
const nfts = allNfts[addressToSearch]?.[chainId] || [];
|
|
495
519
|
const remainingNft = nfts.find(
|
|
496
520
|
(nft) => nft.address.toLowerCase() === checksumHexAddress.toLowerCase()
|
|
497
521
|
);
|
|
498
522
|
if (!remainingNft) {
|
|
499
|
-
__privateMethod(this, _removeNftContract, removeNftContract_fn).call(this, checksumHexAddress, {
|
|
523
|
+
__privateMethod(this, _removeNftContract, removeNftContract_fn).call(this, checksumHexAddress, {
|
|
524
|
+
chainId,
|
|
525
|
+
userAddress: addressToSearch
|
|
526
|
+
});
|
|
500
527
|
}
|
|
501
528
|
}
|
|
502
529
|
/**
|
|
@@ -510,23 +537,25 @@ var NftController = class extends BaseController {
|
|
|
510
537
|
*/
|
|
511
538
|
removeAndIgnoreNft(address, tokenId, {
|
|
512
539
|
networkClientId,
|
|
513
|
-
userAddress
|
|
514
|
-
} = {
|
|
515
|
-
|
|
516
|
-
}) {
|
|
540
|
+
userAddress
|
|
541
|
+
} = {}) {
|
|
542
|
+
const addressToSearch = __privateMethod(this, _getAddressOrSelectedAddress, getAddressOrSelectedAddress_fn).call(this, userAddress);
|
|
517
543
|
const chainId = __privateMethod(this, _getCorrectChainId, getCorrectChainId_fn).call(this, { networkClientId });
|
|
518
544
|
const checksumHexAddress = toChecksumHexAddress(address);
|
|
519
545
|
__privateMethod(this, _removeAndIgnoreIndividualNft, removeAndIgnoreIndividualNft_fn).call(this, checksumHexAddress, tokenId, {
|
|
520
546
|
chainId,
|
|
521
|
-
userAddress
|
|
547
|
+
userAddress: addressToSearch
|
|
522
548
|
});
|
|
523
549
|
const { allNfts } = this.state;
|
|
524
|
-
const nfts = allNfts[
|
|
550
|
+
const nfts = allNfts[addressToSearch]?.[chainId] || [];
|
|
525
551
|
const remainingNft = nfts.find(
|
|
526
552
|
(nft) => nft.address.toLowerCase() === checksumHexAddress.toLowerCase()
|
|
527
553
|
);
|
|
528
554
|
if (!remainingNft) {
|
|
529
|
-
__privateMethod(this, _removeNftContract, removeNftContract_fn).call(this, checksumHexAddress, {
|
|
555
|
+
__privateMethod(this, _removeNftContract, removeNftContract_fn).call(this, checksumHexAddress, {
|
|
556
|
+
chainId,
|
|
557
|
+
userAddress: addressToSearch
|
|
558
|
+
});
|
|
530
559
|
}
|
|
531
560
|
}
|
|
532
561
|
/**
|
|
@@ -549,16 +578,15 @@ var NftController = class extends BaseController {
|
|
|
549
578
|
* @returns the NFT with the updated isCurrentlyOwned value
|
|
550
579
|
*/
|
|
551
580
|
async checkAndUpdateSingleNftOwnershipStatus(nft, batch, {
|
|
552
|
-
userAddress
|
|
581
|
+
userAddress,
|
|
553
582
|
networkClientId
|
|
554
|
-
} = {
|
|
555
|
-
|
|
556
|
-
}) {
|
|
583
|
+
} = {}) {
|
|
584
|
+
const addressToSearch = __privateMethod(this, _getAddressOrSelectedAddress, getAddressOrSelectedAddress_fn).call(this, userAddress);
|
|
557
585
|
const chainId = __privateMethod(this, _getCorrectChainId, getCorrectChainId_fn).call(this, { networkClientId });
|
|
558
586
|
const { address, tokenId } = nft;
|
|
559
587
|
let isOwned = nft.isCurrentlyOwned;
|
|
560
588
|
try {
|
|
561
|
-
isOwned = await this.isNftOwner(
|
|
589
|
+
isOwned = await this.isNftOwner(addressToSearch, address, tokenId, {
|
|
562
590
|
networkClientId
|
|
563
591
|
});
|
|
564
592
|
} catch {
|
|
@@ -571,23 +599,23 @@ var NftController = class extends BaseController {
|
|
|
571
599
|
return updatedNft;
|
|
572
600
|
}
|
|
573
601
|
const { allNfts } = this.state;
|
|
574
|
-
const nfts = [...allNfts[
|
|
602
|
+
const nfts = [...allNfts[addressToSearch]?.[chainId] || []];
|
|
575
603
|
const indexToUpdate = nfts.findIndex(
|
|
576
604
|
(item) => item.tokenId === tokenId && item.address.toLowerCase() === address.toLowerCase()
|
|
577
605
|
);
|
|
578
606
|
if (indexToUpdate !== -1) {
|
|
579
607
|
nfts[indexToUpdate] = updatedNft;
|
|
580
608
|
this.update((state) => {
|
|
581
|
-
state.allNfts[
|
|
609
|
+
state.allNfts[addressToSearch] = Object.assign(
|
|
582
610
|
{},
|
|
583
|
-
state.allNfts[
|
|
611
|
+
state.allNfts[addressToSearch],
|
|
584
612
|
{
|
|
585
613
|
[chainId]: nfts
|
|
586
614
|
}
|
|
587
615
|
);
|
|
588
616
|
});
|
|
589
617
|
__privateMethod(this, _updateNestedNftState, updateNestedNftState_fn).call(this, nfts, ALL_NFTS_STATE_KEY, {
|
|
590
|
-
userAddress,
|
|
618
|
+
userAddress: addressToSearch,
|
|
591
619
|
chainId
|
|
592
620
|
});
|
|
593
621
|
}
|
|
@@ -602,13 +630,12 @@ var NftController = class extends BaseController {
|
|
|
602
630
|
*/
|
|
603
631
|
async checkAndUpdateAllNftsOwnershipStatus({
|
|
604
632
|
networkClientId,
|
|
605
|
-
userAddress
|
|
606
|
-
} = {
|
|
607
|
-
|
|
608
|
-
}) {
|
|
633
|
+
userAddress
|
|
634
|
+
} = {}) {
|
|
635
|
+
const addressToSearch = __privateMethod(this, _getAddressOrSelectedAddress, getAddressOrSelectedAddress_fn).call(this, userAddress);
|
|
609
636
|
const chainId = __privateMethod(this, _getCorrectChainId, getCorrectChainId_fn).call(this, { networkClientId });
|
|
610
637
|
const { allNfts } = this.state;
|
|
611
|
-
const nfts = allNfts[
|
|
638
|
+
const nfts = allNfts[addressToSearch]?.[chainId] || [];
|
|
612
639
|
const updatedNfts = await Promise.all(
|
|
613
640
|
nfts.map(async (nft) => {
|
|
614
641
|
return await this.checkAndUpdateSingleNftOwnershipStatus(nft, true, {
|
|
@@ -618,7 +645,7 @@ var NftController = class extends BaseController {
|
|
|
618
645
|
})
|
|
619
646
|
);
|
|
620
647
|
__privateMethod(this, _updateNestedNftState, updateNestedNftState_fn).call(this, updatedNfts, ALL_NFTS_STATE_KEY, {
|
|
621
|
-
userAddress,
|
|
648
|
+
userAddress: addressToSearch,
|
|
622
649
|
chainId
|
|
623
650
|
});
|
|
624
651
|
}
|
|
@@ -634,13 +661,12 @@ var NftController = class extends BaseController {
|
|
|
634
661
|
*/
|
|
635
662
|
updateNftFavoriteStatus(address, tokenId, favorite, {
|
|
636
663
|
networkClientId,
|
|
637
|
-
userAddress
|
|
638
|
-
} = {
|
|
639
|
-
|
|
640
|
-
}) {
|
|
664
|
+
userAddress
|
|
665
|
+
} = {}) {
|
|
666
|
+
const addressToSearch = __privateMethod(this, _getAddressOrSelectedAddress, getAddressOrSelectedAddress_fn).call(this, userAddress);
|
|
641
667
|
const chainId = __privateMethod(this, _getCorrectChainId, getCorrectChainId_fn).call(this, { networkClientId });
|
|
642
668
|
const { allNfts } = this.state;
|
|
643
|
-
const nfts = [...allNfts[
|
|
669
|
+
const nfts = [...allNfts[addressToSearch]?.[chainId] || []];
|
|
644
670
|
const index = nfts.findIndex(
|
|
645
671
|
(nft) => nft.address === address && nft.tokenId === tokenId
|
|
646
672
|
);
|
|
@@ -654,7 +680,7 @@ var NftController = class extends BaseController {
|
|
|
654
680
|
nfts[index] = updatedNft;
|
|
655
681
|
__privateMethod(this, _updateNestedNftState, updateNestedNftState_fn).call(this, nfts, ALL_NFTS_STATE_KEY, {
|
|
656
682
|
chainId,
|
|
657
|
-
userAddress
|
|
683
|
+
userAddress: addressToSearch
|
|
658
684
|
});
|
|
659
685
|
}
|
|
660
686
|
/**
|
|
@@ -768,7 +794,7 @@ var NftController = class extends BaseController {
|
|
|
768
794
|
}
|
|
769
795
|
};
|
|
770
796
|
_mutex = new WeakMap();
|
|
771
|
-
|
|
797
|
+
_selectedAccountId = new WeakMap();
|
|
772
798
|
_chainId = new WeakMap();
|
|
773
799
|
_ipfsGateway = new WeakMap();
|
|
774
800
|
_openSeaEnabled = new WeakMap();
|
|
@@ -795,31 +821,36 @@ onNetworkControllerNetworkDidChange_fn = function({
|
|
|
795
821
|
};
|
|
796
822
|
_onPreferencesControllerStateChange = new WeakSet();
|
|
797
823
|
onPreferencesControllerStateChange_fn = async function({
|
|
798
|
-
selectedAddress,
|
|
799
824
|
ipfsGateway,
|
|
800
825
|
openSeaEnabled,
|
|
801
826
|
isIpfsGatewayEnabled
|
|
802
827
|
}) {
|
|
803
|
-
|
|
828
|
+
const selectedAccount = this.messagingSystem.call(
|
|
829
|
+
"AccountsController:getSelectedAccount"
|
|
830
|
+
);
|
|
831
|
+
__privateSet(this, _selectedAccountId, selectedAccount.id);
|
|
804
832
|
__privateSet(this, _ipfsGateway, ipfsGateway);
|
|
805
833
|
__privateSet(this, _openSeaEnabled, openSeaEnabled);
|
|
806
834
|
__privateSet(this, _isIpfsGatewayEnabled, isIpfsGatewayEnabled);
|
|
807
835
|
const needsUpdateNftMetadata = isIpfsGatewayEnabled && ipfsGateway !== "" || openSeaEnabled;
|
|
836
|
+
if (needsUpdateNftMetadata && selectedAccount) {
|
|
837
|
+
await __privateMethod(this, _updateNftUpdateForAccount, updateNftUpdateForAccount_fn).call(this, selectedAccount);
|
|
838
|
+
}
|
|
839
|
+
};
|
|
840
|
+
_onSelectedAccountChange = new WeakSet();
|
|
841
|
+
onSelectedAccountChange_fn = async function(internalAccount) {
|
|
842
|
+
const oldSelectedAccountId = __privateGet(this, _selectedAccountId);
|
|
843
|
+
__privateSet(this, _selectedAccountId, internalAccount.id);
|
|
844
|
+
const needsUpdateNftMetadata = (__privateGet(this, _isIpfsGatewayEnabled) && __privateGet(this, _ipfsGateway) !== "" || __privateGet(this, _openSeaEnabled)) && oldSelectedAccountId !== internalAccount.id;
|
|
808
845
|
if (needsUpdateNftMetadata) {
|
|
809
|
-
|
|
810
|
-
const nftsToUpdate = nfts.filter(
|
|
811
|
-
(singleNft) => !singleNft.name && !singleNft.description && !singleNft.image
|
|
812
|
-
);
|
|
813
|
-
if (nftsToUpdate.length !== 0) {
|
|
814
|
-
await this.updateNftMetadata({
|
|
815
|
-
nfts: nftsToUpdate,
|
|
816
|
-
userAddress: selectedAddress
|
|
817
|
-
});
|
|
818
|
-
}
|
|
846
|
+
await __privateMethod(this, _updateNftUpdateForAccount, updateNftUpdateForAccount_fn).call(this, internalAccount);
|
|
819
847
|
}
|
|
820
848
|
};
|
|
821
849
|
_updateNestedNftState = new WeakSet();
|
|
822
850
|
updateNestedNftState_fn = function(newCollection, baseStateKey, { userAddress, chainId }) {
|
|
851
|
+
if (!userAddress) {
|
|
852
|
+
return;
|
|
853
|
+
}
|
|
823
854
|
this.update((state) => {
|
|
824
855
|
const oldState = state[baseStateKey];
|
|
825
856
|
const addressState = oldState[userAddress] || {};
|
|
@@ -985,7 +1016,7 @@ getNftInformation_fn = async function(contractAddress, tokenId, networkClientId)
|
|
|
985
1016
|
...nftApiMetadata,
|
|
986
1017
|
name: blockchainMetadata?.name ?? nftApiMetadata?.name ?? null,
|
|
987
1018
|
description: blockchainMetadata?.description ?? nftApiMetadata?.description ?? null,
|
|
988
|
-
image:
|
|
1019
|
+
image: nftApiMetadata?.image ?? blockchainMetadata?.image ?? null,
|
|
989
1020
|
standard: blockchainMetadata?.standard ?? nftApiMetadata?.standard ?? null,
|
|
990
1021
|
tokenURI: blockchainMetadata?.tokenURI ?? null
|
|
991
1022
|
};
|
|
@@ -1011,9 +1042,13 @@ getNftContractInformation_fn = async function(contractAddress, nftMetadataFromAp
|
|
|
1011
1042
|
return {
|
|
1012
1043
|
address: contractAddress,
|
|
1013
1044
|
...blockchainContractData,
|
|
1045
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1046
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1014
1047
|
schema_name: nftMetadataFromApi?.standard ?? null,
|
|
1015
1048
|
collection: {
|
|
1016
1049
|
name: null,
|
|
1050
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1051
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1017
1052
|
image_url: nftMetadataFromApi?.collection?.image ?? nftMetadataFromApi?.collection?.imageUrl ?? null,
|
|
1018
1053
|
tokenCount: nftMetadataFromApi?.collection?.tokenCount ?? null,
|
|
1019
1054
|
...nftMetadataFromApi?.collection,
|
|
@@ -1023,13 +1058,25 @@ getNftContractInformation_fn = async function(contractAddress, nftMetadataFromAp
|
|
|
1023
1058
|
}
|
|
1024
1059
|
return {
|
|
1025
1060
|
address: contractAddress,
|
|
1061
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1062
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1026
1063
|
asset_contract_type: null,
|
|
1064
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1065
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1027
1066
|
created_date: null,
|
|
1067
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1068
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1028
1069
|
schema_name: null,
|
|
1029
1070
|
symbol: null,
|
|
1071
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1072
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1030
1073
|
total_supply: null,
|
|
1031
1074
|
description: null,
|
|
1075
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1076
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1032
1077
|
external_link: null,
|
|
1078
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1079
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1033
1080
|
collection: { name: null, image_url: null }
|
|
1034
1081
|
};
|
|
1035
1082
|
};
|
|
@@ -1111,12 +1158,22 @@ addNftContract_fn = async function({
|
|
|
1111
1158
|
}
|
|
1112
1159
|
const contractInformation = await __privateMethod(this, _getNftContractInformation, getNftContractInformation_fn).call(this, checksumHexAddress, nftMetadata, networkClientId);
|
|
1113
1160
|
const {
|
|
1161
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1162
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1114
1163
|
asset_contract_type,
|
|
1164
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1165
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1115
1166
|
created_date,
|
|
1116
1167
|
symbol,
|
|
1117
1168
|
description,
|
|
1169
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1170
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1118
1171
|
external_link,
|
|
1172
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1173
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1119
1174
|
schema_name,
|
|
1175
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1176
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
1120
1177
|
collection: { name, image_url, tokenCount }
|
|
1121
1178
|
} = contractInformation;
|
|
1122
1179
|
if (source === "detected" /* Detected */ && "address" in contractInformation && typeof contractInformation.address === "string" && "collection" in contractInformation && contractInformation.collection.name === null && "image_url" in contractInformation.collection && contractInformation.collection.image_url === null && Object.entries(contractInformation).every(([key, value]) => {
|
|
@@ -1209,6 +1266,8 @@ validateWatchNft_fn = async function(asset, type, userAddress, { networkClientId
|
|
|
1209
1266
|
}
|
|
1210
1267
|
if (type !== ERC721 && type !== ERC1155) {
|
|
1211
1268
|
throw rpcErrors.invalidParams(
|
|
1269
|
+
// TODO: Either fix this lint violation or explain why it's necessary to ignore.
|
|
1270
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
1212
1271
|
`Non NFT asset type ${type} not supported by watchNft`
|
|
1213
1272
|
);
|
|
1214
1273
|
}
|
|
@@ -1255,6 +1314,30 @@ getCorrectChainId_fn = function({
|
|
|
1255
1314
|
}
|
|
1256
1315
|
return __privateGet(this, _chainId);
|
|
1257
1316
|
};
|
|
1317
|
+
_getAddressOrSelectedAddress = new WeakSet();
|
|
1318
|
+
getAddressOrSelectedAddress_fn = function(address) {
|
|
1319
|
+
if (address) {
|
|
1320
|
+
return address;
|
|
1321
|
+
}
|
|
1322
|
+
const selectedAccount = this.messagingSystem.call(
|
|
1323
|
+
"AccountsController:getAccount",
|
|
1324
|
+
__privateGet(this, _selectedAccountId)
|
|
1325
|
+
);
|
|
1326
|
+
return selectedAccount?.address || "";
|
|
1327
|
+
};
|
|
1328
|
+
_updateNftUpdateForAccount = new WeakSet();
|
|
1329
|
+
updateNftUpdateForAccount_fn = async function(account) {
|
|
1330
|
+
const nfts = this.state.allNfts[account.address]?.[__privateGet(this, _chainId)] ?? [];
|
|
1331
|
+
const nftsToUpdate = nfts.filter(
|
|
1332
|
+
(singleNft) => !singleNft.name && !singleNft.description && !singleNft.image
|
|
1333
|
+
);
|
|
1334
|
+
if (nftsToUpdate.length !== 0) {
|
|
1335
|
+
await this.updateNftMetadata({
|
|
1336
|
+
nfts: nftsToUpdate,
|
|
1337
|
+
userAddress: account.address
|
|
1338
|
+
});
|
|
1339
|
+
}
|
|
1340
|
+
};
|
|
1258
1341
|
var NftController_default = NftController;
|
|
1259
1342
|
|
|
1260
1343
|
export {
|
|
@@ -1262,4 +1345,4 @@ export {
|
|
|
1262
1345
|
NftController,
|
|
1263
1346
|
NftController_default
|
|
1264
1347
|
};
|
|
1265
|
-
//# sourceMappingURL=chunk-
|
|
1348
|
+
//# sourceMappingURL=chunk-W57QXOHJ.mjs.map
|