@metamask/assets-controllers 11.0.1 → 12.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 CHANGED
@@ -6,6 +6,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [12.0.0]
10
+ ### Added
11
+ - Add `AssetsContractController` methods `getProvider`, `getChainId`, `getERC721Standard`, and `getERC1155Standard` ([#1638](https://github.com/MetaMask/core/pull/1638))
12
+
13
+ ### Changed
14
+ - **BREAKING**: Add `getNetworkClientById` to `AssetsContractController` constructor options ([#1638](https://github.com/MetaMask/core/pull/1638))
15
+ - Add optional `networkClientId` parameter to various `AssetContractController` methods ([#1638](https://github.com/MetaMask/core/pull/1638))
16
+ - The affected methods are:
17
+ - `getERC20BalanceOf`
18
+ - `getERC20TokenDecimals`
19
+ - `getERC20TokenName`
20
+ - `getERC721NftTokenId`
21
+ - `getTokenStandardAndDetails`
22
+ - `getERC721TokenURI`
23
+ - `getERC721AssetName`
24
+ - `getERC721AssetSymbol`
25
+ - `getERC721OwnerOf`
26
+ - `getERC1155TokenURI`
27
+ - `getERC1155BalanceOf`
28
+ - `transferSingleERC1155`
29
+ - `getBalancesInSingleCall`
30
+
31
+ ## [11.1.0]
32
+ ### Added
33
+ - Add `tokenURI` to `NftMetadata` type ([#1577](https://github.com/MetaMask/core/pull/1577))
34
+ - Populate token URL for NFT metadata under `tokenURI` ([#1577](https://github.com/MetaMask/core/pull/1577))
35
+
36
+ ### Changed
37
+ - Bump dependency and peer dependency on `@metamask/approval-controller` to ^3.5.1
38
+ - Bump dependency on `@metamask/base-controller` to ^3.2.1
39
+ - Bump dependency on `@metamask/controller-utils` to ^4.3.2
40
+ - Bump dependency and peer dependency on `@metamask/network-controller` to ^12.1.2
41
+ - Bump dependency and peer dependency on `@metamask/preferences-controller` to ^4.4.0
42
+ - Update NftController to add fallback for when IPFS gateway is disabled ([#1577](https://github.com/MetaMask/core/pull/1577))
43
+
9
44
  ## [11.0.1]
10
45
  ### Changed
11
46
  - Replace `eth-query` ^2.1.2 with `@metamask/eth-query` ^3.0.1 ([#1546](https://github.com/MetaMask/core/pull/1546))
@@ -131,7 +166,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
131
166
  ## [6.0.0]
132
167
  ### Changed
133
168
  - **BREAKING:** Create approval requests using `@metamask/approval-controller` ([#1166](https://github.com/MetaMask/core/pull/1166))
134
- - **BREAKING:** Make `setProviderType` async ([#1191](https://github.com/MetaMask/core/pull/1191))
135
169
 
136
170
  ## [5.1.0]
137
171
  ### Added
@@ -214,7 +248,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
214
248
  ### Changed
215
249
  - Use Ethers for AssetsContractController ([#845](https://github.com/MetaMask/core/pull/845))
216
250
 
217
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@11.0.1...HEAD
251
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@12.0.0...HEAD
252
+ [12.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@11.1.0...@metamask/assets-controllers@12.0.0
253
+ [11.1.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@11.0.1...@metamask/assets-controllers@11.1.0
218
254
  [11.0.1]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@11.0.0...@metamask/assets-controllers@11.0.1
219
255
  [11.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@10.0.0...@metamask/assets-controllers@11.0.0
220
256
  [10.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@9.2.0...@metamask/assets-controllers@10.0.0
@@ -1,10 +1,14 @@
1
1
  /// <reference types="bn.js" />
2
+ import { Web3Provider } from '@ethersproject/providers';
2
3
  import type { BaseConfig, BaseState } from '@metamask/base-controller';
3
4
  import { BaseController } from '@metamask/base-controller';
4
- import type { NetworkState } from '@metamask/network-controller';
5
+ import type { NetworkClientId, NetworkState, NetworkController } from '@metamask/network-controller';
5
6
  import type { PreferencesState } from '@metamask/preferences-controller';
6
7
  import type { Hex } from '@metamask/utils';
7
8
  import type { BN } from 'ethereumjs-util';
9
+ import { ERC20Standard } from './Standards/ERC20Standard';
10
+ import { ERC1155Standard } from './Standards/NftStandards/ERC1155/ERC1155Standard';
11
+ import { ERC721Standard } from './Standards/NftStandards/ERC721/ERC721Standard';
8
12
  /**
9
13
  * Check if token detection is enabled for certain networks
10
14
  *
@@ -38,13 +42,11 @@ export interface BalanceMap {
38
42
  */
39
43
  export declare class AssetsContractController extends BaseController<AssetsContractConfig, BaseState> {
40
44
  private _provider?;
41
- private erc721Standard?;
42
- private erc1155Standard?;
43
- private erc20Standard?;
44
45
  /**
45
46
  * Name of this controller used during composition
46
47
  */
47
48
  name: string;
49
+ private readonly getNetworkClientById;
48
50
  /**
49
51
  * Creates a AssetsContractController instance.
50
52
  *
@@ -52,13 +54,15 @@ export declare class AssetsContractController extends BaseController<AssetsContr
52
54
  * @param options.chainId - The chain ID of the current network.
53
55
  * @param options.onPreferencesStateChange - Allows subscribing to preference controller state changes.
54
56
  * @param options.onNetworkStateChange - Allows subscribing to network controller state changes.
57
+ * @param options.getNetworkClientById - Gets the network client with the given id from the NetworkController.
55
58
  * @param config - Initial options used to configure this controller.
56
59
  * @param state - Initial state to set on this controller.
57
60
  */
58
- constructor({ chainId: initialChainId, onPreferencesStateChange, onNetworkStateChange, }: {
61
+ constructor({ chainId: initialChainId, onPreferencesStateChange, onNetworkStateChange, getNetworkClientById, }: {
59
62
  chainId: Hex;
60
63
  onPreferencesStateChange: (listener: (preferencesState: PreferencesState) => void) => void;
61
64
  onNetworkStateChange: (listener: (networkState: NetworkState) => void) => void;
65
+ getNetworkClientById: NetworkController['getNetworkClientById'];
62
66
  }, config?: Partial<AssetsContractConfig>, state?: Partial<BaseState>);
63
67
  /**
64
68
  * Sets a new provider.
@@ -69,46 +73,86 @@ export declare class AssetsContractController extends BaseController<AssetsContr
69
73
  */
70
74
  set provider(provider: any);
71
75
  get provider(): any;
76
+ /**
77
+ * Get the relevant provider instance.
78
+ *
79
+ * @param networkClientId - Network Client ID.
80
+ * @returns Web3Provider instance.
81
+ */
82
+ getProvider(networkClientId?: NetworkClientId): Web3Provider;
83
+ /**
84
+ * Get the relevant chain ID.
85
+ *
86
+ * @param networkClientId - Network Client ID used to get the provider.
87
+ * @returns Hex chain ID.
88
+ */
89
+ getChainId(networkClientId?: NetworkClientId): Hex;
90
+ /**
91
+ * Get a ERC20Standard instance using the relevant provider instance.
92
+ *
93
+ * @param networkClientId - Network Client ID used to get the provider.
94
+ * @returns ERC20Standard instance.
95
+ */
96
+ getERC20Standard(networkClientId?: NetworkClientId): ERC20Standard;
97
+ /**
98
+ * Get a ERC721Standard instance using the relevant provider instance.
99
+ *
100
+ * @param networkClientId - Network Client ID used to get the provider.
101
+ * @returns ERC721Standard instance.
102
+ */
103
+ getERC721Standard(networkClientId?: NetworkClientId): ERC721Standard;
104
+ /**
105
+ * Get a ERC1155Standard instance using the relevant provider instance.
106
+ *
107
+ * @param networkClientId - Network Client ID used to get the provider.
108
+ * @returns ERC1155Standard instance.
109
+ */
110
+ getERC1155Standard(networkClientId?: NetworkClientId): ERC1155Standard;
72
111
  /**
73
112
  * Get balance or count for current account on specific asset contract.
74
113
  *
75
114
  * @param address - Asset ERC20 contract address.
76
115
  * @param selectedAddress - Current account public address.
116
+ * @param networkClientId - Network Client ID to fetch the provider with.
77
117
  * @returns Promise resolving to BN object containing balance for current account on specific asset contract.
78
118
  */
79
- getERC20BalanceOf(address: string, selectedAddress: string): Promise<BN>;
119
+ getERC20BalanceOf(address: string, selectedAddress: string, networkClientId?: NetworkClientId): Promise<BN>;
80
120
  /**
81
121
  * Query for the decimals for a given ERC20 asset.
82
122
  *
83
123
  * @param address - ERC20 asset contract address.
124
+ * @param networkClientId - Network Client ID to fetch the provider with.
84
125
  * @returns Promise resolving to the 'decimals'.
85
126
  */
86
- getERC20TokenDecimals(address: string): Promise<string>;
127
+ getERC20TokenDecimals(address: string, networkClientId?: NetworkClientId): Promise<string>;
87
128
  /**
88
129
  * Query for the name for a given ERC20 asset.
89
130
  *
90
131
  * @param address - ERC20 asset contract address.
132
+ * @param networkClientId - Network Client ID to fetch the provider with.
91
133
  * @returns Promise resolving to the 'decimals'.
92
134
  */
93
- getERC20TokenName(address: string): Promise<string>;
135
+ getERC20TokenName(address: string, networkClientId?: NetworkClientId): Promise<string>;
94
136
  /**
95
137
  * Enumerate assets assigned to an owner.
96
138
  *
97
139
  * @param address - ERC721 asset contract address.
98
140
  * @param selectedAddress - Current account public address.
99
141
  * @param index - An NFT counter less than `balanceOf(selectedAddress)`.
142
+ * @param networkClientId - Network Client ID to fetch the provider with.
100
143
  * @returns Promise resolving to token identifier for the 'index'th asset assigned to 'selectedAddress'.
101
144
  */
102
- getERC721NftTokenId(address: string, selectedAddress: string, index: number): Promise<string>;
145
+ getERC721NftTokenId(address: string, selectedAddress: string, index: number, networkClientId?: NetworkClientId): Promise<string>;
103
146
  /**
104
147
  * Enumerate assets assigned to an owner.
105
148
  *
106
149
  * @param tokenAddress - ERC721 asset contract address.
107
150
  * @param userAddress - Current account public address.
108
151
  * @param tokenId - ERC721 asset identifier.
152
+ * @param networkClientId - Network Client ID to fetch the provider with.
109
153
  * @returns Promise resolving to an object containing the token standard and a set of details which depend on which standard the token supports.
110
154
  */
111
- getTokenStandardAndDetails(tokenAddress: string, userAddress?: string, tokenId?: string): Promise<{
155
+ getTokenStandardAndDetails(tokenAddress: string, userAddress?: string, tokenId?: string, networkClientId?: NetworkClientId): Promise<{
112
156
  standard: string;
113
157
  tokenURI?: string | undefined;
114
158
  symbol?: string | undefined;
@@ -121,48 +165,54 @@ export declare class AssetsContractController extends BaseController<AssetsContr
121
165
  *
122
166
  * @param address - ERC721 asset contract address.
123
167
  * @param tokenId - ERC721 asset identifier.
168
+ * @param networkClientId - Network Client ID to fetch the provider with.
124
169
  * @returns Promise resolving to the 'tokenURI'.
125
170
  */
126
- getERC721TokenURI(address: string, tokenId: string): Promise<string>;
171
+ getERC721TokenURI(address: string, tokenId: string, networkClientId?: NetworkClientId): Promise<string>;
127
172
  /**
128
173
  * Query for name for a given asset.
129
174
  *
130
175
  * @param address - ERC721 or ERC20 asset contract address.
176
+ * @param networkClientId - Network Client ID to fetch the provider with.
131
177
  * @returns Promise resolving to the 'name'.
132
178
  */
133
- getERC721AssetName(address: string): Promise<string>;
179
+ getERC721AssetName(address: string, networkClientId?: NetworkClientId): Promise<string>;
134
180
  /**
135
181
  * Query for symbol for a given asset.
136
182
  *
137
183
  * @param address - ERC721 or ERC20 asset contract address.
184
+ * @param networkClientId - Network Client ID to fetch the provider with.
138
185
  * @returns Promise resolving to the 'symbol'.
139
186
  */
140
- getERC721AssetSymbol(address: string): Promise<string>;
187
+ getERC721AssetSymbol(address: string, networkClientId?: NetworkClientId): Promise<string>;
141
188
  /**
142
189
  * Query for owner for a given ERC721 asset.
143
190
  *
144
191
  * @param address - ERC721 asset contract address.
145
192
  * @param tokenId - ERC721 asset identifier.
193
+ * @param networkClientId - Network Client ID to fetch the provider with.
146
194
  * @returns Promise resolving to the owner address.
147
195
  */
148
- getERC721OwnerOf(address: string, tokenId: string): Promise<string>;
196
+ getERC721OwnerOf(address: string, tokenId: string, networkClientId?: NetworkClientId): Promise<string>;
149
197
  /**
150
198
  * Query for tokenURI for a given asset.
151
199
  *
152
200
  * @param address - ERC1155 asset contract address.
153
201
  * @param tokenId - ERC1155 asset identifier.
202
+ * @param networkClientId - Network Client ID to fetch the provider with.
154
203
  * @returns Promise resolving to the 'tokenURI'.
155
204
  */
156
- getERC1155TokenURI(address: string, tokenId: string): Promise<string>;
205
+ getERC1155TokenURI(address: string, tokenId: string, networkClientId?: NetworkClientId): Promise<string>;
157
206
  /**
158
207
  * Query for balance of a given ERC 1155 token.
159
208
  *
160
209
  * @param userAddress - Wallet public address.
161
210
  * @param nftAddress - ERC1155 asset contract address.
162
211
  * @param nftId - ERC1155 asset identifier.
212
+ * @param networkClientId - Network Client ID to fetch the provider with.
163
213
  * @returns Promise resolving to the 'balanceOf'.
164
214
  */
165
- getERC1155BalanceOf(userAddress: string, nftAddress: string, nftId: string): Promise<BN>;
215
+ getERC1155BalanceOf(userAddress: string, nftAddress: string, nftId: string, networkClientId?: NetworkClientId): Promise<BN>;
166
216
  /**
167
217
  * Transfer single ERC1155 token.
168
218
  *
@@ -171,18 +221,20 @@ export declare class AssetsContractController extends BaseController<AssetsContr
171
221
  * @param recipientAddress - ERC1155 token recipient.
172
222
  * @param nftId - ERC1155 token id.
173
223
  * @param qty - Quantity of tokens to be sent.
224
+ * @param networkClientId - Network Client ID to fetch the provider with.
174
225
  * @returns Promise resolving to the 'transferSingle' ERC1155 token.
175
226
  */
176
- transferSingleERC1155(nftAddress: string, senderAddress: string, recipientAddress: string, nftId: string, qty: string): Promise<void>;
227
+ transferSingleERC1155(nftAddress: string, senderAddress: string, recipientAddress: string, nftId: string, qty: string, networkClientId?: NetworkClientId): Promise<void>;
177
228
  /**
178
229
  * Get the token balance for a list of token addresses in a single call. Only non-zero balances
179
230
  * are returned.
180
231
  *
181
232
  * @param selectedAddress - The address to check token balances for.
182
233
  * @param tokensToDetect - The token addresses to detect balances for.
234
+ * @param networkClientId - Network Client ID to fetch the provider with.
183
235
  * @returns The list of non-zero token balances.
184
236
  */
185
- getBalancesInSingleCall(selectedAddress: string, tokensToDetect: string[]): Promise<BalanceMap>;
237
+ getBalancesInSingleCall(selectedAddress: string, tokensToDetect: string[], networkClientId?: NetworkClientId): Promise<BalanceMap>;
186
238
  }
187
239
  export default AssetsContractController;
188
240
  //# sourceMappingURL=AssetsContractController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssetsContractController.d.ts","sourceRoot":"","sources":["../src/AssetsContractController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssetsContractController.d.ts","sourceRoot":"","sources":["../src/AssetsContractController.ts"],"names":[],"mappings":"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"}