@metamask-previews/assets-controllers 25.0.0-preview.2431602 → 25.0.0-preview.303e509
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 +165 -38
- package/dist/AssetsContractController.d.ts +5 -6
- package/dist/AssetsContractController.d.ts.map +1 -1
- package/dist/AssetsContractController.js +1 -2
- package/dist/AssetsContractController.js.map +1 -1
- package/dist/NftController.d.ts.map +1 -1
- package/dist/NftController.js +18 -16
- package/dist/NftController.js.map +1 -1
- package/dist/NftDetectionController.d.ts.map +1 -1
- package/dist/NftDetectionController.js +0 -2
- package/dist/NftDetectionController.js.map +1 -1
- package/dist/Standards/ERC20Standard.d.ts +1 -2
- package/dist/Standards/ERC20Standard.d.ts.map +1 -1
- package/dist/Standards/ERC20Standard.js +6 -8
- package/dist/Standards/ERC20Standard.js.map +1 -1
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.ts +1 -2
- package/dist/Standards/NftStandards/ERC1155/ERC1155Standard.d.ts.map +1 -1
- 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 +2 -3
- package/dist/Standards/NftStandards/ERC721/ERC721Standard.js.map +1 -1
- package/dist/TokenBalancesController.d.ts +12 -10
- package/dist/TokenBalancesController.d.ts.map +1 -1
- package/dist/TokenBalancesController.js +13 -16
- package/dist/TokenBalancesController.js.map +1 -1
- package/dist/TokenDetectionController.d.ts +45 -20
- package/dist/TokenDetectionController.d.ts.map +1 -1
- package/dist/TokenDetectionController.js +208 -99
- package/dist/TokenDetectionController.js.map +1 -1
- package/dist/TokensController.d.ts +20 -20
- package/dist/TokensController.d.ts.map +1 -1
- package/dist/TokensController.js +16 -23
- package/dist/TokensController.js.map +1 -1
- package/dist/assetsUtil.d.ts +1 -2
- package/dist/assetsUtil.d.ts.map +1 -1
- package/dist/assetsUtil.js +7 -3
- package/dist/assetsUtil.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/token-prices-service/codefi-v2.d.ts.map +1 -1
- package/dist/token-prices-service/codefi-v2.js +1 -1
- package/dist/token-prices-service/codefi-v2.js.map +1 -1
- package/package.json +12 -5
- package/dist/Standards/standards-types.d.ts +0 -15
- package/dist/Standards/standards-types.d.ts.map +0 -1
- package/dist/Standards/standards-types.js +0 -3
- package/dist/Standards/standards-types.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
+
|
|
2
3
|
All notable changes to this project will be documented in this file.
|
|
3
4
|
|
|
4
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
@@ -6,14 +7,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
7
|
|
|
7
8
|
## [Unreleased]
|
|
8
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **BREAKING:** Adds `@metamask/accounts-controller` ^8.0.0 and `@metamask/keyring-controller` ^12.0.0 as dependencies and peer dependencies. ([#3775](https://github.com/MetaMask/core/pull/3775/)).
|
|
13
|
+
- **BREAKING:** `TokenDetectionController` newly subscribes to the `PreferencesController:stateChange`, `AccountsController:selectedAccountChange`, `KeyringController:lock`, `KeyringController:unlock` events, and allows messenger actions `AccountsController:getSelectedAccount`, `NetworkController:findNetworkClientIdByChainId`, `NetworkController:getNetworkConfigurationByNetworkClientId`, `NetworkController:getProviderConfig`, `KeyringController:getState`, `PreferencesController:getState`, `TokenListController:getState`, `TokensController:getState`, `TokensController:addDetectedTokens`. ([#3775](https://github.com/MetaMask/core/pull/3775/)), ([#3923](https://github.com/MetaMask/core/pull/3923/))
|
|
14
|
+
- `TokensController` now exports `TokensControllerActions`, `TokensControllerGetStateAction`, `TokensControllerAddDetectedTokensAction`, `TokensControllerEvents`, `TokensControllerStateChangeEvent`. ([#3690](https://github.com/MetaMask/core/pull/3690/))
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- **BREAKING:** `TokenDetectionController` is merged with `DetectTokensController` from the `metamask-extension` repo. ([#3775](https://github.com/MetaMask/core/pull/3775/), [#3923](https://github.com/MetaMask/core/pull/3923)), ([#3938](https://github.com/MetaMask/core/pull/3938))
|
|
19
|
+
- **BREAKING:** `TokenDetectionController` now resets its polling interval to the default value of 3 minutes when token detection is triggered by external controller events `KeyringController:unlock`, `TokenListController:stateChange`, `PreferencesController:stateChange`, `AccountsController:selectedAccountChange`.
|
|
20
|
+
- **BREAKING:** `TokenDetectionController` now refetches tokens on `NetworkController:networkDidChange` if the `networkClientId` is changed instead of `chainId`.
|
|
21
|
+
- **BREAKING:** `TokenDetectionController` cannot initiate polling or token detection if `KeyringController` state is locked.
|
|
22
|
+
- **BREAKING:** The `detectTokens` method input option `accountAddress` has been renamed to `selectedAddress`.
|
|
23
|
+
- **BREAKING:** The `detectTokens` method now excludes tokens that are already included in the `TokensController`'s `detectedTokens` list from the batch of incoming tokens it sends to the `TokensController` `addDetectedTokens` method.
|
|
24
|
+
- **BREAKING:** The constructor for `TokenDetectionController` expects a new required proprerty `trackMetaMetricsEvent`, which defines the callback that is called in the `detectTokens` method.
|
|
25
|
+
- The constructor option `selectedAddress` no longer defaults to `''` if omitted. Instead, the correct address is assigned using the `AccountsController:getSelectedAccount` messenger action.
|
|
26
|
+
- **BREAKING:** In Mainnet, even if the `PreferenceController`'s `useTokenDetection` option is set to false, automatic token detection is performed on the legacy token list (token data from the contract-metadata repo).
|
|
27
|
+
- **BREAKING:** The `TokensState` type is now defined as a type alias rather than an interface. ([#3690](https://github.com/MetaMask/core/pull/3690/))
|
|
28
|
+
- This is breaking because it could affect how this type is used with other types, such as `Json`, which does not support TypeScript interfaces.
|
|
29
|
+
|
|
30
|
+
### Removed
|
|
31
|
+
|
|
32
|
+
- **BREAKING:** `TokenDetectionController` constructor no longer accepts options `onPreferencesStateChange`, `getPreferencesState`, `getTokensState`, `addDetectedTokens`. ([#3690](https://github.com/MetaMask/core/pull/3690/), [#3775](https://github.com/MetaMask/core/pull/3775/))
|
|
33
|
+
- **BREAKING:** `TokenDetectionController` no longer allows the `NetworkController:stateChange` event. The `NetworkController:networkDidChange` event can be used instead. ([#3775](https://github.com/MetaMask/core/pull/3775/))
|
|
34
|
+
- **BREAKING:** `TokensController` constructor no longer accepts options `onPreferencesStateChange`, `onNetworkDidChange`, `onTokenListStateChange`, `getNetworkClientById`. ([#3690](https://github.com/MetaMask/core/pull/3690/))
|
|
35
|
+
- **BREAKING:** `TokenBalancesController` constructor no longer accepts options `onTokensStateChange`, `getSelectedAddress`. ([#3690](https://github.com/MetaMask/core/pull/3690/))
|
|
36
|
+
|
|
9
37
|
## [25.0.0]
|
|
38
|
+
|
|
10
39
|
### Added
|
|
40
|
+
|
|
11
41
|
- Add Linea to price api supported chains ([#3797](https://github.com/MetaMask/core/pull/3797))
|
|
12
42
|
|
|
13
43
|
### Changed
|
|
44
|
+
|
|
14
45
|
- **BREAKING:** Convert `TokenBalancesController` to `BaseControllerV2` ([#3750](https://github.com/MetaMask/core/pull/3750))
|
|
15
|
-
- The constructor parameters have changed; rather than accepting a "config" parameter for interval and tokens we now pass both values as controller options, and a "state" parameter, there is now just a single object for all constructor arguments. This object has a mandatory `messenger` and an optional `state`, `tokens`, `interval`
|
|
16
|
-
- State now saves tokens
|
|
46
|
+
- The constructor parameters have changed; rather than accepting a "config" parameter for interval and tokens we now pass both values as controller options, and a "state" parameter, there is now just a single object for all constructor arguments. This object has a mandatory `messenger` and an optional `state`, `tokens`, `interval` properties a disabled property has also been added.
|
|
47
|
+
- State now saves tokens balances as strings and not as a BNs.
|
|
17
48
|
- Additional BN export has been removed as it was intended to be removed in the next major release.
|
|
18
49
|
- **BREAKING:** Bump `@metamask/approval-controller` peer dependency to `^5.1.2` ([#3821](https://github.com/MetaMask/core/pull/3821))
|
|
19
50
|
- **BREAKING:** Bump `@metamask/network-controller` peer dependency to `^17.2.0` ([#3821](https://github.com/MetaMask/core/pull/3821))
|
|
@@ -24,33 +55,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
24
55
|
- Bump `@metamask/polling-controller` to `^5.0.0` ([#3821](https://github.com/MetaMask/core/pull/3821))
|
|
25
56
|
|
|
26
57
|
## [24.0.0]
|
|
58
|
+
|
|
27
59
|
### Added
|
|
60
|
+
|
|
28
61
|
- Add `getDefaultTokenListState` function to `TokenListController` ([#3744](https://github.com/MetaMask/core/pull/3744))
|
|
29
62
|
- Add `getDefaultNftState` function to the `NftController` ([#3742](https://github.com/MetaMask/core/pull/3742))
|
|
30
63
|
- Add `getDefaultTokensState` function to the `TokensController` ([#3743](https://github.com/MetaMask/core/pull/3743))
|
|
31
64
|
|
|
32
65
|
### Changed
|
|
66
|
+
|
|
33
67
|
- **BREAKING:** Bump `@metamask/preferences-controller` to ^6.0.0
|
|
34
68
|
- Price API perf improvements ([#3753](https://github.com/MetaMask/core/pull/3753), [#3755](https://github.com/MetaMask/core/pull/3755))
|
|
35
69
|
- Reduce token batch size from 100 to 30
|
|
36
70
|
- Sort token addresses in query params for more cache hits
|
|
37
71
|
|
|
38
72
|
## [23.1.0]
|
|
73
|
+
|
|
39
74
|
### Added
|
|
75
|
+
|
|
40
76
|
- Add support to `CodefiTokenPricesServiceV2` for tracking degraded service ([#3691](https://github.com/MetaMask/core/pull/3691))
|
|
41
77
|
- The constructor has two new options: `onDegraded` and `degradedThreshold`. `onDegraded` is an event handler for instances of degraded service (i.e. failed or slow requests), and `degradedThreshold` determines how slow a request has to be before we consider service to be degraded.
|
|
42
78
|
|
|
43
79
|
## [23.0.0]
|
|
80
|
+
|
|
44
81
|
### Added
|
|
82
|
+
|
|
45
83
|
- Add `onBreak` handler to `CodefiTokenPricesServiceV2` ([#3677](https://github.com/MetaMask/core/pull/3677))
|
|
46
84
|
- This allows listening for "circuit breaks", which can indicate an outage. Useful for metrics.
|
|
47
85
|
- Add `fetchTokenContractExchangeRates` utility method ([#3657](https://github.com/MetaMask/core/pull/3657))
|
|
48
86
|
- `TokenListController` now exports a `TokenListControllerMessenger` type ([#3609](https://github.com/MetaMask/core/pull/3609)).
|
|
49
87
|
- `TokenDetectionController` exports types `TokenDetectionControllerMessenger`, `TokenDetectionControllerActions`, `TokenDetectionControllerGetStateAction`, `TokenDetectionControllerEvents`, `TokenDetectionControllerStateChangeEvent` ([#3609](https://github.com/MetaMask/core/pull/3609)).
|
|
50
|
-
- 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.
|
|
88
|
+
- 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)).
|
|
51
89
|
- 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.
|
|
52
90
|
|
|
53
91
|
### Changed
|
|
92
|
+
|
|
54
93
|
- **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))
|
|
55
94
|
- **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))
|
|
56
95
|
- **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))
|
|
@@ -63,19 +102,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
63
102
|
- Bump `@metamask/controller-utils` from `8.0.0` to `^8.0.1` ([#3695](https://github.com/MetaMask/core/pull/3695))
|
|
64
103
|
|
|
65
104
|
### Fixed
|
|
105
|
+
|
|
66
106
|
- Fix error caused by OpenSea API rename of `supply` to `total_supply` ([#3692](https://github.com/MetaMask/core/pull/3692))
|
|
67
107
|
- Fix `CodefiTokenPricesServiceV2` support for Shiden ([#3683](https://github.com/MetaMask/core/pull/3683))
|
|
68
108
|
- Improve how `CodefiTokenPricesServiceV2` handles token price update failures ([#3687](https://github.com/MetaMask/core/pull/3687))
|
|
69
109
|
- 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.
|
|
70
110
|
|
|
71
111
|
## [22.0.0]
|
|
112
|
+
|
|
72
113
|
### Changed
|
|
114
|
+
|
|
73
115
|
- **BREAKING:** OpenSea V2 API is used instead of V1 ([#3654](https://github.com/MetaMask/core/pull/3654))
|
|
74
|
-
- `NftDetectionController` constructor now requires
|
|
116
|
+
- `NftDetectionController` constructor now requires the `NftController.getNftApi` function.
|
|
75
117
|
- NFT controllers will no longer return `last_sale` information for NFTs fetched after the OpenSea V2 update
|
|
76
118
|
|
|
77
119
|
## [21.0.0]
|
|
120
|
+
|
|
78
121
|
### Added
|
|
122
|
+
|
|
79
123
|
- 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))
|
|
80
124
|
- This class can be used for the new `tokenPricesService` argument for TokenRatesController. It uses a MetaMask API to fetch prices for tokens instead of CoinGecko.
|
|
81
125
|
- The `CodefiTokenPricesServiceV2` will retry if the token price update fails
|
|
@@ -90,6 +134,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
90
134
|
- Support token detection on Arbitrum and Optimism ([#2035](https://github.com/MetaMask/core/pull/2035))
|
|
91
135
|
|
|
92
136
|
### Changed
|
|
137
|
+
|
|
93
138
|
- **BREAKING:** `TokenRatesController` now takes a required argument `tokenPricesService` ([#3600](https://github.com/MetaMask/core/pull/3600))
|
|
94
139
|
- This object is responsible for fetching the prices for tokens held by this controller.
|
|
95
140
|
- **BREAKING:** Update signature of `TokenRatesController.updateExchangeRatesByChainId` ([#3600](https://github.com/MetaMask/core/pull/3600), [#3653](https://github.com/MetaMask/core/pull/3653))
|
|
@@ -98,8 +143,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
98
143
|
- These are needed for the new "polling by `networkClientId`" feature
|
|
99
144
|
- **BREAKING:** `AccountTrackerController` has a new required state property, `accountByChainId`([#3586](https://github.com/MetaMask/core/pull/3586))
|
|
100
145
|
- This is needed to track balances accross chains. It was introduced for the "polling by `networkClientId`" feature, but is useful on its own as well.
|
|
101
|
-
- **BREAKING
|
|
102
|
-
- **BREAKING
|
|
146
|
+
- **BREAKING:** `AccountTrackerController` adds a mutex to `refresh` making it only possible for one call to be executed at time ([#3586](https://github.com/MetaMask/core/pull/3586))
|
|
147
|
+
- **BREAKING:** `TokensController.watchAsset` now performs on-chain validation of the asset's symbol and decimals, if they're defined in the contract ([#1745](https://github.com/MetaMask/core/pull/1745))
|
|
103
148
|
- The `TokensController` constructor no longer accepts a `getERC20TokenName` option. It was no longer needed due to this change.
|
|
104
149
|
- Add new method `_getProvider`, though this is intended for internal use and should not be called externally.
|
|
105
150
|
- Additionally, if the symbol and decimals are defined in the contract, they are no longer required to be passed to `watchAsset`
|
|
@@ -123,18 +168,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
123
168
|
- Add dependencies `cockatiel` and `lodash` ([#3586](https://github.com/MetaMask/core/pull/3586), [#3655](https://github.com/MetaMask/core/pull/3655))
|
|
124
169
|
|
|
125
170
|
### Removed
|
|
171
|
+
|
|
126
172
|
- **BREAKING:** Remove `fetchExchangeRate` method from TokenRatesController ([#3600](https://github.com/MetaMask/core/pull/3600))
|
|
127
173
|
- This method (not to be confused with `updateExchangeRate`, which is still present) was only ever intended to be used internally and should not be accessed directly.
|
|
128
174
|
- **BREAKING:** Remove `getChainSlug` method from TokenRatesController ([#3600](https://github.com/MetaMask/core/pull/3600))
|
|
129
175
|
- This method was previously used in TokenRatesController to access the CoinGecko API. There is no equivalent.
|
|
130
176
|
- **BREAKING:** Remove `CoinGeckoResponse` and `CoinGeckoPlatform` types ([#3600](https://github.com/MetaMask/core/pull/3600))
|
|
131
177
|
- These types were previously used in TokenRatesController to represent data returned from the CoinGecko API. There is no equivalent.
|
|
132
|
-
- **BREAKING
|
|
178
|
+
- **BREAKING:** The TokenRatesController now only supports updating and polling rates for tokens tracked by the TokensController ([#3639](https://github.com/MetaMask/core/pull/3639))
|
|
133
179
|
- The `tokenAddresses` option has been removed from `startPollingByNetworkClientId`
|
|
134
180
|
- The `tokenContractAddresses` option has been removed from `updateExchangeRatesByChainId`
|
|
135
|
-
- **BREAKING
|
|
181
|
+
- **BREAKING:** `TokenRatesController.fetchAndMapExchangeRates` is no longer exposed publicly ([#3621](https://github.com/MetaMask/core/pull/3621))
|
|
136
182
|
|
|
137
183
|
### Fixed
|
|
184
|
+
|
|
138
185
|
- Prevent `TokenRatesController` from making redundant token rate updates when tokens change ([#3647](https://github.com/MetaMask/core/pull/3647), [#3663](https://github.com/MetaMask/core/pull/3663))
|
|
139
186
|
- Previously, token rates would be re-fetched for the globally selected network on all TokensController state changes, but now token rates are always performed for a deduplicated and normalized set of addresses, and changes to this set determine whether rates should be re-fetched.
|
|
140
187
|
- Prevent redundant overlapping token rate updates in `TokenRatesController` ([#3635](https://github.com/MetaMask/core/pull/3635))
|
|
@@ -146,7 +193,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
146
193
|
- This affects `watchNft` and `addNft` methods
|
|
147
194
|
|
|
148
195
|
## [20.0.0]
|
|
196
|
+
|
|
149
197
|
### Added
|
|
198
|
+
|
|
150
199
|
- **BREAKING**: `TokenRatesControllerState` now has required `contractExchangeRatesByChainId` property which an object keyed by `chainId` and `nativeCurrency` ([#2015](https://github.com/MetaMask/core/pull/2015))
|
|
151
200
|
- **BREAKING**: `TokenRatesController` constructor params now requires `getNetworkClientById` ([#2015](https://github.com/MetaMask/core/pull/2015))
|
|
152
201
|
- Add types `CurrencyRateControllerEvents` and `CurrencyRateControllerActions` ([#2029](https://github.com/MetaMask/core/pull/2029))
|
|
@@ -163,6 +212,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
163
212
|
- `TokenRatesController.fetchAndMapExchangeRates()` now accepts an optional `tokenAddresses` as the last parameter ([#2015](https://github.com/MetaMask/core/pull/2015))
|
|
164
213
|
|
|
165
214
|
### Changed
|
|
215
|
+
|
|
166
216
|
- **BREAKING:** Bump dependency on `@metamask/base-controller` to ^4.0.0 ([#2063](https://github.com/MetaMask/core/pull/2063))
|
|
167
217
|
- This is breaking because the type of the `messenger` has backward-incompatible changes. See the changelog for this package for more.
|
|
168
218
|
- Bump `@metamask/approval-controller` to ^5.0.0 ([#2063](https://github.com/MetaMask/core/pull/2063))
|
|
@@ -172,14 +222,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
172
222
|
- Bump `@metamask/preferences-controller` to ^5.0.0 ([#2063](https://github.com/MetaMask/core/pull/2063))
|
|
173
223
|
|
|
174
224
|
## [19.0.0]
|
|
225
|
+
|
|
175
226
|
### Changed
|
|
227
|
+
|
|
176
228
|
- **BREAKING:** Bump dependency and peer dependency on `@metamask/network-controller` to ^16.0.0
|
|
177
229
|
- Add optional `networkClientId` and `userAddress` args to remaining `NftController` public methods ([#2006](https://github.com/MetaMask/core/pull/2006))
|
|
178
230
|
- `watchNft`, `removeNft`, `removeAndIgnoreNft`, `removeNftContract`, `updateNftFavoriteStatus`, and `checkAndUpdateAllNftsOwnershipStatus` methods on `NftController` all now accept an optional options object argument containing `networkClientId` and `userAddress` to identify where in state to mutate.
|
|
179
231
|
- **BREAKING**: `addNft` no longer accepts a `chainId` property in its options argument since this value can be retrieved by the `networkClientId` property and is therefore redundant.
|
|
180
232
|
- **BREAKING**: The third and fourth arguments on NftController's `addNftVerifyOwnership` method, have been replaced with an options object containing optional properties `networkClientId`, `userAddress` and `source`. This method signature is more aligned with the options pattern for passing `networkClientId` and `userAddress` on this controller and elsewhere.
|
|
181
233
|
- **BREAKING**: `checkAndUpdateSingleNftOwnershipStatus` on NftController no longer accepts a `chainId` in its options argument. This is replaced with an optional `networkClientId` property which can be used to fetch chainId.
|
|
182
|
-
|
|
234
|
+
**\*BREAKING**: The fourth argument of the `isNftOwner` method on `NftController` is now an options object with an optional `networkClientId` property. This method signature is more aligned with the options pattern for passing `networkClientId` on this controller and elsewhere.
|
|
183
235
|
- **BREAKING**: `validateWatchNft` method on `NftController` is now private.
|
|
184
236
|
- **BREAKING**: `detectNfts` on `NftDetectionController` now accepts a single object argument with optional properties `networkClientId` and `userAddress`, rather than taking these as two sequential arguments.
|
|
185
237
|
- Bump dependency `@metamask/eth-query` from ^3.0.1 to ^4.0.0 ([#2028](https://github.com/MetaMask/core/pull/2028))
|
|
@@ -187,10 +239,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
187
239
|
- Bump `@metamask/utils` from 8.1.0 to 8.2.0 ([#1957](https://github.com/MetaMask/core/pull/1957))
|
|
188
240
|
|
|
189
241
|
### Fixed
|
|
242
|
+
|
|
190
243
|
- Add name and symbol to the payload returned by the `ERC1155Standard` class `getDetails` method for `ERC1155` contracts ([#1727](https://github.com/MetaMask/core/pull/1727))
|
|
191
244
|
|
|
192
245
|
## [18.0.0]
|
|
246
|
+
|
|
193
247
|
### Changed
|
|
248
|
+
|
|
194
249
|
- **BREAKING**: `CurrencyRateController` is now keyed by `nativeCurrency` (i.e. ticker) for `conversionDate`, `conversionRate`, and `usdConversionRate` in the `currencyRates` object. `nativeCurrency`, `pendingNativeCurrency`, and `pendingCurrentCurrency` have been removed.
|
|
195
250
|
- ```
|
|
196
251
|
export type CurrencyRateState = {
|
|
@@ -205,27 +260,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
205
260
|
>;
|
|
206
261
|
};
|
|
207
262
|
```
|
|
208
|
-
- **BREAKING**: `CurrencyRateController` now extends `PollingController`
|
|
263
|
+
- **BREAKING**: `CurrencyRateController` now extends `PollingController` ([#1805](https://github.com/MetaMask/core/pull/1805))
|
|
209
264
|
- `start()` and `stop()` methods replaced with `startPollingByNetworkClientId()`, `stopPollingByPollingToken()`, and `stopAllPolling()`
|
|
210
|
-
- **BREAKING
|
|
265
|
+
- **BREAKING:** `CurrencyRateController` now sends the `NetworkController:getNetworkClientById` action via messaging controller ([#1805](https://github.com/MetaMask/core/pull/1805))
|
|
211
266
|
|
|
212
267
|
### Fixed
|
|
268
|
+
|
|
213
269
|
- Parallelize network requests in assets controllers for performance enhancement ([#1801](https://github.com/MetaMask/core/pull/1801))
|
|
214
270
|
- Fix token detection on accounts when user changes account after token detection request is inflight ([#1848](https://github.com/MetaMask/core/pull/1848))
|
|
215
271
|
|
|
216
272
|
## [17.0.0]
|
|
273
|
+
|
|
217
274
|
### Changed
|
|
275
|
+
|
|
218
276
|
- **BREAKING:** Bump dependency on `@metamask/polling-controller` to ^1.0.0
|
|
219
277
|
- Bump dependency and peer dependency on `@metamask/network-controller` to ^15.1.0
|
|
220
278
|
|
|
221
279
|
## [16.0.0]
|
|
280
|
+
|
|
222
281
|
### Added
|
|
282
|
+
|
|
223
283
|
- Add way to start and stop different polling sessions for the same network client ID by providing extra scoping data ([#1776](https://github.com/MetaMask/core/pull/1776))
|
|
224
284
|
- Add optional second argument to `stopPollingByPollingToken` (formerly `stopPollingByNetworkClientId`)
|
|
225
285
|
- Add optional second argument to `onPollingCompleteByNetworkClientId`
|
|
226
286
|
- Add support for token detection for Linea mainnet and Linea Goerli ([#1799](https://github.com/MetaMask/core/pull/1799))
|
|
227
287
|
|
|
228
288
|
### Changed
|
|
289
|
+
|
|
229
290
|
- **BREAKING:** Bump dependency and peer dependency on `@metamask/network-controller` to ^15.0.0
|
|
230
291
|
- **BREAKING:** Make `executePoll` in TokenListController private ([#1810](https://github.com/MetaMask/core/pull/1810))
|
|
231
292
|
- **BREAKING:** Update TokenListController to rename `stopPollingByNetworkClientId` to `stopPollingByPollingToken` ([#1810](https://github.com/MetaMask/core/pull/1810))
|
|
@@ -235,7 +296,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
235
296
|
- Fix support for NFT metadata stored outside IPFS ([#1772](https://github.com/MetaMask/core/pull/1772))
|
|
236
297
|
|
|
237
298
|
## [15.0.0]
|
|
299
|
+
|
|
238
300
|
### Changed
|
|
301
|
+
|
|
239
302
|
- **BREAKING**: `NftController` now expects `getNetworkClientById` in constructor options ([#1698](https://github.com/MetaMask/core/pull/1698))
|
|
240
303
|
- **BREAKING**: `NftController.addNft` function signature has changed ([#1698](https://github.com/MetaMask/core/pull/1698))
|
|
241
304
|
- Previously
|
|
@@ -261,7 +324,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
261
324
|
networkClientId?: NetworkClientId; // new
|
|
262
325
|
},
|
|
263
326
|
```
|
|
264
|
-
- `NftController.addNftVerifyOwnership`: Now accepts optional 3rd argument `networkClientId` which is used to fetch NFT metadata and determine by which chainId the added NFT should be stored in state. Also accepts optional 4th argument `source` used for metrics to identify the flow in which the NFT was added to the wallet.
|
|
327
|
+
- `NftController.addNftVerifyOwnership`: Now accepts optional 3rd argument `networkClientId` which is used to fetch NFT metadata and determine by which chainId the added NFT should be stored in state. Also accepts optional 4th argument `source` used for metrics to identify the flow in which the NFT was added to the wallet. ([#1698](https://github.com/MetaMask/core/pull/1698))
|
|
265
328
|
- `NftController.isNftOwner`: Now accepts optional `networkClientId` which is used to instantiate the provider for the correct chain and call the NFT contract to verify ownership ([#1698](https://github.com/MetaMask/core/pull/1698))
|
|
266
329
|
- `NftController.addNft` will use the chainId value derived from `networkClientId` if provided ([#1698](https://github.com/MetaMask/core/pull/1698))
|
|
267
330
|
- `NftController.watchNft` options now accepts optional `networkClientId` which is used to fetch NFT metadata and determine by which chainId the added NFT should be stored in state ([#1698](https://github.com/MetaMask/core/pull/1698))
|
|
@@ -272,19 +335,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
272
335
|
- Bump dependency and peer dependency on `@metamask/network-controller` to ^14.0.0
|
|
273
336
|
|
|
274
337
|
### Fixed
|
|
338
|
+
|
|
275
339
|
- Fix bug in TokensController where batched `addToken` overwrote each other because mutex was acquired after reading state ([#1768](https://github.com/MetaMask/core/pull/1768))
|
|
276
340
|
|
|
277
341
|
## [14.0.0]
|
|
342
|
+
|
|
278
343
|
### Changed
|
|
344
|
+
|
|
279
345
|
- Update TypeScript to v4.8.x ([#1718](https://github.com/MetaMask/core/pull/1718))
|
|
280
346
|
- Update `@metamask/rpc-errors` to `^6.0.0` ([#1690](https://github.com/MetaMask/core/pull/1690))
|
|
281
347
|
|
|
282
348
|
### Removed
|
|
349
|
+
|
|
283
350
|
- **BREAKING:** Remove AbortController polyfill
|
|
284
351
|
- This package now assumes that the AbortController global exists
|
|
285
352
|
|
|
286
353
|
## [13.0.0]
|
|
354
|
+
|
|
287
355
|
### Changed
|
|
356
|
+
|
|
288
357
|
- **BREAKING**: `TokensController` now expects `getNetworkClientById` in constructor options ([#1676](https://github.com/MetaMask/core/pull/1676))
|
|
289
358
|
- **BREAKING**: `TokensController.addToken` now accepts a single options object ([#1676](https://github.com/MetaMask/core/pull/1676))
|
|
290
359
|
```
|
|
@@ -298,7 +367,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
298
367
|
networkClientId?: NetworkClientId;
|
|
299
368
|
}
|
|
300
369
|
```
|
|
301
|
-
- **BREAKING
|
|
370
|
+
- **BREAKING:** Bump peer dependency on `@metamask/network-controller` to ^13.0.0 ([#1633](https://github.com/MetaMask/core/pull/1633))
|
|
302
371
|
- **CHANGED**: `TokensController.addToken` will use the chain ID value derived from state for `networkClientId` if provided ([#1676](https://github.com/MetaMask/core/pull/1676))
|
|
303
372
|
- **CHANGED**: `TokensController.addTokens` now accepts an optional `networkClientId` as the last parameter ([#1676](https://github.com/MetaMask/core/pull/1676))
|
|
304
373
|
- **CHANGED**: `TokensController.addTokens` will use the chain ID value derived from state for `networkClientId` if provided ([#1676](https://github.com/MetaMask/core/pull/1676))
|
|
@@ -307,33 +376,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
307
376
|
- Bump dependency on `@metamask/preferences-controller` to ^4.4.1 ([#1676](https://github.com/MetaMask/core/pull/1676))
|
|
308
377
|
|
|
309
378
|
## [12.0.0]
|
|
379
|
+
|
|
310
380
|
### Added
|
|
381
|
+
|
|
311
382
|
- Add `AssetsContractController` methods `getProvider`, `getChainId`, `getERC721Standard`, and `getERC1155Standard` ([#1638](https://github.com/MetaMask/core/pull/1638))
|
|
312
383
|
|
|
313
384
|
### Changed
|
|
385
|
+
|
|
314
386
|
- **BREAKING**: Add `getNetworkClientById` to `AssetsContractController` constructor options ([#1638](https://github.com/MetaMask/core/pull/1638))
|
|
315
|
-
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
387
|
+
- Add optional `networkClientId` parameter to various `AssetContractController` methods ([#1638](https://github.com/MetaMask/core/pull/1638))
|
|
388
|
+
- The affected methods are:
|
|
389
|
+
- `getERC20BalanceOf`
|
|
390
|
+
- `getERC20TokenDecimals`
|
|
391
|
+
- `getERC20TokenName`
|
|
392
|
+
- `getERC721NftTokenId`
|
|
393
|
+
- `getTokenStandardAndDetails`
|
|
394
|
+
- `getERC721TokenURI`
|
|
395
|
+
- `getERC721AssetName`
|
|
396
|
+
- `getERC721AssetSymbol`
|
|
397
|
+
- `getERC721OwnerOf`
|
|
398
|
+
- `getERC1155TokenURI`
|
|
399
|
+
- `getERC1155BalanceOf`
|
|
400
|
+
- `transferSingleERC1155`
|
|
401
|
+
- `getBalancesInSingleCall`
|
|
330
402
|
|
|
331
403
|
## [11.1.0]
|
|
404
|
+
|
|
332
405
|
### Added
|
|
406
|
+
|
|
333
407
|
- Add `tokenURI` to `NftMetadata` type ([#1577](https://github.com/MetaMask/core/pull/1577))
|
|
334
408
|
- Populate token URL for NFT metadata under `tokenURI` ([#1577](https://github.com/MetaMask/core/pull/1577))
|
|
335
409
|
|
|
336
410
|
### Changed
|
|
411
|
+
|
|
337
412
|
- Bump dependency and peer dependency on `@metamask/approval-controller` to ^3.5.1
|
|
338
413
|
- Bump dependency on `@metamask/base-controller` to ^3.2.1
|
|
339
414
|
- Bump dependency on `@metamask/controller-utils` to ^4.3.2
|
|
@@ -342,38 +417,47 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
342
417
|
- Update NftController to add fallback for when IPFS gateway is disabled ([#1577](https://github.com/MetaMask/core/pull/1577))
|
|
343
418
|
|
|
344
419
|
## [11.0.1]
|
|
420
|
+
|
|
345
421
|
### Changed
|
|
422
|
+
|
|
346
423
|
- Replace `eth-query` ^2.1.2 with `@metamask/eth-query` ^3.0.1 ([#1546](https://github.com/MetaMask/core/pull/1546))
|
|
347
424
|
|
|
348
425
|
## [11.0.0]
|
|
426
|
+
|
|
349
427
|
### Added
|
|
428
|
+
|
|
350
429
|
- Add a `stop` method to stop polling
|
|
351
430
|
|
|
352
431
|
### Changed
|
|
432
|
+
|
|
353
433
|
- **BREAKING**: New required constructor parameters for the `TokenRatesController` ([#1497](https://github.com/MetaMask/core/pull/1497), [#1511](https://github.com/MetaMask/core/pull/1511))
|
|
354
434
|
- The new required parameters are `ticker`, `onSelectedAddress`, and `onPreferencesStateChange`
|
|
355
|
-
- **BREAKING
|
|
356
|
-
- **BREAKING
|
|
435
|
+
- **BREAKING:** Remove `onCurrencyRateStateChange` constructor parameter from `TokenRatesController` ([#1496](https://github.com/MetaMask/core/pull/1496))
|
|
436
|
+
- **BREAKING:** Disable `TokenRatesController` automatic polling ([#1501](https://github.com/MetaMask/core/pull/1501))
|
|
357
437
|
- Polling must be started explicitly by calling the `start` method
|
|
358
438
|
- The token rates are not updated upon state changes when polling is disabled.
|
|
359
|
-
- **BREAKING
|
|
439
|
+
- **BREAKING:** Replace the `poll` method with `start` ([#1501](https://github.com/MetaMask/core/pull/1501))
|
|
360
440
|
- The `start` method does not offer a way to change the interval. That must be done by calling `.configure` instead
|
|
361
|
-
- **BREAKING
|
|
441
|
+
- **BREAKING:** Remove `TokenRatecontroller` setter for `chainId` and `tokens` properties ([#1505](https://github.com/MetaMask/core/pull/1505))
|
|
362
442
|
- Bump @metamask/abi-utils from 1.2.0 to 2.0.1 ([#1525](https://github.com/MetaMask/core/pull/1525))
|
|
363
443
|
- Update `@metamask/utils` to `^6.2.0` ([#1514](https://github.com/MetaMask/core/pull/1514))
|
|
364
444
|
- Remove unnecessary `babel-runtime` dependency ([#1504](https://github.com/MetaMask/core/pull/1504))
|
|
365
445
|
|
|
366
446
|
### Fixed
|
|
447
|
+
|
|
367
448
|
- Fix bug where token rates were incorrect after first update if initialized with a non-Ethereum selected network ([#1497](https://github.com/MetaMask/core/pull/1497))
|
|
368
449
|
- Fix bug where token rates would be invalid if event handlers were triggered in the wrong order ([#1496](https://github.com/MetaMask/core/pull/1496), [#1511](https://github.com/MetaMask/core/pull/1511))
|
|
369
450
|
- Prevent redundant token rate updates ([#1512](https://github.com/MetaMask/core/pull/1512))
|
|
370
451
|
|
|
371
452
|
## [10.0.0]
|
|
453
|
+
|
|
372
454
|
### Added
|
|
455
|
+
|
|
373
456
|
- The method `getERC20TokenName` has been added to `AssetsContractController` ([#1127](https://github.com/MetaMask/core/pull/1127))
|
|
374
457
|
- This method gets the token name from the token contract
|
|
375
458
|
|
|
376
459
|
### Changed
|
|
460
|
+
|
|
377
461
|
- **BREAKING:** The tokens controller now requires `onTokenListStateChange` and `getERC20TokenName` as constructor parameters ([#1127](https://github.com/MetaMask/core/pull/1127))
|
|
378
462
|
- The `getERC20TokenName` method is used to get the token name for tokens added via `wallet_watchAsset`
|
|
379
463
|
- The `onTokenListStateChange` method is used to trigger a name update when the token list changes. On each change, token names are copied from the token list if they're missing from token controller state.
|
|
@@ -384,19 +468,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
384
468
|
- The `Token` type now includes an optional `name` field ([#1127](https://github.com/MetaMask/core/pull/1127))
|
|
385
469
|
|
|
386
470
|
## [9.2.0]
|
|
471
|
+
|
|
387
472
|
### Added
|
|
473
|
+
|
|
388
474
|
- Add validation that the nft standard matches the type argument of a `wallet_watchAsset` request when type is 'ERC721' or 'ERC1155' ([#1455](https://github.com/MetaMask/core/pull/1455))
|
|
389
475
|
|
|
390
476
|
## [9.1.0]
|
|
477
|
+
|
|
391
478
|
### Added
|
|
479
|
+
|
|
392
480
|
- Add a fifth argument, `source`, to NftController's `addNft` method ([#1417](https://github.com/MetaMask/core/pull/1417))
|
|
393
481
|
- This argument can be used to specify whether the NFT was detected, added manually, or suggested by a dapp
|
|
394
482
|
|
|
395
483
|
### Fixed
|
|
484
|
+
|
|
396
485
|
- Fix `watchNft` in NftController to ensure that if the network changes before the user accepts the request, the NFT is added to the chain ID and address before the request was initiated ([#1417](https://github.com/MetaMask/core/pull/1417))
|
|
397
486
|
|
|
398
487
|
## [9.0.0]
|
|
488
|
+
|
|
399
489
|
### Added
|
|
490
|
+
|
|
400
491
|
- **BREAKING**: Add required options `getSelectedAddress` and `getMultiAccountBalancesEnabled` to AccountTrackerController constructor and make use of them when refreshing account balances ([#1146](https://github.com/MetaMask/core/pull/1146))
|
|
401
492
|
- Previously, the controller would refresh all account balances, but these options can be used to only refresh the currently selected account
|
|
402
493
|
- **BREAKING:** Add logic to support validating and adding ERC721 and ERC1155 tokens to NFTController state via `wallet_watchAsset` API. ([#1173](https://github.com/MetaMask/core/pull/1173), [#1406](https://github.com/MetaMask/core/pull/1406))
|
|
@@ -404,15 +495,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
404
495
|
- The `NFTController` now requires an instance of a ControllerMessenger to be passed to its constructor. This is messenger is used to pass the `watchNFT` message to the `ApprovalController`.
|
|
405
496
|
|
|
406
497
|
### Changed
|
|
498
|
+
|
|
407
499
|
- Add dependency on `@ethersproject/address` ([#1173](https://github.com/MetaMask/core/pull/1173))
|
|
408
500
|
- Replace `eth-rpc-errors` with `@metamask/rpc-errors` ([#1173](https://github.com/MetaMask/core/pull/1173))
|
|
409
501
|
|
|
410
502
|
## [8.0.0]
|
|
503
|
+
|
|
411
504
|
### Added
|
|
505
|
+
|
|
412
506
|
- Support NFT detection on Ethereum Mainnet custom RPC endpoints ([#1360](https://github.com/MetaMask/core/pull/1360))
|
|
413
507
|
- Enable token detection for the Aurora network ([#1327](https://github.com/MetaMask/core/pull/1327))
|
|
414
508
|
|
|
415
509
|
### Changed
|
|
510
|
+
|
|
416
511
|
- **BREAKING:** Bump to Node 16 ([#1262](https://github.com/MetaMask/core/pull/1262))
|
|
417
512
|
- **BREAKING:** Change format of chain ID in state to 0x-prefixed hex string ([#1367](https://github.com/MetaMask/core/pull/1367))
|
|
418
513
|
- The functions `isTokenDetectionSupportedForNetwork` and `formatIconUrlWithProxy` now expect a chain ID as type `Hex` rather than as a decimal `string`
|
|
@@ -432,17 +527,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
432
527
|
- The tokens controller `addDetectedTokens` method now accepts the `chainId` property of the `detectionDetails` parameter to be of type `Hex` rather than decimal `string`.
|
|
433
528
|
- The tokens controller state properties `allTokens`, `allIgnoredTokens`, and `allDetectedTokens` are now keyed by chain ID in `Hex` format rather than decimal `string`.
|
|
434
529
|
- This requires a state migration
|
|
435
|
-
- **BREAKING
|
|
530
|
+
- **BREAKING:** Use approval controller for suggested assets ([#1261](https://github.com/MetaMask/core/pull/1261), [#1268](https://github.com/MetaMask/core/pull/1268))
|
|
436
531
|
- The actions `ApprovalController:acceptRequest` and `ApprovalController:rejectRequest` are no longer required by the token controller messenger.
|
|
437
532
|
- The `suggestedAssets` state has been removed, which means that suggested assets are no longer persisted in state
|
|
438
533
|
- The return type for `watchAsset` has changed. It now returns a Promise that settles after the request has been confirmed or rejected.
|
|
439
534
|
- **BREAKING:** Initialize controllers with the current network ([#1361](https://github.com/MetaMask/core/pull/1361))
|
|
440
535
|
- The following controllers now have a new `chainId` required constructor parameter:
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
536
|
+
- `AssetsContractController`
|
|
537
|
+
- `NftController`
|
|
538
|
+
- `NftDetectionController`
|
|
539
|
+
- `TokenRatesController`
|
|
540
|
+
- `TokensController`
|
|
446
541
|
- **BREAKING:** The token list controller messenger requires the `NetworkController:stateChange` event instead of the `NetworkController:providerConfigChange` event ([#1329](https://github.com/MetaMask/core/pull/1329))
|
|
447
542
|
- **BREAKING:** The token list controller `onNetworkStateChange` option now has a more restrictive type ([#1329](https://github.com/MetaMask/core/pull/1329))
|
|
448
543
|
- The event handler parameter type has been changed from `NetworkState | ProviderConfig` to `NetworkState`
|
|
@@ -454,42 +549,58 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
454
549
|
- Bump @metamask/utils from 5.0.1 to 5.0.2 ([#1271](https://github.com/MetaMask/core/pull/1271))
|
|
455
550
|
|
|
456
551
|
### Removed
|
|
552
|
+
|
|
457
553
|
- **BREAKING:** Remove the `networkType` configuration option from the NFT detection controller, NFT controller, and tokens controller ([#1360](https://github.com/MetaMask/core/pull/1360), [#1359](https://github.com/MetaMask/core/pull/1359))
|
|
458
554
|
- **BREAKING:** Remove the `SuggestedAssetMeta` and `SuggestedAssetMetaBase` types from the token controller ([#1268](https://github.com/MetaMask/core/pull/1268))
|
|
459
555
|
- **BREAKING:** Remove the `acceptWatchAsset` and `rejectWatchAsset` methods from the token controller ([#1268](https://github.com/MetaMask/core/pull/1268))
|
|
460
556
|
- Suggested assets can be accepted or rejected using the approval controller instead
|
|
461
557
|
|
|
462
558
|
## [7.0.0]
|
|
559
|
+
|
|
463
560
|
### Changed
|
|
561
|
+
|
|
464
562
|
- **BREAKING**: peerDeps: @metamask/network-controller@6.0.0->8.0.0 ([#1196](https://github.com/MetaMask/core/pull/1196))
|
|
465
563
|
|
|
466
564
|
## [6.0.0]
|
|
565
|
+
|
|
467
566
|
### Changed
|
|
567
|
+
|
|
468
568
|
- **BREAKING:** Create approval requests using `@metamask/approval-controller` ([#1166](https://github.com/MetaMask/core/pull/1166))
|
|
469
569
|
|
|
470
570
|
## [5.1.0]
|
|
571
|
+
|
|
471
572
|
### Added
|
|
573
|
+
|
|
472
574
|
- Support watching assets on a specific account ([#1124](https://github.com/MetaMask/core/pull/1124))
|
|
473
575
|
|
|
474
576
|
## [5.0.1]
|
|
577
|
+
|
|
475
578
|
### Changed
|
|
579
|
+
|
|
476
580
|
- Update `@metamask/contract-metadata` from 2.1.0 to 2.3.1 ([#1141](https://github.com/MetaMask/core/pull/1141))
|
|
477
581
|
|
|
478
582
|
## [5.0.0]
|
|
583
|
+
|
|
479
584
|
### Removed
|
|
585
|
+
|
|
480
586
|
- **BREAKING:** Remove `isomorphic-fetch` ([#1106](https://github.com/MetaMask/controllers/pull/1106))
|
|
481
587
|
- Consumers must now import `isomorphic-fetch` or another polyfill themselves if they are running in an environment without `fetch`
|
|
482
588
|
|
|
483
589
|
## [4.0.1]
|
|
590
|
+
|
|
484
591
|
### Fixed
|
|
592
|
+
|
|
485
593
|
- Update Nft Controller to add the NFT back to its own group if we are re-importing it ([#1082](https://github.com/MetaMask/core/pull/1082))
|
|
486
594
|
|
|
487
595
|
## [4.0.0]
|
|
596
|
+
|
|
488
597
|
### Added
|
|
598
|
+
|
|
489
599
|
- Add Sepolia support to the currency rate controller ([#1041](https://github.com/MetaMask/controllers/pull/1041))
|
|
490
600
|
- The currency rate controller will now treat Sepolia as a testnet, and return the Mainnet exchange rate when asked for the Sepolia exchange rate.
|
|
491
601
|
|
|
492
602
|
### Changed
|
|
603
|
+
|
|
493
604
|
- **BREAKING:** Update `@metamask/network-controller` peer dependency to v3 ([#1041](https://github.com/MetaMask/controllers/pull/1041))
|
|
494
605
|
- **BREAKING:** Migrate from `metaswap` to `metafi` subdomain for OpenSea proxy and token icons API ([#1060](https://github.com/MetaMask/core/pull/1060))
|
|
495
606
|
- Rename this repository to `core` ([#1031](https://github.com/MetaMask/controllers/pull/1031))
|
|
@@ -497,29 +608,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
497
608
|
- Update `@metamask/controller-utils` package ([#1041](https://github.com/MetaMask/controllers/pull/1041))
|
|
498
609
|
|
|
499
610
|
## Removed
|
|
611
|
+
|
|
500
612
|
- **BREAKING**: Drop support for Ropsten, Rinkeby, and Kovan ([#1041](https://github.com/MetaMask/controllers/pull/1041))
|
|
501
613
|
- The currency rate controller no longer has special handling of these three networks. It used to return the Mainnet exchange rate for these three networks, but now it includes no special handling for them.
|
|
502
614
|
- The NFT controller no longer supports the Rinkeby OpenSea test API.
|
|
503
615
|
|
|
504
616
|
## [3.0.1]
|
|
617
|
+
|
|
505
618
|
### Changed
|
|
619
|
+
|
|
506
620
|
- Export `isTokenDetectionSupportedForNetwork` function ([#1034](https://github.com/MetaMask/controllers/pull/1034))
|
|
507
621
|
- Update `@metamask/contract-metadata` from 1.35.0 to 2.1.0 ([#1013](https://github.com/MetaMask/controllers/pull/1013))
|
|
508
622
|
|
|
509
623
|
### Fixed
|
|
624
|
+
|
|
510
625
|
- Fix token controller state updates ([#1015](https://github.com/MetaMask/controllers/pull/1015))
|
|
511
626
|
- Attempts to empty the list of "added", "ignored", or "detected" tokens were not saved in state correctly, resulting in that operation being undone after switching account or network.
|
|
512
627
|
|
|
513
628
|
## [3.0.0]
|
|
629
|
+
|
|
514
630
|
### Changed
|
|
631
|
+
|
|
515
632
|
- **BREAKING:** A new private property, controlled by the `start` and `stop` methods, is added to the CurrencyRateController: `enabled`. When this is false, no network requests will be made from the controller. Previously, setNativeCurrency or setCurrentCurrency would trigger a network request. That is now prevented if `enabled` is false. ([#1002](https://github.com/MetaMask/core/pull/1002))
|
|
516
633
|
|
|
517
634
|
### Fixed
|
|
635
|
+
|
|
518
636
|
- The TokenRatesController no longer overwrites the `disabled` config property passed to the constructor, allowing the controller to be instantiated with `config.disabled` set to either true or false. ([#1002](https://github.com/MetaMask/core/pull/1002))
|
|
519
637
|
- This package will now warn if a required package is not present ([#1003](https://github.com/MetaMask/core/pull/1003))
|
|
520
638
|
|
|
521
639
|
## [2.0.0]
|
|
640
|
+
|
|
522
641
|
### Changed
|
|
642
|
+
|
|
523
643
|
- **BREAKING:** Update `onNetworkStateChange`, a constructor option for several controllers, to take an object with a `providerConfig` property instead of `provider` ([#995](https://github.com/MetaMask/core/pull/995))
|
|
524
644
|
- This affects:
|
|
525
645
|
- AssetsContractController
|
|
@@ -533,19 +653,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
533
653
|
- Relax dependencies on `@metamask/base-controller`, `@metamask/controller-utils`, `@metamask/network-controller`, and `@metamask/preferences-controller` (use `^` instead of `~`) ([#998](https://github.com/MetaMask/core/pull/998))
|
|
534
654
|
|
|
535
655
|
## [1.0.1]
|
|
656
|
+
|
|
536
657
|
### Fixed
|
|
658
|
+
|
|
537
659
|
- Fix race condition where some token detections can get mistakenly added to the wrong account ([#956](https://github.com/MetaMask/core/pull/956))
|
|
538
660
|
|
|
539
661
|
## [1.0.0]
|
|
662
|
+
|
|
540
663
|
### Added
|
|
664
|
+
|
|
541
665
|
- Initial release
|
|
666
|
+
|
|
542
667
|
- As a result of converting our shared controllers repo into a monorepo ([#831](https://github.com/MetaMask/core/pull/831)), we've created this package from select parts of [`@metamask/controllers` v33.0.0](https://github.com/MetaMask/core/tree/v33.0.0), namely:
|
|
668
|
+
|
|
543
669
|
- Everything in `src/assets`
|
|
544
670
|
- Asset-related functions from `src/util.ts` and accompanying tests
|
|
545
671
|
|
|
546
672
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
547
673
|
|
|
548
674
|
### Changed
|
|
675
|
+
|
|
549
676
|
- Use Ethers for AssetsContractController ([#845](https://github.com/MetaMask/core/pull/845))
|
|
550
677
|
|
|
551
678
|
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@25.0.0...HEAD
|