@metamask-previews/network-controller 22.1.1-preview-4c4eb52a → 22.2.0-preview-0d0d258d
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 +21 -2
- package/dist/NetworkController.cjs +59 -7
- package/dist/NetworkController.cjs.map +1 -1
- package/dist/NetworkController.d.cts +61 -5
- package/dist/NetworkController.d.cts.map +1 -1
- package/dist/NetworkController.d.mts +61 -5
- package/dist/NetworkController.d.mts.map +1 -1
- package/dist/NetworkController.mjs +58 -6
- package/dist/NetworkController.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/rpc-service/abstract-rpc-service.cjs +3 -0
- package/dist/rpc-service/abstract-rpc-service.cjs.map +1 -0
- package/dist/rpc-service/abstract-rpc-service.d.cts +46 -0
- package/dist/rpc-service/abstract-rpc-service.d.cts.map +1 -0
- package/dist/rpc-service/abstract-rpc-service.d.mts +46 -0
- package/dist/rpc-service/abstract-rpc-service.d.mts.map +1 -0
- package/dist/rpc-service/abstract-rpc-service.mjs +2 -0
- package/dist/rpc-service/abstract-rpc-service.mjs.map +1 -0
- package/dist/rpc-service/rpc-service-chain.cjs +109 -0
- package/dist/rpc-service/rpc-service-chain.cjs.map +1 -0
- package/dist/rpc-service/rpc-service-chain.d.cts +116 -0
- package/dist/rpc-service/rpc-service-chain.d.cts.map +1 -0
- package/dist/rpc-service/rpc-service-chain.d.mts +116 -0
- package/dist/rpc-service/rpc-service-chain.d.mts.map +1 -0
- package/dist/rpc-service/rpc-service-chain.mjs +105 -0
- package/dist/rpc-service/rpc-service-chain.mjs.map +1 -0
- package/dist/rpc-service/rpc-service.cjs +279 -0
- package/dist/rpc-service/rpc-service.cjs.map +1 -0
- package/dist/rpc-service/rpc-service.d.cts +134 -0
- package/dist/rpc-service/rpc-service.d.cts.map +1 -0
- package/dist/rpc-service/rpc-service.d.mts +134 -0
- package/dist/rpc-service/rpc-service.d.mts.map +1 -0
- package/dist/rpc-service/rpc-service.mjs +278 -0
- package/dist/rpc-service/rpc-service.mjs.map +1 -0
- package/dist/rpc-service/shared.cjs +3 -0
- package/dist/rpc-service/shared.cjs.map +1 -0
- package/dist/rpc-service/shared.d.cts +12 -0
- package/dist/rpc-service/shared.d.cts.map +1 -0
- package/dist/rpc-service/shared.d.mts +12 -0
- package/dist/rpc-service/shared.d.mts.map +1 -0
- package/dist/rpc-service/shared.mjs +2 -0
- package/dist/rpc-service/shared.mjs.map +1 -0
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -7,9 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [22.2.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Export `AbstractRpcService` type ([#5263](https://github.com/MetaMask/core/pull/5263))
|
|
15
|
+
|
|
10
16
|
### Changed
|
|
11
17
|
|
|
12
|
-
- Bump `@metamask/base-controller` from `^7.0.0` to `^7.1.
|
|
18
|
+
- Bump `@metamask/base-controller` from `^7.0.0` to `^7.1.1` ([#5079](https://github.com/MetaMask/core/pull/5079), [#5135](https://github.com/MetaMask/core/pull/5135))
|
|
19
|
+
- Bump `@metamask/controller-utils` from `^11.4.4` to `^11.5.0` ([#5135](https://github.com/MetaMask/core/pull/5135), [#5272](https://github.com/MetaMask/core/pull/5272))
|
|
20
|
+
- Bump `@metamask/eth-json-rpc-provider` from `^4.1.6` to `^4.1.8` ([#5082](https://github.com/MetaMask/core/pull/5082), [#5272](https://github.com/MetaMask/core/pull/5272))
|
|
21
|
+
- Bump `@metamask/json-rpc-engine` from `^10.0.1` to `^10.0.3` ([#5082](https://github.com/MetaMask/core/pull/5082), [#5272](https://github.com/MetaMask/core/pull/5272))
|
|
22
|
+
- Bump `@metamask/rpc-errors` from `^7.0.1` to `^7.0.2` ([#5080](https://github.com/MetaMask/core/pull/5080))
|
|
23
|
+
- Bump `@metamask/utils` from `^10.0.0` to `^11.1.0` ([#5080](https://github.com/MetaMask/core/pull/5080), [#5223](https://github.com/MetaMask/core/pull/5223))
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- Fix `lookupNetwork` so that it will no longer throw an error if `networkDidChange` subscriptions have been removed before it returns ([#5116](https://github.com/MetaMask/core/pull/5116))
|
|
28
|
+
- This error could occur if the NetworkController's messenger is cleared of subscriptions, as in a "destroy" step.
|
|
29
|
+
- Fix race condition so that after adding a new RPC endpoint to a network, it is possible to access the new endpoint inside of a `stateChange` event listener via `getNetworkConfigurationByNetworkClientId` ([#5122](https://github.com/MetaMask/core/pull/5122))
|
|
30
|
+
- Fix `selectAvailableNetworkClientIds` so that it is properly memoized ([#5193](https://github.com/MetaMask/core/pull/5193))
|
|
13
31
|
|
|
14
32
|
## [22.1.1]
|
|
15
33
|
|
|
@@ -698,7 +716,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
698
716
|
|
|
699
717
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
700
718
|
|
|
701
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/network-controller@22.
|
|
719
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/network-controller@22.2.0...HEAD
|
|
720
|
+
[22.2.0]: https://github.com/MetaMask/core/compare/@metamask/network-controller@22.1.1...@metamask/network-controller@22.2.0
|
|
702
721
|
[22.1.1]: https://github.com/MetaMask/core/compare/@metamask/network-controller@22.1.0...@metamask/network-controller@22.1.1
|
|
703
722
|
[22.1.0]: https://github.com/MetaMask/core/compare/@metamask/network-controller@22.0.2...@metamask/network-controller@22.1.0
|
|
704
723
|
[22.0.2]: https://github.com/MetaMask/core/compare/@metamask/network-controller@22.0.1...@metamask/network-controller@22.0.2
|
|
@@ -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
|
-
*
|
|
163
|
-
*
|
|
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
|
-
|
|
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 = (
|
|
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
|
}
|
|
@@ -526,7 +550,26 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
526
550
|
let networkChanged = false;
|
|
527
551
|
const listener = () => {
|
|
528
552
|
networkChanged = true;
|
|
529
|
-
|
|
553
|
+
try {
|
|
554
|
+
this.messagingSystem.unsubscribe('NetworkController:networkDidChange', listener);
|
|
555
|
+
}
|
|
556
|
+
catch (error) {
|
|
557
|
+
// In theory, this `catch` should not be necessary given that this error
|
|
558
|
+
// would occur "inside" of the call to `#determineEIP1559Compatibility`
|
|
559
|
+
// below and so it should be caught by the `try`/`catch` below (it is
|
|
560
|
+
// impossible to reproduce in tests for that reason). However, somehow
|
|
561
|
+
// it occurs within Mobile and so we have to add our own `try`/`catch`
|
|
562
|
+
// here.
|
|
563
|
+
/* istanbul ignore next */
|
|
564
|
+
if (!(error instanceof Error) ||
|
|
565
|
+
error.message !==
|
|
566
|
+
'Subscription not found for event: NetworkController:networkDidChange') {
|
|
567
|
+
// Again, this error should not happen and is impossible to reproduce
|
|
568
|
+
// in tests.
|
|
569
|
+
/* istanbul ignore next */
|
|
570
|
+
throw error;
|
|
571
|
+
}
|
|
572
|
+
}
|
|
530
573
|
};
|
|
531
574
|
this.messagingSystem.subscribe('NetworkController:networkDidChange', listener);
|
|
532
575
|
let updatedNetworkStatus;
|
|
@@ -576,7 +619,16 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
576
619
|
// in the process of being called, so we don't need to go further.
|
|
577
620
|
return;
|
|
578
621
|
}
|
|
579
|
-
|
|
622
|
+
try {
|
|
623
|
+
this.messagingSystem.unsubscribe('NetworkController:networkDidChange', listener);
|
|
624
|
+
}
|
|
625
|
+
catch (error) {
|
|
626
|
+
if (!(error instanceof Error) ||
|
|
627
|
+
error.message !==
|
|
628
|
+
'Subscription not found for event: NetworkController:networkDidChange') {
|
|
629
|
+
throw error;
|
|
630
|
+
}
|
|
631
|
+
}
|
|
580
632
|
this.update((state) => {
|
|
581
633
|
const meta = state.networksMetadata[state.selectedNetworkClientId];
|
|
582
634
|
meta.status = updatedNetworkStatus;
|