@metamask-previews/network-controller 23.2.0-preview-f94f70f2 → 23.3.0-preview-f603e07
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 +9 -1
- package/dist/NetworkController.cjs +43 -3
- package/dist/NetworkController.cjs.map +1 -1
- package/dist/NetworkController.d.cts +17 -0
- package/dist/NetworkController.d.cts.map +1 -1
- package/dist/NetworkController.d.mts +17 -0
- package/dist/NetworkController.d.mts.map +1 -1
- package/dist/NetworkController.mjs +43 -3
- package/dist/NetworkController.mjs.map +1 -1
- package/dist/create-auto-managed-network-client.cjs +34 -35
- package/dist/create-auto-managed-network-client.cjs.map +1 -1
- package/dist/create-auto-managed-network-client.d.cts +7 -1
- package/dist/create-auto-managed-network-client.d.cts.map +1 -1
- package/dist/create-auto-managed-network-client.d.mts +7 -1
- package/dist/create-auto-managed-network-client.d.mts.map +1 -1
- package/dist/create-auto-managed-network-client.mjs +34 -35
- package/dist/create-auto-managed-network-client.mjs.map +1 -1
- package/dist/create-network-client.cjs +15 -11
- package/dist/create-network-client.cjs.map +1 -1
- package/dist/create-network-client.d.cts +7 -1
- package/dist/create-network-client.d.cts.map +1 -1
- package/dist/create-network-client.d.mts +7 -1
- package/dist/create-network-client.d.mts.map +1 -1
- package/dist/create-network-client.mjs +15 -11
- package/dist/create-network-client.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,13 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [23.3.0]
|
|
11
|
+
|
|
10
12
|
### Added
|
|
11
13
|
|
|
12
14
|
- Add optional `getBlockTrackerOptions` argument to NetworkController constructor ([#5702](https://github.com/MetaMask/core/pull/5702))
|
|
15
|
+
- Add optional `rpcFailoverEnabled` option to NetworkController constructor (`false` by default) ([#5668](https://github.com/MetaMask/core/pull/5668))
|
|
16
|
+
- Add `enableRpcFailover` and `disableRpcFailover` methods to NetworkController ([#5668](https://github.com/MetaMask/core/pull/5668))
|
|
13
17
|
|
|
14
18
|
### Changed
|
|
15
19
|
|
|
16
20
|
- Bump `@metamask/base-controller` from ^8.0.0 to ^8.0.1 ([#5722](https://github.com/MetaMask/core/pull/5722))
|
|
21
|
+
- Disable the RPC failover behavior by default ([#5668](https://github.com/MetaMask/core/pull/5668))
|
|
22
|
+
- You are free to set the `failoverUrls` property on an RPC endpoint, but it won't have any effect
|
|
23
|
+
- To enable this behavior, either pass `rpcFailoverEnabled: true` to the constructor or call `enableRpcFailover` after initialization
|
|
17
24
|
|
|
18
25
|
## [23.2.0]
|
|
19
26
|
|
|
@@ -822,7 +829,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
822
829
|
|
|
823
830
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
824
831
|
|
|
825
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/network-controller@23.
|
|
832
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/network-controller@23.3.0...HEAD
|
|
833
|
+
[23.3.0]: https://github.com/MetaMask/core/compare/@metamask/network-controller@23.2.0...@metamask/network-controller@23.3.0
|
|
826
834
|
[23.2.0]: https://github.com/MetaMask/core/compare/@metamask/network-controller@23.1.0...@metamask/network-controller@23.2.0
|
|
827
835
|
[23.1.0]: https://github.com/MetaMask/core/compare/@metamask/network-controller@23.0.0...@metamask/network-controller@23.1.0
|
|
828
836
|
[23.0.0]: https://github.com/MetaMask/core/compare/@metamask/network-controller@22.2.1...@metamask/network-controller@23.0.0
|
|
@@ -36,7 +36,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
36
36
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
|
-
var _NetworkController_instances, _NetworkController_ethQuery, _NetworkController_infuraProjectId, _NetworkController_previouslySelectedNetworkClientId, _NetworkController_providerProxy, _NetworkController_blockTrackerProxy, _NetworkController_autoManagedNetworkClientRegistry, _NetworkController_autoManagedNetworkClient, _NetworkController_log, _NetworkController_getRpcServiceOptions, _NetworkController_getBlockTrackerOptions, _NetworkController_networkConfigurationsByNetworkClientId, _NetworkController_refreshNetwork, _NetworkController_getLatestBlock, _NetworkController_determineEIP1559Compatibility, _NetworkController_validateNetworkFields, _NetworkController_determineNetworkConfigurationToPersist, _NetworkController_registerNetworkClientsAsNeeded, _NetworkController_unregisterNetworkClientsAsNeeded, _NetworkController_updateNetworkConfigurations, _NetworkController_ensureAutoManagedNetworkClientRegistryPopulated, _NetworkController_createAutoManagedNetworkClientRegistry, _NetworkController_applyNetworkSelection;
|
|
39
|
+
var _NetworkController_instances, _NetworkController_ethQuery, _NetworkController_infuraProjectId, _NetworkController_previouslySelectedNetworkClientId, _NetworkController_providerProxy, _NetworkController_blockTrackerProxy, _NetworkController_autoManagedNetworkClientRegistry, _NetworkController_autoManagedNetworkClient, _NetworkController_log, _NetworkController_getRpcServiceOptions, _NetworkController_getBlockTrackerOptions, _NetworkController_networkConfigurationsByNetworkClientId, _NetworkController_isRpcFailoverEnabled, _NetworkController_updateRpcFailoverEnabled, _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
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");
|
|
@@ -342,7 +342,7 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
342
342
|
* @param options - The options; see {@link NetworkControllerOptions}.
|
|
343
343
|
*/
|
|
344
344
|
constructor(options) {
|
|
345
|
-
const { messenger, state, infuraProjectId, log, getRpcServiceOptions, getBlockTrackerOptions, additionalDefaultNetworks, } = options;
|
|
345
|
+
const { messenger, state, infuraProjectId, log, getRpcServiceOptions, getBlockTrackerOptions, additionalDefaultNetworks, isRpcFailoverEnabled = false, } = options;
|
|
346
346
|
const initialState = {
|
|
347
347
|
...getDefaultNetworkControllerState(additionalDefaultNetworks),
|
|
348
348
|
...state,
|
|
@@ -382,10 +382,12 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
382
382
|
_NetworkController_getRpcServiceOptions.set(this, void 0);
|
|
383
383
|
_NetworkController_getBlockTrackerOptions.set(this, void 0);
|
|
384
384
|
_NetworkController_networkConfigurationsByNetworkClientId.set(this, void 0);
|
|
385
|
+
_NetworkController_isRpcFailoverEnabled.set(this, void 0);
|
|
385
386
|
__classPrivateFieldSet(this, _NetworkController_infuraProjectId, infuraProjectId, "f");
|
|
386
387
|
__classPrivateFieldSet(this, _NetworkController_log, log, "f");
|
|
387
388
|
__classPrivateFieldSet(this, _NetworkController_getRpcServiceOptions, getRpcServiceOptions, "f");
|
|
388
389
|
__classPrivateFieldSet(this, _NetworkController_getBlockTrackerOptions, getBlockTrackerOptions, "f");
|
|
390
|
+
__classPrivateFieldSet(this, _NetworkController_isRpcFailoverEnabled, isRpcFailoverEnabled, "f");
|
|
389
391
|
__classPrivateFieldSet(this, _NetworkController_previouslySelectedNetworkClientId, this.state.selectedNetworkClientId, "f");
|
|
390
392
|
__classPrivateFieldSet(this, _NetworkController_networkConfigurationsByNetworkClientId, buildNetworkConfigurationsByNetworkClientId(this.state.networkConfigurationsByChainId), "f");
|
|
391
393
|
this.messagingSystem.registerActionHandler(
|
|
@@ -437,6 +439,22 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
437
439
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
438
440
|
`${this.name}:updateNetwork`, this.updateNetwork.bind(this));
|
|
439
441
|
}
|
|
442
|
+
/**
|
|
443
|
+
* Enables the RPC failover functionality. That is, if any RPC endpoints are
|
|
444
|
+
* configured with failover URLs, then traffic will automatically be diverted
|
|
445
|
+
* to them if those RPC endpoints are unavailable.
|
|
446
|
+
*/
|
|
447
|
+
enableRpcFailover() {
|
|
448
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateRpcFailoverEnabled).call(this, true);
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Disables the RPC failover functionality. That is, even if any RPC endpoints
|
|
452
|
+
* are configured with failover URLs, then traffic will not automatically be
|
|
453
|
+
* diverted to them if those RPC endpoints are unavailable.
|
|
454
|
+
*/
|
|
455
|
+
disableRpcFailover() {
|
|
456
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateRpcFailoverEnabled).call(this, false);
|
|
457
|
+
}
|
|
440
458
|
/**
|
|
441
459
|
* Accesses the provider and block tracker for the currently selected network.
|
|
442
460
|
* @returns The proxy and block tracker proxies.
|
|
@@ -1177,7 +1195,25 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
1177
1195
|
}
|
|
1178
1196
|
}
|
|
1179
1197
|
exports.NetworkController = NetworkController;
|
|
1180
|
-
_NetworkController_ethQuery = new WeakMap(), _NetworkController_infuraProjectId = new WeakMap(), _NetworkController_previouslySelectedNetworkClientId = new WeakMap(), _NetworkController_providerProxy = new WeakMap(), _NetworkController_blockTrackerProxy = new WeakMap(), _NetworkController_autoManagedNetworkClientRegistry = new WeakMap(), _NetworkController_autoManagedNetworkClient = new WeakMap(), _NetworkController_log = new WeakMap(), _NetworkController_getRpcServiceOptions = new WeakMap(), _NetworkController_getBlockTrackerOptions = new WeakMap(), _NetworkController_networkConfigurationsByNetworkClientId = new WeakMap(), _NetworkController_instances = new WeakSet(),
|
|
1198
|
+
_NetworkController_ethQuery = new WeakMap(), _NetworkController_infuraProjectId = new WeakMap(), _NetworkController_previouslySelectedNetworkClientId = new WeakMap(), _NetworkController_providerProxy = new WeakMap(), _NetworkController_blockTrackerProxy = new WeakMap(), _NetworkController_autoManagedNetworkClientRegistry = new WeakMap(), _NetworkController_autoManagedNetworkClient = new WeakMap(), _NetworkController_log = new WeakMap(), _NetworkController_getRpcServiceOptions = new WeakMap(), _NetworkController_getBlockTrackerOptions = new WeakMap(), _NetworkController_networkConfigurationsByNetworkClientId = new WeakMap(), _NetworkController_isRpcFailoverEnabled = new WeakMap(), _NetworkController_instances = new WeakSet(), _NetworkController_updateRpcFailoverEnabled = function _NetworkController_updateRpcFailoverEnabled(newIsRpcFailoverEnabled) {
|
|
1199
|
+
if (__classPrivateFieldGet(this, _NetworkController_isRpcFailoverEnabled, "f") === newIsRpcFailoverEnabled) {
|
|
1200
|
+
return;
|
|
1201
|
+
}
|
|
1202
|
+
const autoManagedNetworkClientRegistry = __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_ensureAutoManagedNetworkClientRegistryPopulated).call(this);
|
|
1203
|
+
for (const networkClientsById of Object.values(autoManagedNetworkClientRegistry)) {
|
|
1204
|
+
for (const networkClientId of Object.keys(networkClientsById)) {
|
|
1205
|
+
// Type assertion: We can assume that `networkClientId` is valid here.
|
|
1206
|
+
const networkClient = networkClientsById[networkClientId];
|
|
1207
|
+
if (networkClient.configuration.failoverRpcUrls &&
|
|
1208
|
+
networkClient.configuration.failoverRpcUrls.length > 0) {
|
|
1209
|
+
newIsRpcFailoverEnabled
|
|
1210
|
+
? networkClient.enableRpcFailover()
|
|
1211
|
+
: networkClient.disableRpcFailover();
|
|
1212
|
+
}
|
|
1213
|
+
}
|
|
1214
|
+
}
|
|
1215
|
+
__classPrivateFieldSet(this, _NetworkController_isRpcFailoverEnabled, newIsRpcFailoverEnabled, "f");
|
|
1216
|
+
}, _NetworkController_refreshNetwork =
|
|
1181
1217
|
/**
|
|
1182
1218
|
* Executes a series of steps to switch the network:
|
|
1183
1219
|
*
|
|
@@ -1398,6 +1434,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1398
1434
|
getRpcServiceOptions: __classPrivateFieldGet(this, _NetworkController_getRpcServiceOptions, "f"),
|
|
1399
1435
|
getBlockTrackerOptions: __classPrivateFieldGet(this, _NetworkController_getBlockTrackerOptions, "f"),
|
|
1400
1436
|
messenger: this.messagingSystem,
|
|
1437
|
+
isRpcFailoverEnabled: __classPrivateFieldGet(this, _NetworkController_isRpcFailoverEnabled, "f"),
|
|
1401
1438
|
});
|
|
1402
1439
|
}
|
|
1403
1440
|
else {
|
|
@@ -1412,6 +1449,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1412
1449
|
getRpcServiceOptions: __classPrivateFieldGet(this, _NetworkController_getRpcServiceOptions, "f"),
|
|
1413
1450
|
getBlockTrackerOptions: __classPrivateFieldGet(this, _NetworkController_getBlockTrackerOptions, "f"),
|
|
1414
1451
|
messenger: this.messagingSystem,
|
|
1452
|
+
isRpcFailoverEnabled: __classPrivateFieldGet(this, _NetworkController_isRpcFailoverEnabled, "f"),
|
|
1415
1453
|
});
|
|
1416
1454
|
}
|
|
1417
1455
|
}
|
|
@@ -1470,6 +1508,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1470
1508
|
getRpcServiceOptions: __classPrivateFieldGet(this, _NetworkController_getRpcServiceOptions, "f"),
|
|
1471
1509
|
getBlockTrackerOptions: __classPrivateFieldGet(this, _NetworkController_getBlockTrackerOptions, "f"),
|
|
1472
1510
|
messenger: this.messagingSystem,
|
|
1511
|
+
isRpcFailoverEnabled: __classPrivateFieldGet(this, _NetworkController_isRpcFailoverEnabled, "f"),
|
|
1473
1512
|
}),
|
|
1474
1513
|
];
|
|
1475
1514
|
}
|
|
@@ -1486,6 +1525,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1486
1525
|
getRpcServiceOptions: __classPrivateFieldGet(this, _NetworkController_getRpcServiceOptions, "f"),
|
|
1487
1526
|
getBlockTrackerOptions: __classPrivateFieldGet(this, _NetworkController_getBlockTrackerOptions, "f"),
|
|
1488
1527
|
messenger: this.messagingSystem,
|
|
1528
|
+
isRpcFailoverEnabled: __classPrivateFieldGet(this, _NetworkController_isRpcFailoverEnabled, "f"),
|
|
1489
1529
|
}),
|
|
1490
1530
|
];
|
|
1491
1531
|
});
|