@metamask-previews/network-controller 35.0.1-preview-95f5bf775 → 35.0.1-preview-700481f6d
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 +7 -0
- package/dist/NetworkController.cjs +44 -4
- package/dist/NetworkController.cjs.map +1 -1
- package/dist/NetworkController.d.cts +7 -5
- package/dist/NetworkController.d.cts.map +1 -1
- package/dist/NetworkController.d.mts +7 -5
- package/dist/NetworkController.d.mts.map +1 -1
- package/dist/NetworkController.mjs +45 -5
- package/dist/NetworkController.mjs.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **BREAKING:** `NetworkControllerMessenger` now requires the `ConfigRegistryController:stateChanged` event and `ConfigRegistryController:getNetworkConfigByCaip2ChainId` action to be delegated from the root messenger ([#9879](https://github.com/MetaMask/core/pull/9879))
|
|
13
|
+
- `NetworkController` now depends on the `ConfigRegistryController` to auto-register default networks from the registry.
|
|
14
|
+
- Update `init` to auto-register default networks from `ConfigRegistryController` ([#9879](https://github.com/MetaMask/core/pull/9879))
|
|
15
|
+
- Bump `@metamask/remote-feature-flag-controller` from `^5.0.0` to `^6.0.0` ([#9945](https://github.com/MetaMask/core/pull/9945))
|
|
16
|
+
|
|
10
17
|
## [35.0.1]
|
|
11
18
|
|
|
12
19
|
### Changed
|
|
@@ -36,10 +36,11 @@ 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, _NetworkController_analyticsOptions, _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;
|
|
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_analyticsOptions, _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, _NetworkController_autoAddNetworksFromConfigRegistry;
|
|
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
|
+
const config_registry_controller_1 = require("@metamask/config-registry-controller");
|
|
43
44
|
const controller_utils_1 = require("@metamask/controller-utils");
|
|
44
45
|
const eth_query_1 = __importDefault(require("@metamask/eth-query"));
|
|
45
46
|
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
@@ -473,6 +474,7 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
473
474
|
'RemoteFeatureFlagController:stateChange', (rpcFailoverMode) => {
|
|
474
475
|
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateRpcFailover).call(this, rpcFailoverMode);
|
|
475
476
|
}, selectors_js_1.getRpcFailoverMode);
|
|
477
|
+
this.messenger.subscribe('ConfigRegistryController:stateChanged', (caipChainIds) => __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_autoAddNetworksFromConfigRegistry).call(this, caipChainIds), config_registry_controller_1.selectEvmAutoEnabledNetworksChainIds);
|
|
476
478
|
}
|
|
477
479
|
/**
|
|
478
480
|
* Returns the EthQuery instance for the currently selected network.
|
|
@@ -547,14 +549,16 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
547
549
|
return customNetworkClient;
|
|
548
550
|
}
|
|
549
551
|
/**
|
|
550
|
-
* Initialize the NetworkController
|
|
551
|
-
* `corePlatformRpcFailoverMode` remote feature flag
|
|
552
|
-
* selection.
|
|
552
|
+
* Initialize the NetworkController:
|
|
553
|
+
* - Apply the RPC failover mode from the `corePlatformRpcFailoverMode` remote feature flag;
|
|
554
|
+
* - Apply the network selection.
|
|
555
|
+
* - Auto-add networks for any chains that are configured to be auto-enabled in ConfigRegistryController.
|
|
553
556
|
*/
|
|
554
557
|
init() {
|
|
555
558
|
const state = this.messenger.call('RemoteFeatureFlagController:getState');
|
|
556
559
|
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateRpcFailover).call(this, (0, selectors_js_1.getRpcFailoverMode)(state));
|
|
557
560
|
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_applyNetworkSelection).call(this, this.state.selectedNetworkClientId);
|
|
561
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_autoAddNetworksFromConfigRegistry).call(this, (0, config_registry_controller_1.selectEvmAutoEnabledNetworksChainIds)(this.messenger.call('ConfigRegistryController:getState')));
|
|
558
562
|
}
|
|
559
563
|
/**
|
|
560
564
|
* Uses a request for the latest block to gather the following information on
|
|
@@ -1555,5 +1559,41 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1555
1559
|
}), "f");
|
|
1556
1560
|
}
|
|
1557
1561
|
__classPrivateFieldSet(this, _NetworkController_ethQuery, new eth_query_1.default(__classPrivateFieldGet(this, _NetworkController_providerProxy, "f")), "f");
|
|
1562
|
+
}, _NetworkController_autoAddNetworksFromConfigRegistry = function _NetworkController_autoAddNetworksFromConfigRegistry(caipChainIds) {
|
|
1563
|
+
for (const caipChainId of caipChainIds) {
|
|
1564
|
+
try {
|
|
1565
|
+
const registryNetworkConfig = this.messenger.call('ConfigRegistryController:getNetworkConfigByCaip2ChainId', caipChainId);
|
|
1566
|
+
const hexChainId = (0, utils_1.numberToHex)(Number((0, utils_1.parseCaipChainId)(caipChainId).reference));
|
|
1567
|
+
if (!registryNetworkConfig ||
|
|
1568
|
+
this.state.networkConfigurationsByChainId[hexChainId]) {
|
|
1569
|
+
continue;
|
|
1570
|
+
}
|
|
1571
|
+
const rpcEndpoint = registryNetworkConfig.rpcProviders.default.type === 'infura'
|
|
1572
|
+
? {
|
|
1573
|
+
type: RpcEndpointType.Infura,
|
|
1574
|
+
networkClientId: registryNetworkConfig.rpcProviders.default.networkClientId,
|
|
1575
|
+
url: registryNetworkConfig.rpcProviders.default
|
|
1576
|
+
.url,
|
|
1577
|
+
}
|
|
1578
|
+
: {
|
|
1579
|
+
type: RpcEndpointType.Custom,
|
|
1580
|
+
url: registryNetworkConfig.rpcProviders.default.url,
|
|
1581
|
+
};
|
|
1582
|
+
this.addNetwork({
|
|
1583
|
+
chainId: hexChainId,
|
|
1584
|
+
name: registryNetworkConfig.name,
|
|
1585
|
+
nativeCurrency: registryNetworkConfig.assets.native.symbol,
|
|
1586
|
+
rpcEndpoints: [rpcEndpoint],
|
|
1587
|
+
defaultRpcEndpointIndex: 0,
|
|
1588
|
+
blockExplorerUrls: [registryNetworkConfig.blockExplorerUrls.default],
|
|
1589
|
+
defaultBlockExplorerUrlIndex: 0,
|
|
1590
|
+
});
|
|
1591
|
+
}
|
|
1592
|
+
catch (error) {
|
|
1593
|
+
const capturedError = error instanceof Error ? error : new Error(String(error));
|
|
1594
|
+
__classPrivateFieldGet(this, _NetworkController_log, "f")?.error(`Failed to auto-enable network for chain ID ${caipChainId}: ${capturedError}`);
|
|
1595
|
+
this.messenger.captureException?.(capturedError);
|
|
1596
|
+
}
|
|
1597
|
+
}
|
|
1558
1598
|
};
|
|
1559
1599
|
//# sourceMappingURL=NetworkController.cjs.map
|