@metamask/assets-controllers 21.0.0 → 23.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 +37 -1
- package/dist/NftController.d.ts +74 -1
- package/dist/NftController.d.ts.map +1 -1
- package/dist/NftController.js +20 -7
- package/dist/NftController.js.map +1 -1
- package/dist/NftDetectionController.d.ts +5 -2
- package/dist/NftDetectionController.d.ts.map +1 -1
- package/dist/NftDetectionController.js +25 -13
- package/dist/NftDetectionController.js.map +1 -1
- package/dist/TokenDetectionController.d.ts +43 -56
- package/dist/TokenDetectionController.d.ts.map +1 -1
- package/dist/TokenDetectionController.js +132 -96
- package/dist/TokenDetectionController.js.map +1 -1
- package/dist/TokenListController.d.ts +4 -3
- package/dist/TokenListController.d.ts.map +1 -1
- package/dist/TokenListController.js.map +1 -1
- package/dist/TokenRatesController.d.ts +1 -1
- package/dist/TokenRatesController.d.ts.map +1 -1
- package/dist/TokenRatesController.js +2 -7
- package/dist/TokenRatesController.js.map +1 -1
- package/dist/assetsUtil.d.ts +44 -1
- package/dist/assetsUtil.d.ts.map +1 -1
- package/dist/assetsUtil.js +120 -1
- package/dist/assetsUtil.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/token-prices-service/abstract-token-prices-service.d.ts +1 -1
- package/dist/token-prices-service/abstract-token-prices-service.d.ts.map +1 -1
- package/dist/token-prices-service/abstract-token-prices-service.js.map +1 -1
- package/dist/token-prices-service/codefi-v2.d.ts +6 -3
- package/dist/token-prices-service/codefi-v2.d.ts.map +1 -1
- package/dist/token-prices-service/codefi-v2.js +12 -5
- package/dist/token-prices-service/codefi-v2.js.map +1 -1
- package/package.json +13 -12
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [23.0.0]
|
|
10
|
+
### Added
|
|
11
|
+
- Add `onBreak` handler to `CodefiTokenPricesServiceV2` ([#3677](https://github.com/MetaMask/core/pull/3677))
|
|
12
|
+
- This allows listening for "circuit breaks", which can indicate an outage. Useful for metrics.
|
|
13
|
+
- Add `fetchTokenContractExchangeRates` utility method ([#3657](https://github.com/MetaMask/core/pull/3657))
|
|
14
|
+
- `TokenListController` now exports a `TokenListControllerMessenger` type ([#3609](https://github.com/MetaMask/core/pull/3609)).
|
|
15
|
+
- `TokenDetectionController` exports types `TokenDetectionControllerMessenger`, `TokenDetectionControllerActions`, `TokenDetectionControllerGetStateAction`, `TokenDetectionControllerEvents`, `TokenDetectionControllerStateChangeEvent` ([#3609](https://github.com/MetaMask/core/pull/3609)).
|
|
16
|
+
- Add `enable` and `disable` methods to `TokenDetectionController`, which control whether the controller is able to make polling requests or all of its network calls are blocked. ([#3609](https://github.com/MetaMask/core/pull/3609)).
|
|
17
|
+
- Note that if the controller is initiated without the `disabled` constructor option set to `false`, the `enable` method will need to be called before the controller can make polling requests in response to subscribed events.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
- **BREAKING:** Bump `@metamask/approval-controller` dependency and peer dependency from `^5.1.0` to `^5.1.1` ([#3695](https://github.com/MetaMask/core/pull/3695))
|
|
21
|
+
- **BREAKING:** Bump `@metamask/network-controller` dependency and peer dependency from `^17.0.0` to `^17.1.0` ([#3695](https://github.com/MetaMask/core/pull/3695))
|
|
22
|
+
- **BREAKING:** Bump `@metamask/preferences-controller` dependency and peer dependency from `^5.0.0` to `^5.0.1` ([#3695](https://github.com/MetaMask/core/pull/3695))
|
|
23
|
+
- **BREAKING:** Update `OpenSeaV2Contract` type, renaming `supply` to `total_supply` ([#3692](https://github.com/MetaMask/core/pull/3692))
|
|
24
|
+
- **BREAKING:** `TokenDetectionController` is upgraded to extend `BaseControllerV2` and `StaticIntervalPollingController` ([#3609](https://github.com/MetaMask/core/pull/3609)).
|
|
25
|
+
- The constructor now expects an options object as its only argument, with required properties `messenger`, `networkClientId`, required callbacks `onPreferencesStateChange`, `getBalancesInSingleCall`, `addDetectedTokens`, `getTokenState`, `getPreferencesState`, and optional properties `disabled`, `interval`, `selectedAddress`.
|
|
26
|
+
- Bump `@metamask/base-controller` to `^4.0.1` ([#3695](https://github.com/MetaMask/core/pull/3695))
|
|
27
|
+
- Bump `@metamask/polling-controller` to `^4.0.0` ([#3695](https://github.com/MetaMask/core/pull/3695))
|
|
28
|
+
- Bump `cockatiel` from `3.1.1` to `^3.1.2` ([#3682](https://github.com/MetaMask/core/pull/3682))
|
|
29
|
+
- Bump `@metamask/controller-utils` from `8.0.0` to `^8.0.1` ([#3695](https://github.com/MetaMask/core/pull/3695))
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
- Fix error caused by OpenSea API rename of `supply` to `total_supply` ([#3692](https://github.com/MetaMask/core/pull/3692))
|
|
33
|
+
- Fix `CodefiTokenPricesServiceV2` support for Shiden ([#3683](https://github.com/MetaMask/core/pull/3683))
|
|
34
|
+
- Improve how `CodefiTokenPricesServiceV2` handles token price update failures ([#3687](https://github.com/MetaMask/core/pull/3687))
|
|
35
|
+
- Previously a single failed token price update would prevent all other token prices from updating as well. With this update, we log and error and continue when we fail to update a token price, ensuring the others still get updated.
|
|
36
|
+
|
|
37
|
+
## [22.0.0]
|
|
38
|
+
### Changed
|
|
39
|
+
- **BREAKING:** OpenSea V2 API is used instead of V1 ([#3654](https://github.com/MetaMask/core/pull/3654))
|
|
40
|
+
- `NftDetectionController` constructor now requires the `NftController.getNftApi` function.
|
|
41
|
+
- NFT controllers will no longer return `last_sale` information for NFTs fetched after the OpenSea V2 update
|
|
42
|
+
|
|
9
43
|
## [21.0.0]
|
|
10
44
|
### Added
|
|
11
45
|
- Add `CodefiTokenPricesServiceV2` ([#3600](https://github.com/MetaMask/core/pull/3600), [#3655](https://github.com/MetaMask/core/pull/3655), [#3655](https://github.com/MetaMask/core/pull/3655))
|
|
@@ -480,7 +514,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
480
514
|
### Changed
|
|
481
515
|
- Use Ethers for AssetsContractController ([#845](https://github.com/MetaMask/core/pull/845))
|
|
482
516
|
|
|
483
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@
|
|
517
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@23.0.0...HEAD
|
|
518
|
+
[23.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@22.0.0...@metamask/assets-controllers@23.0.0
|
|
519
|
+
[22.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@21.0.0...@metamask/assets-controllers@22.0.0
|
|
484
520
|
[21.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@20.0.0...@metamask/assets-controllers@21.0.0
|
|
485
521
|
[20.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@19.0.0...@metamask/assets-controllers@20.0.0
|
|
486
522
|
[19.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@18.0.0...@metamask/assets-controllers@19.0.0
|
package/dist/NftController.d.ts
CHANGED
|
@@ -21,6 +21,75 @@ declare type SuggestedNftMeta = {
|
|
|
21
21
|
interactingAddress: string;
|
|
22
22
|
origin: string;
|
|
23
23
|
};
|
|
24
|
+
export declare enum OpenSeaV2ChainIds {
|
|
25
|
+
ethereum = "ethereum"
|
|
26
|
+
}
|
|
27
|
+
export declare type OpenSeaV2GetNftResponse = {
|
|
28
|
+
nft: OpenSeaV2DetailedNft;
|
|
29
|
+
};
|
|
30
|
+
export declare type OpenSeaV2Nft = {
|
|
31
|
+
identifier: string;
|
|
32
|
+
collection: string;
|
|
33
|
+
contract: string;
|
|
34
|
+
token_standard: string;
|
|
35
|
+
name: string;
|
|
36
|
+
description: string;
|
|
37
|
+
image_url?: string;
|
|
38
|
+
metadata_url?: string;
|
|
39
|
+
updated_at: string;
|
|
40
|
+
is_disabled: boolean;
|
|
41
|
+
is_nsfw: boolean;
|
|
42
|
+
};
|
|
43
|
+
export declare type OpenSeaV2DetailedNft = OpenSeaV2Nft & {
|
|
44
|
+
animation_url?: string;
|
|
45
|
+
is_suspicious: boolean;
|
|
46
|
+
creator: string;
|
|
47
|
+
traits: {
|
|
48
|
+
trait_type: string;
|
|
49
|
+
display_type?: string;
|
|
50
|
+
max_value: string;
|
|
51
|
+
trait_count?: number;
|
|
52
|
+
value: number | string;
|
|
53
|
+
}[];
|
|
54
|
+
owners: {
|
|
55
|
+
address: string;
|
|
56
|
+
quantity: number;
|
|
57
|
+
}[];
|
|
58
|
+
rarity: {
|
|
59
|
+
rank: number;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
export declare type OpenSeaV2ListNftsResponse = {
|
|
63
|
+
nfts: OpenSeaV2Nft[];
|
|
64
|
+
next?: string;
|
|
65
|
+
};
|
|
66
|
+
export declare type OpenSeaV2Contract = {
|
|
67
|
+
address: string;
|
|
68
|
+
chain: string;
|
|
69
|
+
collection: string;
|
|
70
|
+
contract_standard: string;
|
|
71
|
+
name: string;
|
|
72
|
+
total_supply?: number;
|
|
73
|
+
};
|
|
74
|
+
export declare type OpenSeaV2Collection = {
|
|
75
|
+
collection: string;
|
|
76
|
+
name: string;
|
|
77
|
+
description?: string;
|
|
78
|
+
image_url?: string;
|
|
79
|
+
owner: string;
|
|
80
|
+
category: string;
|
|
81
|
+
is_disabled: boolean;
|
|
82
|
+
is_nsfw: boolean;
|
|
83
|
+
trait_offers_enabled: boolean;
|
|
84
|
+
opensea_url: string;
|
|
85
|
+
project_url?: string;
|
|
86
|
+
wiki_url?: string;
|
|
87
|
+
discord_url?: string;
|
|
88
|
+
telegram_url?: string;
|
|
89
|
+
twitter_username?: string;
|
|
90
|
+
instagram_username?: string;
|
|
91
|
+
total_supply?: number;
|
|
92
|
+
};
|
|
24
93
|
/**
|
|
25
94
|
* @type Nft
|
|
26
95
|
*
|
|
@@ -168,8 +237,12 @@ export declare type NftControllerMessenger = RestrictedControllerMessenger<typeo
|
|
|
168
237
|
export declare class NftController extends BaseControllerV1<NftConfig, NftState> {
|
|
169
238
|
private readonly mutex;
|
|
170
239
|
private readonly messagingSystem;
|
|
171
|
-
|
|
240
|
+
getNftApi({ contractAddress, tokenId, }: {
|
|
241
|
+
contractAddress: string;
|
|
242
|
+
tokenId: string;
|
|
243
|
+
}): string;
|
|
172
244
|
private getNftContractInformationApi;
|
|
245
|
+
private getNftCollectionInformationApi;
|
|
173
246
|
/**
|
|
174
247
|
* Helper method to update nested state for allNfts and allNftContracts.
|
|
175
248
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NftController.d.ts","sourceRoot":"","sources":["../src/NftController.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,6BAA6B,EAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAa7D,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,YAAY,EACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"NftController.d.ts","sourceRoot":"","sources":["../src/NftController.ts"],"names":[],"mappings":"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"}
|
package/dist/NftController.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.NftController = void 0;
|
|
12
|
+
exports.NftController = exports.OpenSeaV2ChainIds = void 0;
|
|
13
13
|
const address_1 = require("@ethersproject/address");
|
|
14
14
|
const base_controller_1 = require("@metamask/base-controller");
|
|
15
15
|
const controller_utils_1 = require("@metamask/controller-utils");
|
|
@@ -20,6 +20,10 @@ const events_1 = require("events");
|
|
|
20
20
|
const uuid_1 = require("uuid");
|
|
21
21
|
const assetsUtil_1 = require("./assetsUtil");
|
|
22
22
|
const constants_1 = require("./constants");
|
|
23
|
+
var OpenSeaV2ChainIds;
|
|
24
|
+
(function (OpenSeaV2ChainIds) {
|
|
25
|
+
OpenSeaV2ChainIds["ethereum"] = "ethereum";
|
|
26
|
+
})(OpenSeaV2ChainIds = exports.OpenSeaV2ChainIds || (exports.OpenSeaV2ChainIds = {}));
|
|
23
27
|
const ALL_NFTS_STATE_KEY = 'allNfts';
|
|
24
28
|
const ALL_NFTS_CONTRACTS_STATE_KEY = 'allNftContracts';
|
|
25
29
|
/**
|
|
@@ -98,10 +102,13 @@ class NftController extends base_controller_1.BaseControllerV1 {
|
|
|
98
102
|
});
|
|
99
103
|
}
|
|
100
104
|
getNftApi({ contractAddress, tokenId, }) {
|
|
101
|
-
return `${controller_utils_1.OPENSEA_PROXY_URL}/
|
|
105
|
+
return `${controller_utils_1.OPENSEA_PROXY_URL}/chain/${OpenSeaV2ChainIds.ethereum}/contract/${contractAddress}/nfts/${tokenId}`;
|
|
102
106
|
}
|
|
103
107
|
getNftContractInformationApi({ contractAddress, }) {
|
|
104
|
-
return `${controller_utils_1.OPENSEA_PROXY_URL}/
|
|
108
|
+
return `${controller_utils_1.OPENSEA_PROXY_URL}/chain/${OpenSeaV2ChainIds.ethereum}/contract/${contractAddress}`;
|
|
109
|
+
}
|
|
110
|
+
getNftCollectionInformationApi({ collectionSlug, }) {
|
|
111
|
+
return `${controller_utils_1.OPENSEA_PROXY_URL}/collections/${collectionSlug}`;
|
|
105
112
|
}
|
|
106
113
|
/**
|
|
107
114
|
* Helper method to update nested state for allNfts and allNftContracts.
|
|
@@ -139,7 +146,7 @@ class NftController extends base_controller_1.BaseControllerV1 {
|
|
|
139
146
|
}),
|
|
140
147
|
});
|
|
141
148
|
// if we were still unable to fetch the data we return out the default/null of `NftMetadata`
|
|
142
|
-
if (!nftInformation) {
|
|
149
|
+
if (!(nftInformation === null || nftInformation === void 0 ? void 0 : nftInformation.nft)) {
|
|
143
150
|
return {
|
|
144
151
|
name: null,
|
|
145
152
|
description: null,
|
|
@@ -149,7 +156,7 @@ class NftController extends base_controller_1.BaseControllerV1 {
|
|
|
149
156
|
}
|
|
150
157
|
// if we've reached this point, we have successfully fetched some data for nftInformation
|
|
151
158
|
// now we reconfigure the data to conform to the `NftMetadata` type for storage.
|
|
152
|
-
const { num_sales, background_color, image_url, image_preview_url, image_thumbnail_url, image_original_url, animation_url, animation_original_url, name, description, external_link, creator, last_sale, asset_contract: { schema_name }, } = nftInformation;
|
|
159
|
+
const { num_sales, background_color, image_url, image_preview_url, image_thumbnail_url, image_original_url, animation_url, animation_original_url, name, description, external_link, creator, last_sale, asset_contract: { schema_name }, } = (0, assetsUtil_1.mapOpenSeaDetailedNftV2ToV1)(nftInformation.nft);
|
|
153
160
|
/* istanbul ignore next */
|
|
154
161
|
const nftMetadata = Object.assign({}, { name: name || null }, { description: description || null }, { image: image_url || null }, creator && { creator }, num_sales && { numberOfSales: num_sales }, background_color && { backgroundColor: background_color }, image_preview_url && { imagePreview: image_preview_url }, image_thumbnail_url && { imageThumbnail: image_thumbnail_url }, image_original_url && { imageOriginal: image_original_url }, animation_url && { animation: animation_url }, animation_original_url && {
|
|
155
162
|
animationOriginal: animation_original_url,
|
|
@@ -300,9 +307,15 @@ class NftController extends base_controller_1.BaseControllerV1 {
|
|
|
300
307
|
contractAddress,
|
|
301
308
|
}),
|
|
302
309
|
});
|
|
303
|
-
//
|
|
310
|
+
// If we successfully fetched the contract
|
|
304
311
|
if (apiNftContractObject) {
|
|
305
|
-
|
|
312
|
+
// Then fetch some additional details from the collection
|
|
313
|
+
const collection = yield (0, controller_utils_1.fetchWithErrorHandling)({
|
|
314
|
+
url: this.getNftCollectionInformationApi({
|
|
315
|
+
collectionSlug: apiNftContractObject.collection,
|
|
316
|
+
}),
|
|
317
|
+
});
|
|
318
|
+
return (0, assetsUtil_1.mapOpenSeaContractV2ToV1)(apiNftContractObject, collection);
|
|
306
319
|
}
|
|
307
320
|
// If we've reached this point we were unable to fetch data from either the proxy or opensea so we return
|
|
308
321
|
// the default/null of ApiNftContract
|