@metamask-previews/network-controller 12.1.1-preview.3dbf14f
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 +261 -0
- package/LICENSE +20 -0
- package/README.md +15 -0
- package/dist/NetworkController.d.ts +361 -0
- package/dist/NetworkController.d.ts.map +1 -0
- package/dist/NetworkController.js +812 -0
- package/dist/NetworkController.js.map +1 -0
- package/dist/constants.d.ts +28 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +32 -0
- package/dist/constants.js.map +1 -0
- package/dist/create-auto-managed-network-client.d.ts +47 -0
- package/dist/create-auto-managed-network-client.d.ts.map +1 -0
- package/dist/create-auto-managed-network-client.js +120 -0
- package/dist/create-auto-managed-network-client.js.map +1 -0
- package/dist/create-network-client.d.ts +19 -0
- package/dist/create-network-client.d.ts.map +1 -0
- package/dist/create-network-client.js +148 -0
- package/dist/create-network-client.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +5 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +7 -0
- package/dist/logger.js.map +1 -0
- package/dist/types.d.ts +37 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
import type { RestrictedControllerMessenger } from '@metamask/base-controller';
|
|
2
|
+
import { BaseControllerV2 } from '@metamask/base-controller';
|
|
3
|
+
import { InfuraNetworkType, NetworkType } from '@metamask/controller-utils';
|
|
4
|
+
import EthQuery from '@metamask/eth-query';
|
|
5
|
+
import type { SwappableProxy } from '@metamask/swappable-obj-proxy';
|
|
6
|
+
import type { Hex } from '@metamask/utils';
|
|
7
|
+
import type { Patch } from 'immer';
|
|
8
|
+
import { NetworkStatus } from './constants';
|
|
9
|
+
import type { AutoManagedNetworkClient, ProxyWithAccessibleTarget } from './create-auto-managed-network-client';
|
|
10
|
+
import type { BlockTracker, Provider, CustomNetworkClientConfiguration, InfuraNetworkClientConfiguration } from './types';
|
|
11
|
+
/**
|
|
12
|
+
* @type ProviderConfig
|
|
13
|
+
*
|
|
14
|
+
* Configuration passed to web3-provider-engine
|
|
15
|
+
* @property rpcUrl - RPC target URL.
|
|
16
|
+
* @property type - Human-readable network name.
|
|
17
|
+
* @property chainId - Network ID as per EIP-155.
|
|
18
|
+
* @property ticker - Currency ticker.
|
|
19
|
+
* @property nickname - Personalized network name.
|
|
20
|
+
* @property id - Network Configuration Id.
|
|
21
|
+
*/
|
|
22
|
+
export declare type ProviderConfig = {
|
|
23
|
+
rpcUrl?: string;
|
|
24
|
+
type: NetworkType;
|
|
25
|
+
chainId: Hex;
|
|
26
|
+
ticker: string;
|
|
27
|
+
nickname?: string;
|
|
28
|
+
rpcPrefs?: {
|
|
29
|
+
blockExplorerUrl?: string;
|
|
30
|
+
};
|
|
31
|
+
id?: NetworkConfigurationId;
|
|
32
|
+
};
|
|
33
|
+
export declare type Block = {
|
|
34
|
+
baseFeePerGas?: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Information about a network not held by any other part of state.
|
|
38
|
+
*/
|
|
39
|
+
export declare type NetworkMetadata = {
|
|
40
|
+
/**
|
|
41
|
+
* EIPs supported by the network.
|
|
42
|
+
*/
|
|
43
|
+
EIPS: {
|
|
44
|
+
[eipNumber: number]: boolean;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Indicates the availability of the network
|
|
48
|
+
*/
|
|
49
|
+
status: NetworkStatus;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Custom RPC network information
|
|
53
|
+
*
|
|
54
|
+
* @property rpcUrl - RPC target URL.
|
|
55
|
+
* @property chainId - Network ID as per EIP-155
|
|
56
|
+
* @property nickname - Personalized network name.
|
|
57
|
+
* @property ticker - Currency ticker.
|
|
58
|
+
* @property rpcPrefs - Personalized preferences.
|
|
59
|
+
*/
|
|
60
|
+
export declare type NetworkConfiguration = {
|
|
61
|
+
rpcUrl: string;
|
|
62
|
+
chainId: Hex;
|
|
63
|
+
ticker: string;
|
|
64
|
+
nickname?: string;
|
|
65
|
+
rpcPrefs?: {
|
|
66
|
+
blockExplorerUrl: string;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* The collection of network configurations in state.
|
|
71
|
+
*/
|
|
72
|
+
declare type NetworkConfigurations = Record<NetworkConfigurationId, NetworkConfiguration & {
|
|
73
|
+
id: NetworkConfigurationId;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* `Object.keys()` is intentionally generic: it returns the keys of an object,
|
|
77
|
+
* but it cannot make guarantees about the contents of that object, so the type
|
|
78
|
+
* of the keys is merely `string[]`. While this is technically accurate, it is
|
|
79
|
+
* also unnecessary if we have an object that we own and whose contents are
|
|
80
|
+
* known exactly.
|
|
81
|
+
*
|
|
82
|
+
* TODO: Move to @metamask/utils.
|
|
83
|
+
*
|
|
84
|
+
* @param object - The object.
|
|
85
|
+
* @returns The keys of an object, typed according to the type of the object
|
|
86
|
+
* itself.
|
|
87
|
+
*/
|
|
88
|
+
export declare function knownKeysOf<K extends PropertyKey>(object: Partial<Record<K, any>>): K[];
|
|
89
|
+
/**
|
|
90
|
+
* The string that uniquely identifies an Infura network client.
|
|
91
|
+
*/
|
|
92
|
+
declare type BuiltInNetworkClientId = InfuraNetworkType;
|
|
93
|
+
/**
|
|
94
|
+
* The string that uniquely identifies a custom network client.
|
|
95
|
+
*/
|
|
96
|
+
declare type CustomNetworkClientId = string;
|
|
97
|
+
/**
|
|
98
|
+
* The string that uniquely identifies a network client.
|
|
99
|
+
*/
|
|
100
|
+
export declare type NetworkClientId = BuiltInNetworkClientId | CustomNetworkClientId;
|
|
101
|
+
/**
|
|
102
|
+
* Information about networks not held by any other part of state.
|
|
103
|
+
*/
|
|
104
|
+
export declare type NetworksMetadata = {
|
|
105
|
+
[networkClientId: NetworkClientId]: NetworkMetadata;
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* @type NetworkState
|
|
109
|
+
*
|
|
110
|
+
* Network controller state
|
|
111
|
+
* @property network - Network ID as per net_version of the currently connected network
|
|
112
|
+
* @property providerConfig - RPC URL and network name provider settings of the currently connected network
|
|
113
|
+
* @property properties - an additional set of network properties for the currently connected network
|
|
114
|
+
* @property networkConfigurations - the full list of configured networks either preloaded or added by the user.
|
|
115
|
+
*/
|
|
116
|
+
export declare type NetworkState = {
|
|
117
|
+
selectedNetworkClientId: NetworkClientId;
|
|
118
|
+
providerConfig: ProviderConfig;
|
|
119
|
+
networkConfigurations: NetworkConfigurations;
|
|
120
|
+
networksMetadata: NetworksMetadata;
|
|
121
|
+
};
|
|
122
|
+
declare const name = "NetworkController";
|
|
123
|
+
/**
|
|
124
|
+
* Represents the block tracker for the currently selected network. (Note that
|
|
125
|
+
* this is a proxy around a proxy: the inner one exists so that the block
|
|
126
|
+
* tracker doesn't have to exist until it's used, and the outer one exists so
|
|
127
|
+
* that the currently selected network can change without consumers needing to
|
|
128
|
+
* refresh the object reference to that network.)
|
|
129
|
+
*/
|
|
130
|
+
export declare type BlockTrackerProxy = SwappableProxy<ProxyWithAccessibleTarget<BlockTracker>>;
|
|
131
|
+
/**
|
|
132
|
+
* Represents the provider for the currently selected network. (Note that this
|
|
133
|
+
* is a proxy around a proxy: the inner one exists so that the provider doesn't
|
|
134
|
+
* have to exist until it's used, and the outer one exists so that the currently
|
|
135
|
+
* selected network can change without consumers needing to refresh the object
|
|
136
|
+
* reference to that network.)
|
|
137
|
+
*/
|
|
138
|
+
export declare type ProviderProxy = SwappableProxy<ProxyWithAccessibleTarget<Provider>>;
|
|
139
|
+
export declare type NetworkControllerStateChangeEvent = {
|
|
140
|
+
type: `NetworkController:stateChange`;
|
|
141
|
+
payload: [NetworkState, Patch[]];
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* `networkWillChange` is published when the current network is about to be
|
|
145
|
+
* switched, but the new provider has not been created and no state changes have
|
|
146
|
+
* occurred yet.
|
|
147
|
+
*/
|
|
148
|
+
export declare type NetworkControllerNetworkWillChangeEvent = {
|
|
149
|
+
type: 'NetworkController:networkWillChange';
|
|
150
|
+
payload: [];
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* `networkDidChange` is published after a provider has been created for a newly
|
|
154
|
+
* switched network (but before the network has been confirmed to be available).
|
|
155
|
+
*/
|
|
156
|
+
export declare type NetworkControllerNetworkDidChangeEvent = {
|
|
157
|
+
type: 'NetworkController:networkDidChange';
|
|
158
|
+
payload: [];
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* `infuraIsBlocked` is published after the network is switched to an Infura
|
|
162
|
+
* network, but when Infura returns an error blocking the user based on their
|
|
163
|
+
* location.
|
|
164
|
+
*/
|
|
165
|
+
export declare type NetworkControllerInfuraIsBlockedEvent = {
|
|
166
|
+
type: 'NetworkController:infuraIsBlocked';
|
|
167
|
+
payload: [];
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* `infuraIsBlocked` is published either after the network is switched to an
|
|
171
|
+
* Infura network and Infura does not return an error blocking the user based on
|
|
172
|
+
* their location, or the network is switched to a non-Infura network.
|
|
173
|
+
*/
|
|
174
|
+
export declare type NetworkControllerInfuraIsUnblockedEvent = {
|
|
175
|
+
type: 'NetworkController:infuraIsUnblocked';
|
|
176
|
+
payload: [];
|
|
177
|
+
};
|
|
178
|
+
export declare type NetworkControllerEvents = NetworkControllerStateChangeEvent | NetworkControllerNetworkWillChangeEvent | NetworkControllerNetworkDidChangeEvent | NetworkControllerInfuraIsBlockedEvent | NetworkControllerInfuraIsUnblockedEvent;
|
|
179
|
+
export declare type NetworkControllerGetStateAction = {
|
|
180
|
+
type: `NetworkController:getState`;
|
|
181
|
+
handler: () => NetworkState;
|
|
182
|
+
};
|
|
183
|
+
export declare type NetworkControllerGetProviderConfigAction = {
|
|
184
|
+
type: `NetworkController:getProviderConfig`;
|
|
185
|
+
handler: () => ProviderConfig;
|
|
186
|
+
};
|
|
187
|
+
export declare type NetworkControllerGetEthQueryAction = {
|
|
188
|
+
type: `NetworkController:getEthQuery`;
|
|
189
|
+
handler: () => EthQuery | undefined;
|
|
190
|
+
};
|
|
191
|
+
export declare type NetworkControllerActions = NetworkControllerGetStateAction | NetworkControllerGetProviderConfigAction | NetworkControllerGetEthQueryAction;
|
|
192
|
+
export declare type NetworkControllerMessenger = RestrictedControllerMessenger<typeof name, NetworkControllerActions, NetworkControllerEvents, string, string>;
|
|
193
|
+
export declare type NetworkControllerOptions = {
|
|
194
|
+
messenger: NetworkControllerMessenger;
|
|
195
|
+
trackMetaMetricsEvent: () => void;
|
|
196
|
+
infuraProjectId: string;
|
|
197
|
+
state?: Partial<NetworkState>;
|
|
198
|
+
};
|
|
199
|
+
export declare const defaultState: NetworkState;
|
|
200
|
+
declare type NetworkConfigurationId = string;
|
|
201
|
+
/**
|
|
202
|
+
* The collection of auto-managed network clients that map to Infura networks.
|
|
203
|
+
*/
|
|
204
|
+
declare type AutoManagedBuiltInNetworkClientRegistry = Record<BuiltInNetworkClientId, AutoManagedNetworkClient<InfuraNetworkClientConfiguration>>;
|
|
205
|
+
/**
|
|
206
|
+
* The collection of auto-managed network clients that map to Infura networks.
|
|
207
|
+
*/
|
|
208
|
+
declare type AutoManagedCustomNetworkClientRegistry = Record<CustomNetworkClientId, AutoManagedNetworkClient<CustomNetworkClientConfiguration>>;
|
|
209
|
+
/**
|
|
210
|
+
* Controller that creates and manages an Ethereum network provider.
|
|
211
|
+
*/
|
|
212
|
+
export declare class NetworkController extends BaseControllerV2<typeof name, NetworkState, NetworkControllerMessenger> {
|
|
213
|
+
#private;
|
|
214
|
+
constructor({ messenger, state, infuraProjectId, trackMetaMetricsEvent, }: NetworkControllerOptions);
|
|
215
|
+
/**
|
|
216
|
+
* Accesses the provider and block tracker for the currently selected network.
|
|
217
|
+
*
|
|
218
|
+
* @returns The proxy and block tracker proxies.
|
|
219
|
+
*/
|
|
220
|
+
getProviderAndBlockTracker(): {
|
|
221
|
+
provider: SwappableProxy<ProxyWithAccessibleTarget<Provider>> | undefined;
|
|
222
|
+
blockTracker: SwappableProxy<ProxyWithAccessibleTarget<BlockTracker>> | undefined;
|
|
223
|
+
};
|
|
224
|
+
/**
|
|
225
|
+
* Returns all of the network clients that have been created so far, keyed by
|
|
226
|
+
* their identifier in the network client registry. This collection represents
|
|
227
|
+
* not only built-in networks but also any custom networks that consumers have
|
|
228
|
+
* added.
|
|
229
|
+
*
|
|
230
|
+
* @returns The list of known network clients.
|
|
231
|
+
*/
|
|
232
|
+
getNetworkClientRegistry(): AutoManagedBuiltInNetworkClientRegistry & AutoManagedCustomNetworkClientRegistry;
|
|
233
|
+
/**
|
|
234
|
+
* Returns the Infura network client with the given ID.
|
|
235
|
+
*
|
|
236
|
+
* @param infuraNetworkClientId - An Infura network client ID.
|
|
237
|
+
* @returns The Infura network client.
|
|
238
|
+
* @throws If an Infura network client does not exist with the given ID.
|
|
239
|
+
*/
|
|
240
|
+
getNetworkClientById(infuraNetworkClientId: BuiltInNetworkClientId): AutoManagedNetworkClient<InfuraNetworkClientConfiguration>;
|
|
241
|
+
/**
|
|
242
|
+
* Returns the custom network client with the given ID.
|
|
243
|
+
*
|
|
244
|
+
* @param customNetworkClientId - A custom network client ID.
|
|
245
|
+
* @returns The custom network client.
|
|
246
|
+
* @throws If a custom network client does not exist with the given ID.
|
|
247
|
+
*/
|
|
248
|
+
getNetworkClientById(customNetworkClientId: CustomNetworkClientId): AutoManagedNetworkClient<CustomNetworkClientConfiguration>;
|
|
249
|
+
/**
|
|
250
|
+
* Populates the network clients and establishes the initial network based on
|
|
251
|
+
* the provider configuration in state.
|
|
252
|
+
*/
|
|
253
|
+
initializeProvider(): Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Performs side effects after switching to a network. If the network is
|
|
256
|
+
* available, updates the network state with the network ID of the network and
|
|
257
|
+
* stores whether the network supports EIP-1559; otherwise clears said
|
|
258
|
+
* information about the network that may have been previously stored.
|
|
259
|
+
*
|
|
260
|
+
* @fires infuraIsBlocked if the network is Infura-supported and is blocking
|
|
261
|
+
* requests.
|
|
262
|
+
* @fires infuraIsUnblocked if the network is Infura-supported and is not
|
|
263
|
+
* blocking requests, or if the network is not Infura-supported.
|
|
264
|
+
*/
|
|
265
|
+
lookupNetwork(): Promise<void>;
|
|
266
|
+
/**
|
|
267
|
+
* Convenience method to update provider network type settings.
|
|
268
|
+
*
|
|
269
|
+
* @param type - Human readable network name.
|
|
270
|
+
*/
|
|
271
|
+
setProviderType(type: InfuraNetworkType): Promise<void>;
|
|
272
|
+
/**
|
|
273
|
+
* Convenience method to update provider RPC settings.
|
|
274
|
+
*
|
|
275
|
+
* @param networkConfigurationId - The unique id for the network configuration to set as the active provider.
|
|
276
|
+
*/
|
|
277
|
+
setActiveNetwork(networkConfigurationId: string): Promise<void>;
|
|
278
|
+
/**
|
|
279
|
+
* Determines whether the network supports EIP-1559 by checking whether the
|
|
280
|
+
* latest block has a `baseFeePerGas` property, then updates state
|
|
281
|
+
* appropriately.
|
|
282
|
+
*
|
|
283
|
+
* @returns A promise that resolves to true if the network supports EIP-1559
|
|
284
|
+
* , false otherwise, or `undefined` if unable to determine the compatibility.
|
|
285
|
+
*/
|
|
286
|
+
getEIP1559Compatibility(): Promise<boolean | undefined>;
|
|
287
|
+
/**
|
|
288
|
+
* Re-initializes the provider and block tracker for the current network.
|
|
289
|
+
*/
|
|
290
|
+
resetConnection(): Promise<void>;
|
|
291
|
+
/**
|
|
292
|
+
* Adds a new custom network or updates the information for an existing
|
|
293
|
+
* network.
|
|
294
|
+
*
|
|
295
|
+
* This may involve updating the `networkConfigurations` property in
|
|
296
|
+
* state as well and/or adding a new network client to the network client
|
|
297
|
+
* registry. The `rpcUrl` and `chainId` of the given object are used to
|
|
298
|
+
* determine which action to take:
|
|
299
|
+
*
|
|
300
|
+
* - If the `rpcUrl` corresponds to an existing network configuration
|
|
301
|
+
* (case-insensitively), then it is overwritten with the object. Furthermore,
|
|
302
|
+
* if the `chainId` is different from the existing network configuration, then
|
|
303
|
+
* the existing network client is replaced with a new one.
|
|
304
|
+
* - If the `rpcUrl` does not correspond to an existing network configuration
|
|
305
|
+
* (case-insensitively), then the object is used to add a new network
|
|
306
|
+
* configuration along with a new network client.
|
|
307
|
+
*
|
|
308
|
+
* @param networkConfiguration - The network configuration to add or update.
|
|
309
|
+
* @param options - Additional configuration options.
|
|
310
|
+
* @param options.referrer - Used to create a metrics event; the site from which the call originated, or 'metamask' for internal calls.
|
|
311
|
+
* @param options.source - Used to create a metrics event; where the event originated (i.e. from a dapp or from the network form).
|
|
312
|
+
* @param options.setActive - If true, switches to the network upon adding or updating it (default: false).
|
|
313
|
+
* @returns The ID for the added or updated network configuration.
|
|
314
|
+
*/
|
|
315
|
+
upsertNetworkConfiguration(networkConfiguration: NetworkConfiguration, { referrer, source, setActive, }: {
|
|
316
|
+
referrer: string;
|
|
317
|
+
source: string;
|
|
318
|
+
setActive?: boolean;
|
|
319
|
+
}): Promise<string>;
|
|
320
|
+
/**
|
|
321
|
+
* Removes a custom network from state.
|
|
322
|
+
*
|
|
323
|
+
* This involves updating the `networkConfigurations` property in state as
|
|
324
|
+
* well and removing the network client that corresponds to the network from
|
|
325
|
+
* the client registry.
|
|
326
|
+
*
|
|
327
|
+
* @param networkConfigurationId - The ID of an existing network
|
|
328
|
+
* configuration.
|
|
329
|
+
*/
|
|
330
|
+
removeNetworkConfiguration(networkConfigurationId: string): void;
|
|
331
|
+
/**
|
|
332
|
+
* Switches to the previously selected network, assuming that there is one
|
|
333
|
+
* (if not and `initializeProvider` has not been previously called, then this
|
|
334
|
+
* method is equivalent to calling `resetConnection`).
|
|
335
|
+
*/
|
|
336
|
+
rollbackToPreviousProvider(): Promise<void>;
|
|
337
|
+
/**
|
|
338
|
+
* Deactivates the controller, stopping any ongoing polling.
|
|
339
|
+
*
|
|
340
|
+
* In-progress requests will not be aborted.
|
|
341
|
+
*/
|
|
342
|
+
destroy(): Promise<void>;
|
|
343
|
+
/**
|
|
344
|
+
* Updates the controller using the given backup data.
|
|
345
|
+
*
|
|
346
|
+
* @param backup - The data that has been backed up.
|
|
347
|
+
* @param backup.networkConfigurations - Network configurations in the backup.
|
|
348
|
+
*/
|
|
349
|
+
loadBackup({ networkConfigurations, }: {
|
|
350
|
+
networkConfigurations: NetworkState['networkConfigurations'];
|
|
351
|
+
}): void;
|
|
352
|
+
/**
|
|
353
|
+
* Searches for a network configuration ID with the given ChainID and returns it.
|
|
354
|
+
*
|
|
355
|
+
* @param chainId - ChainId to search for
|
|
356
|
+
* @returns networkClientId of the network configuration with the given chainId
|
|
357
|
+
*/
|
|
358
|
+
findNetworkClientIdByChainId(chainId: Hex): NetworkClientId;
|
|
359
|
+
}
|
|
360
|
+
export {};
|
|
361
|
+
//# sourceMappingURL=NetworkController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkController.d.ts","sourceRoot":"","sources":["../src/NetworkController.ts"],"names":[],"mappings":"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"}
|