@metamask-previews/network-controller 22.1.1-preview-cba3b99d → 22.1.1-preview-4dd7520a

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
@@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
 
12
12
  - Bump `@metamask/base-controller` from `^7.0.0` to `^7.1.0` ([#5079](https://github.com/MetaMask/core/pull/5079))
13
13
 
14
+ ### Fixed
15
+
16
+ - Fix `selectAvailableNetworkClientIds` so that it is properly memoized ([#5193](https://github.com/MetaMask/core/pull/5193))
17
+
14
18
  ## [22.1.1]
15
19
 
16
20
  ### Changed
@@ -38,7 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  };
39
39
  var _NetworkController_instances, _NetworkController_ethQuery, _NetworkController_infuraProjectId, _NetworkController_previouslySelectedNetworkClientId, _NetworkController_providerProxy, _NetworkController_blockTrackerProxy, _NetworkController_autoManagedNetworkClientRegistry, _NetworkController_autoManagedNetworkClient, _NetworkController_log, _NetworkController_networkConfigurationsByNetworkClientId, _NetworkController_refreshNetwork, _NetworkController_getLatestBlock, _NetworkController_determineEIP1559Compatibility, _NetworkController_validateNetworkFields, _NetworkController_determineNetworkConfigurationToPersist, _NetworkController_registerNetworkClientsAsNeeded, _NetworkController_unregisterNetworkClientsAsNeeded, _NetworkController_updateNetworkConfigurations, _NetworkController_ensureAutoManagedNetworkClientRegistryPopulated, _NetworkController_createAutoManagedNetworkClientRegistry, _NetworkController_applyNetworkSelection;
40
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.NetworkController = exports.selectAvailableNetworkClientIds = exports.getAvailableNetworkClientIds = exports.getNetworkConfigurations = exports.getDefaultNetworkControllerState = exports.knownKeysOf = exports.RpcEndpointType = void 0;
41
+ exports.NetworkController = exports.selectAvailableNetworkClientIds = exports.getAvailableNetworkClientIds = exports.selectNetworkConfigurations = exports.getNetworkConfigurations = exports.getDefaultNetworkControllerState = exports.knownKeysOf = exports.RpcEndpointType = void 0;
42
42
  const base_controller_1 = require("@metamask/base-controller");
43
43
  const controller_utils_1 = require("@metamask/controller-utils");
44
44
  const eth_query_1 = __importDefault(require("@metamask/eth-query"));
@@ -148,6 +148,14 @@ function getDefaultNetworkControllerState() {
148
148
  };
149
149
  }
150
150
  exports.getDefaultNetworkControllerState = getDefaultNetworkControllerState;
151
+ /**
152
+ * Redux selector for getting all network configurations from NetworkController
153
+ * state, keyed by chain ID.
154
+ *
155
+ * @param state - NetworkController state
156
+ * @returns All registered network configurations, keyed by chain ID.
157
+ */
158
+ const selectNetworkConfigurationsByChainId = (state) => state.networkConfigurationsByChainId;
151
159
  /**
152
160
  * Get a list of all network configurations.
153
161
  *
@@ -159,8 +167,17 @@ function getNetworkConfigurations(state) {
159
167
  }
160
168
  exports.getNetworkConfigurations = getNetworkConfigurations;
161
169
  /**
162
- * Get a list of all available client IDs from a list of
163
- * network configurations
170
+ * Redux selector for getting a list of all network configurations from
171
+ * NetworkController state.
172
+ *
173
+ * @param state - NetworkController state
174
+ * @returns A list of all available network configurations
175
+ */
176
+ exports.selectNetworkConfigurations = (0, reselect_1.createSelector)(selectNetworkConfigurationsByChainId, (networkConfigurationsByChainId) => Object.values(networkConfigurationsByChainId));
177
+ /**
178
+ * Get a list of all available network client IDs from a list of network
179
+ * configurations.
180
+ *
164
181
  * @param networkConfigurations - The array of network configurations
165
182
  * @returns A list of all available client IDs
166
183
  */
@@ -168,7 +185,14 @@ function getAvailableNetworkClientIds(networkConfigurations) {
168
185
  return networkConfigurations.flatMap((networkConfiguration) => networkConfiguration.rpcEndpoints.map((rpcEndpoint) => rpcEndpoint.networkClientId));
169
186
  }
170
187
  exports.getAvailableNetworkClientIds = getAvailableNetworkClientIds;
171
- exports.selectAvailableNetworkClientIds = (0, reselect_1.createSelector)([getNetworkConfigurations], getAvailableNetworkClientIds);
188
+ /**
189
+ * Redux selector for getting a list of all available network client IDs
190
+ * from NetworkController state.
191
+ *
192
+ * @param state - NetworkController state
193
+ * @returns A list of all available network client IDs.
194
+ */
195
+ exports.selectAvailableNetworkClientIds = (0, reselect_1.createSelector)(exports.selectNetworkConfigurations, getAvailableNetworkClientIds);
172
196
  /**
173
197
  * Determines whether the given URL is valid by attempting to parse it.
174
198
  *
@@ -214,7 +238,7 @@ function deriveInfuraNetworkNameFromRpcEndpointUrl(rpcEndpointUrl) {
214
238
  */
215
239
  function validateNetworkControllerState(state) {
216
240
  const networkConfigurationEntries = Object.entries(state.networkConfigurationsByChainId);
217
- const networkClientIds = (0, exports.selectAvailableNetworkClientIds)(state);
241
+ const networkClientIds = getAvailableNetworkClientIds(getNetworkConfigurations(state));
218
242
  if (networkConfigurationEntries.length === 0) {
219
243
  throw new Error('NetworkController state is invalid: `networkConfigurationsByChainId` cannot be empty');
220
244
  }