Skip to content

Commit d16c222

Browse files
committed
fix: add assets patch to v70
1 parent 211846a commit d16c222

File tree

1 file changed

+163
-0
lines changed

1 file changed

+163
-0
lines changed
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
diff --git a/node_modules/@metamask/assets-controllers/dist/NftController.cjs b/node_modules/@metamask/assets-controllers/dist/NftController.cjs
2+
index 3e7b205..00ad856 100644
3+
--- a/node_modules/@metamask/assets-controllers/dist/NftController.cjs
4+
+++ b/node_modules/@metamask/assets-controllers/dist/NftController.cjs
5+
@@ -13,7 +13,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
6+
var __importDefault = (this && this.__importDefault) || function (mod) {
7+
return (mod && mod.__esModule) ? mod : { "default": mod };
8+
};
9+
-var _NftController_instances, _NftController_mutex, _NftController_selectedAccountId, _NftController_ipfsGateway, _NftController_openSeaEnabled, _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;
10+
+// Remove once https://github.com/MetaMask/core/pull/4774 is released
11+
+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;
12+
Object.defineProperty(exports, "__esModule", { value: true });
13+
exports.NftController = exports.getDefaultNftControllerState = void 0;
14+
const address_1 = require("@ethersproject/address");
15+
@@ -54,7 +55,8 @@ class NftController extends base_controller_1.BaseController {
16+
*
17+
* @param options - The controller options.
18+
* @param options.ipfsGateway - The configured IPFS gateway.
19+
- * @param options.openSeaEnabled - Controls whether the OpenSea API is used.
20+
+ * Remove once https://github.com/MetaMask/core/pull/4774 is released
21+
+ * @param options.displayNftMedia - Controls whether the NFT API is used.
22+
* @param options.useIpfsSubdomains - Controls whether IPFS subdomains are used.
23+
* @param options.isIpfsGatewayEnabled - Controls whether IPFS is enabled or not.
24+
* @param options.onNftAdded - Callback that is called when an NFT is added. Currently used pass data
25+
@@ -62,7 +64,7 @@ class NftController extends base_controller_1.BaseController {
26+
* @param options.messenger - The messenger.
27+
* @param options.state - Initial state to set on this controller.
28+
*/
29+
- constructor({ ipfsGateway = controller_utils_1.IPFS_DEFAULT_GATEWAY_URL, openSeaEnabled = false, useIpfsSubdomains = true, isIpfsGatewayEnabled = true, onNftAdded, messenger, state = {}, }) {
30+
+ constructor({ ipfsGateway = controller_utils_1.IPFS_DEFAULT_GATEWAY_URL, displayNftMedia = false, useIpfsSubdomains = true, isIpfsGatewayEnabled = true, onNftAdded, messenger, state = {}, }) {
31+
super({
32+
name: controllerName,
33+
metadata: nftControllerMetadata,
34+
@@ -76,13 +78,13 @@ class NftController extends base_controller_1.BaseController {
35+
_NftController_mutex.set(this, new async_mutex_1.Mutex());
36+
_NftController_selectedAccountId.set(this, void 0);
37+
_NftController_ipfsGateway.set(this, void 0);
38+
- _NftController_openSeaEnabled.set(this, void 0);
39+
+ _NftController_displayNftMedia.set(this, void 0);
40+
_NftController_useIpfsSubdomains.set(this, void 0);
41+
_NftController_isIpfsGatewayEnabled.set(this, void 0);
42+
_NftController_onNftAdded.set(this, void 0);
43+
__classPrivateFieldSet(this, _NftController_selectedAccountId, this.messagingSystem.call('AccountsController:getSelectedAccount').id, "f");
44+
__classPrivateFieldSet(this, _NftController_ipfsGateway, ipfsGateway, "f");
45+
- __classPrivateFieldSet(this, _NftController_openSeaEnabled, openSeaEnabled, "f");
46+
+ __classPrivateFieldSet(this, _NftController_displayNftMedia, displayNftMedia, "f");
47+
__classPrivateFieldSet(this, _NftController_useIpfsSubdomains, useIpfsSubdomains, "f");
48+
__classPrivateFieldSet(this, _NftController_isIpfsGatewayEnabled, isIpfsGatewayEnabled, "f");
49+
__classPrivateFieldSet(this, _NftController_onNftAdded, onNftAdded, "f");
50+
@@ -615,26 +617,26 @@ class NftController extends base_controller_1.BaseController {
51+
}
52+
}
53+
exports.NftController = NftController;
54+
-_NftController_mutex = new WeakMap(), _NftController_selectedAccountId = new WeakMap(), _NftController_ipfsGateway = new WeakMap(), _NftController_openSeaEnabled = new WeakMap(), _NftController_useIpfsSubdomains = new WeakMap(), _NftController_isIpfsGatewayEnabled = new WeakMap(), _NftController_onNftAdded = new WeakMap(), _NftController_instances = new WeakSet(), _NftController_onPreferencesControllerStateChange =
55+
+_NftController_mutex = new WeakMap(), _NftController_selectedAccountId = new WeakMap(), _NftController_ipfsGateway = new WeakMap(), _NftController_displayNftMedia = new WeakMap(), _NftController_useIpfsSubdomains = new WeakMap(), _NftController_isIpfsGatewayEnabled = new WeakMap(), _NftController_onNftAdded = new WeakMap(), _NftController_instances = new WeakSet(), _NftController_onPreferencesControllerStateChange =
56+
/**
57+
* Handles the state change of the preference controller.
58+
*
59+
* @param preferencesState - The new state of the preference controller.
60+
* @param preferencesState.ipfsGateway - The configured IPFS gateway.
61+
- * @param preferencesState.openSeaEnabled - Controls whether the OpenSea API is used.
62+
+ * @param preferencesState.displayNftMedia - Controls whether the NFT API is used.
63+
* @param preferencesState.isIpfsGatewayEnabled - Controls whether IPFS is enabled or not.
64+
*/
65+
-async function _NftController_onPreferencesControllerStateChange({ ipfsGateway, openSeaEnabled, isIpfsGatewayEnabled, }) {
66+
+async function _NftController_onPreferencesControllerStateChange({ ipfsGateway, displayNftMedia, isIpfsGatewayEnabled, }) {
67+
const selectedAccount = this.messagingSystem.call('AccountsController:getSelectedAccount');
68+
__classPrivateFieldSet(this, _NftController_selectedAccountId, selectedAccount.id, "f");
69+
// Get current state values
70+
if (__classPrivateFieldGet(this, _NftController_ipfsGateway, "f") !== ipfsGateway ||
71+
- __classPrivateFieldGet(this, _NftController_openSeaEnabled, "f") !== openSeaEnabled ||
72+
+ __classPrivateFieldGet(this, _NftController_displayNftMedia, "f") !== displayNftMedia ||
73+
__classPrivateFieldGet(this, _NftController_isIpfsGatewayEnabled, "f") !== isIpfsGatewayEnabled) {
74+
__classPrivateFieldSet(this, _NftController_ipfsGateway, ipfsGateway, "f");
75+
- __classPrivateFieldSet(this, _NftController_openSeaEnabled, openSeaEnabled, "f");
76+
+ __classPrivateFieldSet(this, _NftController_displayNftMedia, displayNftMedia, "f");
77+
__classPrivateFieldSet(this, _NftController_isIpfsGatewayEnabled, isIpfsGatewayEnabled, "f");
78+
- const needsUpdateNftMetadata = (isIpfsGatewayEnabled && ipfsGateway !== '') || openSeaEnabled;
79+
+ const needsUpdateNftMetadata = (isIpfsGatewayEnabled && ipfsGateway !== '') || displayNftMedia;
80+
if (needsUpdateNftMetadata && selectedAccount) {
81+
await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_updateNftUpdateForAccount).call(this, selectedAccount);
82+
}
83+
@@ -649,7 +651,7 @@ async function _NftController_onSelectedAccountChange(internalAccount) {
84+
const oldSelectedAccountId = __classPrivateFieldGet(this, _NftController_selectedAccountId, "f");
85+
__classPrivateFieldSet(this, _NftController_selectedAccountId, internalAccount.id, "f");
86+
const needsUpdateNftMetadata = ((__classPrivateFieldGet(this, _NftController_isIpfsGatewayEnabled, "f") && __classPrivateFieldGet(this, _NftController_ipfsGateway, "f") !== '') ||
87+
- __classPrivateFieldGet(this, _NftController_openSeaEnabled, "f")) &&
88+
+ __classPrivateFieldGet(this, _NftController_displayNftMedia, "f")) &&
89+
oldSelectedAccountId !== internalAccount.id;
90+
if (needsUpdateNftMetadata) {
91+
await __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_updateNftUpdateForAccount).call(this, internalAccount);
92+
@@ -724,6 +726,7 @@ async function _NftController_getNftInformationFromApi(contractAddress, tokenId)
93+
description: null,
94+
image: null,
95+
standard: null,
96+
+ error: 'Opensea import error',
97+
};
98+
}
99+
// if we've reached this point, we have successfully fetched some data for nftInformation
100+
@@ -766,9 +769,10 @@ async function _NftController_getNftInformationFromTokenURI(contractAddress, tok
101+
standard: standard || null,
102+
favorite: false,
103+
tokenURI: tokenURI ?? null,
104+
+ error: 'URI import error',
105+
};
106+
}
107+
- const isDisplayNFTMediaToggleEnabled = __classPrivateFieldGet(this, _NftController_openSeaEnabled, "f");
108+
+ const isDisplayNFTMediaToggleEnabled = __classPrivateFieldGet(this, _NftController_displayNftMedia, "f");
109+
if (!hasIpfsTokenURI && !isDisplayNFTMediaToggleEnabled) {
110+
return {
111+
image: null,
112+
@@ -777,6 +781,7 @@ async function _NftController_getNftInformationFromTokenURI(contractAddress, tok
113+
standard: standard || null,
114+
favorite: false,
115+
tokenURI: tokenURI ?? null,
116+
+ error: 'URI import error',
117+
};
118+
}
119+
if (hasIpfsTokenURI) {
120+
@@ -868,10 +873,22 @@ async function _NftController_getNftInformation(contractAddress, tokenId, networ
121+
const { configuration: { chainId }, } = this.messagingSystem.call('NetworkController:getNetworkClientById', networkClientId);
122+
const [blockchainMetadata, nftApiMetadata] = await Promise.all([
123+
(0, controller_utils_1.safelyExecute)(() => __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getNftInformationFromTokenURI).call(this, contractAddress, tokenId, networkClientId)),
124+
- __classPrivateFieldGet(this, _NftController_openSeaEnabled, "f") && chainId === '0x1'
125+
+ __classPrivateFieldGet(this, _NftController_displayNftMedia, "f") && chainId === '0x1'
126+
? (0, controller_utils_1.safelyExecute)(() => __classPrivateFieldGet(this, _NftController_instances, "m", _NftController_getNftInformationFromApi).call(this, contractAddress, tokenId))
127+
: undefined,
128+
]);
129+
+ if (blockchainMetadata?.error && nftApiMetadata?.error) {
130+
+ return {
131+
+ image: null,
132+
+ name: null,
133+
+ description: null,
134+
+ standard: blockchainMetadata.standard ?? null,
135+
+ favorite: false,
136+
+ tokenURI: blockchainMetadata.tokenURI ?? null,
137+
+ error: 'Both import failed',
138+
+ };
139+
+ }
140+
+
141+
const metadata = {
142+
...nftApiMetadata,
143+
name: blockchainMetadata?.name ?? nftApiMetadata?.name ?? null,
144+
@@ -1017,6 +1034,7 @@ async function _NftController_addIndividualNft(tokenAddress, tokenId, nftMetadat
145+
tokenId: tokenId.toString(),
146+
standard: nftMetadata.standard,
147+
source,
148+
+ tokenURI: nftMetadata.tokenURI
149+
});
150+
}
151+
}
152+
diff --git a/node_modules/@metamask/assets-controllers/dist/NftController.d.cts b/node_modules/@metamask/assets-controllers/dist/NftController.d.cts
153+
index e16e91f..3168b35 100644
154+
--- a/node_modules/@metamask/assets-controllers/dist/NftController.d.cts
155+
+++ b/node_modules/@metamask/assets-controllers/dist/NftController.d.cts
156+
@@ -110,6 +110,7 @@ export type NftMetadata = {
157+
creator?: string;
158+
transactionId?: string;
159+
tokenURI?: string | null;
160+
+ error?: string;
161+
collection?: Collection;
162+
address?: string;
163+
attributes?: Attributes[];

0 commit comments

Comments
 (0)