@metamask-previews/network-controller 33.0.0-preview-e0ee14da7 → 33.0.0-preview-e12e4a38f
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 +0 -9
- package/dist/NetworkController.cjs +3 -59
- package/dist/NetworkController.cjs.map +1 -1
- package/dist/NetworkController.d.cts +1 -12
- package/dist/NetworkController.d.cts.map +1 -1
- package/dist/NetworkController.d.mts +1 -12
- package/dist/NetworkController.d.mts.map +1 -1
- package/dist/NetworkController.mjs +3 -59
- package/dist/NetworkController.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +0 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +0 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -2
- package/dist/rpc-service-events.cjs +0 -87
- package/dist/rpc-service-events.cjs.map +0 -1
- package/dist/rpc-service-events.d.cts +0 -85
- package/dist/rpc-service-events.d.cts.map +0 -1
- package/dist/rpc-service-events.d.mts +0 -85
- package/dist/rpc-service-events.d.mts.map +0 -1
- package/dist/rpc-service-events.mjs +0 -81
- package/dist/rpc-service-events.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,20 +7,11 @@ 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 optional `analytics` constructor option that makes `NetworkController` emit `RPC Service Unavailable` and `RPC Service Degraded` analytics events via the `AnalyticsController:trackEvent` action when an RPC endpoint becomes unavailable or degraded ([#9270](https://github.com/MetaMask/core/pull/9270))
|
|
13
|
-
- The option takes `isRpcEndpointUrlPublic` (decides whether an endpoint URL is safe to report verbatim or as `'custom'`) and `rpcServiceEventsSampleRate` (the proportion of events to emit, between `0` and `1`).
|
|
14
|
-
- No analytics are emitted when the option is omitted.
|
|
15
|
-
- Adds the `NetworkControllerAnalyticsOptions` and `RpcServiceEventName` types.
|
|
16
|
-
|
|
17
10
|
### Changed
|
|
18
11
|
|
|
19
12
|
- **BREAKING:** Drive RPC failover from the single `corePlatformRpcFailoverMode` remote feature flag ([#9175](https://github.com/MetaMask/core/pull/9175))
|
|
20
13
|
- The flag is a string with three values: `disabled` (failover off), `enabled` (divert to failover URLs when the primary endpoint is unavailable), and `forced` (Infura endpoints that have failover URLs route all traffic to those URLs, bypassing Infura entirely). Custom endpoints are unaffected, and the value defaults to `disabled` when the flag is absent or unrecognized.
|
|
21
14
|
- `NetworkController` no longer reads the `walletFrameworkRpcFailoverEnabled` flag; the `enabled` mode replaces it. Update your remote feature flag configuration to set `corePlatformRpcFailoverMode`.
|
|
22
|
-
- **BREAKING:** The `NetworkControllerMessenger` now allows the `AnalyticsController:getState` and `AnalyticsController:trackEvent` actions ([#9270](https://github.com/MetaMask/core/pull/9270))
|
|
23
|
-
- Consumers that pass the `analytics` option must delegate these actions to the network controller messenger.
|
|
24
15
|
|
|
25
16
|
### Removed
|
|
26
17
|
|
|
@@ -36,13 +36,12 @@ 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_failoverUrls, _NetworkController_previouslySelectedNetworkClientId, _NetworkController_providerProxy, _NetworkController_blockTrackerProxy, _NetworkController_autoManagedNetworkClientRegistry, _NetworkController_autoManagedNetworkClient, _NetworkController_log, _NetworkController_getRpcServiceOptions, _NetworkController_getBlockTrackerOptions,
|
|
39
|
+
var _NetworkController_instances, _NetworkController_ethQuery, _NetworkController_infuraProjectId, _NetworkController_failoverUrls, _NetworkController_previouslySelectedNetworkClientId, _NetworkController_providerProxy, _NetworkController_blockTrackerProxy, _NetworkController_autoManagedNetworkClientRegistry, _NetworkController_autoManagedNetworkClient, _NetworkController_log, _NetworkController_getRpcServiceOptions, _NetworkController_getBlockTrackerOptions, _NetworkController_networkConfigurationsByNetworkClientId, _NetworkController_rpcFailoverMode, _NetworkController_updateRpcFailover, _NetworkController_refreshNetwork, _NetworkController_determineNetworkMetadata, _NetworkController_lookupGivenNetwork, _NetworkController_lookupSelectedNetwork, _NetworkController_updateMetadataForNetwork, _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");
|
|
43
43
|
const controller_utils_1 = require("@metamask/controller-utils");
|
|
44
44
|
const eth_query_1 = __importDefault(require("@metamask/eth-query"));
|
|
45
|
-
const remote_feature_flag_controller_1 = require("@metamask/remote-feature-flag-controller");
|
|
46
45
|
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
47
46
|
const swappable_obj_proxy_1 = require("@metamask/swappable-obj-proxy");
|
|
48
47
|
const utils_1 = require("@metamask/utils");
|
|
@@ -55,8 +54,6 @@ const uuid_1 = require("uuid");
|
|
|
55
54
|
const constants_1 = require("./constants.cjs");
|
|
56
55
|
const create_auto_managed_network_client_1 = require("./create-auto-managed-network-client.cjs");
|
|
57
56
|
const logger_1 = require("./logger.cjs");
|
|
58
|
-
const rpc_service_events_1 = require("./rpc-service-events.cjs");
|
|
59
|
-
const rpc_service_1 = require("./rpc-service/rpc-service.cjs");
|
|
60
57
|
const selectors_1 = require("./selectors.cjs");
|
|
61
58
|
const types_1 = require("./types.cjs");
|
|
62
59
|
const debugLog = (0, logger_1.createModuleLogger)(logger_1.projectLogger, 'NetworkController');
|
|
@@ -394,7 +391,7 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
394
391
|
* @param options - The options; see {@link NetworkControllerOptions}.
|
|
395
392
|
*/
|
|
396
393
|
constructor(options) {
|
|
397
|
-
const { messenger, state, infuraProjectId, failoverUrls, log, getRpcServiceOptions, getBlockTrackerOptions,
|
|
394
|
+
const { messenger, state, infuraProjectId, failoverUrls, log, getRpcServiceOptions, getBlockTrackerOptions, } = options;
|
|
398
395
|
const initialState = {
|
|
399
396
|
...getDefaultNetworkControllerState(),
|
|
400
397
|
...state,
|
|
@@ -441,7 +438,6 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
441
438
|
_NetworkController_log.set(this, void 0);
|
|
442
439
|
_NetworkController_getRpcServiceOptions.set(this, void 0);
|
|
443
440
|
_NetworkController_getBlockTrackerOptions.set(this, void 0);
|
|
444
|
-
_NetworkController_analytics.set(this, void 0);
|
|
445
441
|
_NetworkController_networkConfigurationsByNetworkClientId.set(this, void 0);
|
|
446
442
|
_NetworkController_rpcFailoverMode.set(this, 'disabled');
|
|
447
443
|
__classPrivateFieldSet(this, _NetworkController_infuraProjectId, infuraProjectId, "f");
|
|
@@ -449,7 +445,6 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
449
445
|
__classPrivateFieldSet(this, _NetworkController_log, log, "f");
|
|
450
446
|
__classPrivateFieldSet(this, _NetworkController_getRpcServiceOptions, getRpcServiceOptions, "f");
|
|
451
447
|
__classPrivateFieldSet(this, _NetworkController_getBlockTrackerOptions, getBlockTrackerOptions, "f");
|
|
452
|
-
__classPrivateFieldSet(this, _NetworkController_analytics, analytics, "f");
|
|
453
448
|
__classPrivateFieldSet(this, _NetworkController_previouslySelectedNetworkClientId, this.state.selectedNetworkClientId, "f");
|
|
454
449
|
__classPrivateFieldSet(this, _NetworkController_networkConfigurationsByNetworkClientId, buildNetworkConfigurationsByNetworkClientId(this.state.networkConfigurationsByChainId), "f");
|
|
455
450
|
this.messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
|
|
@@ -468,28 +463,6 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
468
463
|
networkStatus: constants_1.NetworkStatus.Available,
|
|
469
464
|
});
|
|
470
465
|
});
|
|
471
|
-
if (__classPrivateFieldGet(this, _NetworkController_analytics, "f")) {
|
|
472
|
-
const analyticsOptions = __classPrivateFieldGet(this, _NetworkController_analytics, "f");
|
|
473
|
-
this.messenger.subscribe(`${this.name}:rpcEndpointUnavailable`, ({ chainId, endpointUrl, error }) => {
|
|
474
|
-
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_trackRpcServiceEvent).call(this, analyticsOptions, 'RPC Service Unavailable', {
|
|
475
|
-
chainId,
|
|
476
|
-
endpointUrl,
|
|
477
|
-
error,
|
|
478
|
-
});
|
|
479
|
-
});
|
|
480
|
-
this.messenger.subscribe(`${this.name}:rpcEndpointDegraded`, ({ chainId, duration, endpointUrl, error, retryReason, rpcMethodName, traceId, type, }) => {
|
|
481
|
-
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_trackRpcServiceEvent).call(this, analyticsOptions, 'RPC Service Degraded', {
|
|
482
|
-
chainId,
|
|
483
|
-
duration,
|
|
484
|
-
endpointUrl,
|
|
485
|
-
error,
|
|
486
|
-
retryReason,
|
|
487
|
-
rpcMethodName,
|
|
488
|
-
traceId,
|
|
489
|
-
type,
|
|
490
|
-
});
|
|
491
|
-
});
|
|
492
|
-
}
|
|
493
466
|
this.messenger.subscribe(
|
|
494
467
|
// eslint-disable-next-line no-restricted-syntax
|
|
495
468
|
'RemoteFeatureFlagController:stateChange', (rpcFailoverMode) => {
|
|
@@ -1073,36 +1046,7 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
1073
1046
|
}
|
|
1074
1047
|
}
|
|
1075
1048
|
exports.NetworkController = NetworkController;
|
|
1076
|
-
_NetworkController_ethQuery = new WeakMap(), _NetworkController_infuraProjectId = new WeakMap(), _NetworkController_failoverUrls = 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(),
|
|
1077
|
-
try {
|
|
1078
|
-
if ((0, rpc_service_1.isConnectionError)(payload.error)) {
|
|
1079
|
-
return;
|
|
1080
|
-
}
|
|
1081
|
-
const { analyticsId } = this.messenger.call('AnalyticsController:getState');
|
|
1082
|
-
if (!analyticsId) {
|
|
1083
|
-
return;
|
|
1084
|
-
}
|
|
1085
|
-
if ((0, remote_feature_flag_controller_1.generateDeterministicRandomNumber)(analyticsId) >=
|
|
1086
|
-
analytics.rpcServiceEventsSampleRate) {
|
|
1087
|
-
return;
|
|
1088
|
-
}
|
|
1089
|
-
const properties = (0, rpc_service_events_1.buildRpcServiceEventProperties)({
|
|
1090
|
-
chainId: payload.chainId,
|
|
1091
|
-
endpointUrl: payload.endpointUrl,
|
|
1092
|
-
error: payload.error,
|
|
1093
|
-
isRpcEndpointUrlPublic: analytics.isRpcEndpointUrlPublic,
|
|
1094
|
-
duration: payload.duration,
|
|
1095
|
-
retryReason: payload.retryReason,
|
|
1096
|
-
rpcMethodName: payload.rpcMethodName,
|
|
1097
|
-
traceId: payload.traceId,
|
|
1098
|
-
type: payload.type,
|
|
1099
|
-
});
|
|
1100
|
-
this.messenger.call('AnalyticsController:trackEvent', (0, rpc_service_events_1.toAnalyticsTrackingEvent)(name, properties));
|
|
1101
|
-
}
|
|
1102
|
-
catch (error) {
|
|
1103
|
-
this.messenger.captureException?.(error);
|
|
1104
|
-
}
|
|
1105
|
-
}, _NetworkController_updateRpcFailover = function _NetworkController_updateRpcFailover(newMode) {
|
|
1049
|
+
_NetworkController_ethQuery = new WeakMap(), _NetworkController_infuraProjectId = new WeakMap(), _NetworkController_failoverUrls = 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_rpcFailoverMode = new WeakMap(), _NetworkController_instances = new WeakSet(), _NetworkController_updateRpcFailover = function _NetworkController_updateRpcFailover(newMode) {
|
|
1106
1050
|
if (__classPrivateFieldGet(this, _NetworkController_rpcFailoverMode, "f") === newMode) {
|
|
1107
1051
|
return;
|
|
1108
1052
|
}
|