@metamask-previews/network-controller 32.0.0-preview-c5f8cd0af → 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 CHANGED
@@ -17,6 +17,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
17
17
  - The default `pollingInterval` for the block tracker is now `20` seconds.
18
18
  - The default `retryTimeout` for the block tracker is now `20` seconds.
19
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
+
20
27
  ### Fixed
21
28
 
22
29
  - Add defaults for `fetch`, `btoa` and `isOffline` in `RpcServiceOptions` ([#9000](https://github.com/MetaMask/core/pull/9000))
@@ -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;
@@ -403,7 +404,7 @@ class NetworkController extends base_controller_1.BaseController {
403
404
  * @param options - The options; see {@link NetworkControllerOptions}.
404
405
  */
405
406
  constructor(options) {
406
- const { messenger, state, infuraProjectId, log, getRpcServiceOptions, getBlockTrackerOptions, additionalDefaultNetworks, isRpcFailoverEnabled = false, } = options;
407
+ const { messenger, state, infuraProjectId, log, getRpcServiceOptions, getBlockTrackerOptions, additionalDefaultNetworks, } = options;
407
408
  const initialState = {
408
409
  ...getDefaultNetworkControllerState(additionalDefaultNetworks),
409
410
  ...state,
@@ -450,12 +451,11 @@ class NetworkController extends base_controller_1.BaseController {
450
451
  _NetworkController_getRpcServiceOptions.set(this, void 0);
451
452
  _NetworkController_getBlockTrackerOptions.set(this, void 0);
452
453
  _NetworkController_networkConfigurationsByNetworkClientId.set(this, void 0);
453
- _NetworkController_isRpcFailoverEnabled.set(this, void 0);
454
+ _NetworkController_isRpcFailoverEnabled.set(this, false);
454
455
  __classPrivateFieldSet(this, _NetworkController_infuraProjectId, infuraProjectId, "f");
455
456
  __classPrivateFieldSet(this, _NetworkController_log, log, "f");
456
457
  __classPrivateFieldSet(this, _NetworkController_getRpcServiceOptions, getRpcServiceOptions, "f");
457
458
  __classPrivateFieldSet(this, _NetworkController_getBlockTrackerOptions, getBlockTrackerOptions, "f");
458
- __classPrivateFieldSet(this, _NetworkController_isRpcFailoverEnabled, isRpcFailoverEnabled, "f");
459
459
  __classPrivateFieldSet(this, _NetworkController_previouslySelectedNetworkClientId, this.state.selectedNetworkClientId, "f");
460
460
  __classPrivateFieldSet(this, _NetworkController_networkConfigurationsByNetworkClientId, buildNetworkConfigurationsByNetworkClientId(this.state.networkConfigurationsByChainId), "f");
461
461
  this.messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
@@ -474,6 +474,11 @@ class NetworkController extends base_controller_1.BaseController {
474
474
  networkStatus: constants_1.NetworkStatus.Available,
475
475
  });
476
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);
477
482
  }
478
483
  /**
479
484
  * Returns the EthQuery instance for the currently selected network.
@@ -568,6 +573,13 @@ class NetworkController extends base_controller_1.BaseController {
568
573
  }
569
574
  return customNetworkClient;
570
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
+ }
571
583
  initializeProvider({ lookupNetwork = true, } = {}) {
572
584
  __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_applyNetworkSelection).call(this, this.state.selectedNetworkClientId);
573
585
  if (lookupNetwork) {