@metamask-previews/network-controller 32.0.0-preview-834f9ac8f → 32.0.0-preview-92f3bde43
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 +22 -0
- package/dist/NetworkController.cjs +18 -4
- package/dist/NetworkController.cjs.map +1 -1
- package/dist/NetworkController.d.cts +10 -10
- package/dist/NetworkController.d.cts.map +1 -1
- package/dist/NetworkController.d.mts +10 -10
- package/dist/NetworkController.d.mts.map +1 -1
- package/dist/NetworkController.mjs +18 -4
- package/dist/NetworkController.mjs.map +1 -1
- package/dist/create-auto-managed-network-client.cjs.map +1 -1
- package/dist/create-auto-managed-network-client.d.cts +2 -2
- package/dist/create-auto-managed-network-client.d.cts.map +1 -1
- package/dist/create-auto-managed-network-client.d.mts +2 -2
- package/dist/create-auto-managed-network-client.d.mts.map +1 -1
- package/dist/create-auto-managed-network-client.mjs.map +1 -1
- package/dist/create-network-client.cjs +53 -16
- package/dist/create-network-client.cjs.map +1 -1
- package/dist/create-network-client.d.cts +2 -2
- package/dist/create-network-client.d.cts.map +1 -1
- package/dist/create-network-client.d.mts +2 -2
- package/dist/create-network-client.d.mts.map +1 -1
- package/dist/create-network-client.mjs +54 -17
- package/dist/create-network-client.mjs.map +1 -1
- package/dist/rpc-service/rpc-service.cjs +2 -0
- package/dist/rpc-service/rpc-service.cjs.map +1 -1
- package/dist/rpc-service/rpc-service.d.cts +6 -0
- package/dist/rpc-service/rpc-service.d.cts.map +1 -1
- package/dist/rpc-service/rpc-service.d.mts +6 -0
- package/dist/rpc-service/rpc-service.d.mts.map +1 -1
- package/dist/rpc-service/rpc-service.mjs +2 -0
- package/dist/rpc-service/rpc-service.mjs.map +1 -1
- package/dist/selectors.cjs +10 -0
- package/dist/selectors.cjs.map +1 -0
- package/dist/selectors.d.cts +3 -0
- package/dist/selectors.d.cts.map +1 -0
- package/dist/selectors.d.mts +3 -0
- package/dist/selectors.d.mts.map +1 -0
- package/dist/selectors.mjs +6 -0
- package/dist/selectors.mjs.map +1 -0
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add defaults for policy and block tracker options ([#9002](https://github.com/MetaMask/core/pull/9002))
|
|
13
|
+
- The `NetworkController` constructor argument `getRpcServiceOptions` is now optional.
|
|
14
|
+
- The default `policyOptions.maxRetries` is now `3`.
|
|
15
|
+
- The default `policyOptions.maxConsecutiveFailures` is now `12` for regular RPC endpoints and `40` for fallback RPC endpoints.
|
|
16
|
+
- The default `policyOptions.circuitBreakDuration` is now `30` seconds.
|
|
17
|
+
- The default `pollingInterval` for the block tracker is now `20` seconds.
|
|
18
|
+
- The default `retryTimeout` for the block tracker is now `20` seconds.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **BREAKING:** Automatically populate `isRpcFailoverEnabled` using `RemoteFeatureFlagController` ([#9013](https://github.com/MetaMask/core/pull/9013))
|
|
23
|
+
- `NetworkController.init` must now be called to fully initialize the controller.
|
|
24
|
+
- The constructor argument `isRpcFailoverEnabled` is no longer available.
|
|
25
|
+
- `RemoteFeatureFlagController:stateChange` and `RemoteFeatureFlagController:getState` are now required.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- Add defaults for `fetch`, `btoa` and `isOffline` in `RpcServiceOptions` ([#9000](https://github.com/MetaMask/core/pull/9000))
|
|
30
|
+
- Ensure block explorer URLs are populated for default networks ([#9005](https://github.com/MetaMask/core/pull/9005))
|
|
31
|
+
|
|
10
32
|
## [32.0.0]
|
|
11
33
|
|
|
12
34
|
### Changed
|
|
@@ -54,6 +54,7 @@ const uuid_1 = require("uuid");
|
|
|
54
54
|
const constants_1 = require("./constants.cjs");
|
|
55
55
|
const create_auto_managed_network_client_1 = require("./create-auto-managed-network-client.cjs");
|
|
56
56
|
const logger_1 = require("./logger.cjs");
|
|
57
|
+
const selectors_1 = require("./selectors.cjs");
|
|
57
58
|
const types_1 = require("./types.cjs");
|
|
58
59
|
const debugLog = (0, logger_1.createModuleLogger)(logger_1.projectLogger, 'NetworkController');
|
|
59
60
|
const INFURA_URL_REGEX = /^https:\/\/(?<networkName>[^.]+)\.infura\.io\/v\d+\/(?<apiKey>.+)$/u;
|
|
@@ -159,8 +160,10 @@ function getDefaultInfuraNetworkConfigurationsByChainId() {
|
|
|
159
160
|
return obj;
|
|
160
161
|
}
|
|
161
162
|
const rpcEndpointUrl = `https://${infuraNetworkType}.infura.io/v3/{infuraProjectId}`;
|
|
163
|
+
const { rpcPrefs } = controller_utils_1.BUILT_IN_NETWORKS[infuraNetworkType];
|
|
162
164
|
const networkConfiguration = {
|
|
163
|
-
blockExplorerUrls: [],
|
|
165
|
+
blockExplorerUrls: [rpcPrefs.blockExplorerUrl],
|
|
166
|
+
defaultBlockExplorerUrlIndex: 0,
|
|
164
167
|
chainId,
|
|
165
168
|
defaultRpcEndpointIndex: 0,
|
|
166
169
|
name: controller_utils_1.NetworkNickname[infuraNetworkType],
|
|
@@ -401,7 +404,7 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
401
404
|
* @param options - The options; see {@link NetworkControllerOptions}.
|
|
402
405
|
*/
|
|
403
406
|
constructor(options) {
|
|
404
|
-
const { messenger, state, infuraProjectId, log, getRpcServiceOptions, getBlockTrackerOptions, additionalDefaultNetworks,
|
|
407
|
+
const { messenger, state, infuraProjectId, log, getRpcServiceOptions, getBlockTrackerOptions, additionalDefaultNetworks, } = options;
|
|
405
408
|
const initialState = {
|
|
406
409
|
...getDefaultNetworkControllerState(additionalDefaultNetworks),
|
|
407
410
|
...state,
|
|
@@ -448,12 +451,11 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
448
451
|
_NetworkController_getRpcServiceOptions.set(this, void 0);
|
|
449
452
|
_NetworkController_getBlockTrackerOptions.set(this, void 0);
|
|
450
453
|
_NetworkController_networkConfigurationsByNetworkClientId.set(this, void 0);
|
|
451
|
-
_NetworkController_isRpcFailoverEnabled.set(this,
|
|
454
|
+
_NetworkController_isRpcFailoverEnabled.set(this, false);
|
|
452
455
|
__classPrivateFieldSet(this, _NetworkController_infuraProjectId, infuraProjectId, "f");
|
|
453
456
|
__classPrivateFieldSet(this, _NetworkController_log, log, "f");
|
|
454
457
|
__classPrivateFieldSet(this, _NetworkController_getRpcServiceOptions, getRpcServiceOptions, "f");
|
|
455
458
|
__classPrivateFieldSet(this, _NetworkController_getBlockTrackerOptions, getBlockTrackerOptions, "f");
|
|
456
|
-
__classPrivateFieldSet(this, _NetworkController_isRpcFailoverEnabled, isRpcFailoverEnabled, "f");
|
|
457
459
|
__classPrivateFieldSet(this, _NetworkController_previouslySelectedNetworkClientId, this.state.selectedNetworkClientId, "f");
|
|
458
460
|
__classPrivateFieldSet(this, _NetworkController_networkConfigurationsByNetworkClientId, buildNetworkConfigurationsByNetworkClientId(this.state.networkConfigurationsByChainId), "f");
|
|
459
461
|
this.messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
|
|
@@ -472,6 +474,11 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
472
474
|
networkStatus: constants_1.NetworkStatus.Available,
|
|
473
475
|
});
|
|
474
476
|
});
|
|
477
|
+
this.messenger.subscribe(
|
|
478
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
479
|
+
'RemoteFeatureFlagController:stateChange', (isRpcFailoverEnabled) => {
|
|
480
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateRpcFailoverEnabled).call(this, isRpcFailoverEnabled);
|
|
481
|
+
}, selectors_1.getIsRpcFailoverEnabled);
|
|
475
482
|
}
|
|
476
483
|
/**
|
|
477
484
|
* Returns the EthQuery instance for the currently selected network.
|
|
@@ -566,6 +573,13 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
566
573
|
}
|
|
567
574
|
return customNetworkClient;
|
|
568
575
|
}
|
|
576
|
+
/**
|
|
577
|
+
* Initialize the NetworkController, updating the RPC failover feature flag.
|
|
578
|
+
*/
|
|
579
|
+
init() {
|
|
580
|
+
const state = this.messenger.call('RemoteFeatureFlagController:getState');
|
|
581
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateRpcFailoverEnabled).call(this, (0, selectors_1.getIsRpcFailoverEnabled)(state));
|
|
582
|
+
}
|
|
569
583
|
initializeProvider({ lookupNetwork = true, } = {}) {
|
|
570
584
|
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_applyNetworkSelection).call(this, this.state.selectedNetworkClientId);
|
|
571
585
|
if (lookupNetwork) {
|