@metamask/network-controller 23.0.0 → 23.2.0
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 +36 -1
- package/dist/NetworkController.cjs +68 -9
- package/dist/NetworkController.cjs.map +1 -1
- package/dist/NetworkController.d.cts +21 -5
- package/dist/NetworkController.d.cts.map +1 -1
- package/dist/NetworkController.d.mts +21 -5
- package/dist/NetworkController.d.mts.map +1 -1
- package/dist/NetworkController.mjs +70 -11
- package/dist/NetworkController.mjs.map +1 -1
- package/dist/constants.cjs +7 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +6 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +6 -0
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +6 -0
- package/dist/constants.mjs.map +1 -1
- package/dist/create-network-client.cjs +2 -1
- package/dist/create-network-client.cjs.map +1 -1
- package/dist/create-network-client.d.cts.map +1 -1
- package/dist/create-network-client.d.mts.map +1 -1
- package/dist/create-network-client.mjs +2 -1
- package/dist/create-network-client.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +6 -2
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +6 -2
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -11,7 +11,7 @@ import { NetworkStatus } from "./constants.cjs";
|
|
|
11
11
|
import type { AutoManagedNetworkClient, ProxyWithAccessibleTarget } from "./create-auto-managed-network-client.cjs";
|
|
12
12
|
import type { RpcServiceOptions } from "./rpc-service/rpc-service.cjs";
|
|
13
13
|
import { NetworkClientType } from "./types.cjs";
|
|
14
|
-
import type { BlockTracker, Provider, CustomNetworkClientConfiguration, InfuraNetworkClientConfiguration } from "./types.cjs";
|
|
14
|
+
import type { BlockTracker, Provider, CustomNetworkClientConfiguration, InfuraNetworkClientConfiguration, AdditionalDefaultNetwork } from "./types.cjs";
|
|
15
15
|
export type Block = {
|
|
16
16
|
baseFeePerGas?: string;
|
|
17
17
|
};
|
|
@@ -56,7 +56,7 @@ export type InfuraRpcEndpoint = {
|
|
|
56
56
|
/**
|
|
57
57
|
* Alternate RPC endpoints to use when this endpoint is down.
|
|
58
58
|
*/
|
|
59
|
-
failoverUrls
|
|
59
|
+
failoverUrls?: string[];
|
|
60
60
|
/**
|
|
61
61
|
* The optional user-facing nickname of the endpoint.
|
|
62
62
|
*/
|
|
@@ -87,7 +87,7 @@ export type CustomRpcEndpoint = {
|
|
|
87
87
|
/**
|
|
88
88
|
* Alternate RPC endpoints to use when this endpoint is down.
|
|
89
89
|
*/
|
|
90
|
-
failoverUrls
|
|
90
|
+
failoverUrls?: string[];
|
|
91
91
|
/**
|
|
92
92
|
* The optional user-facing nickname of the endpoint.
|
|
93
93
|
*/
|
|
@@ -357,6 +357,7 @@ export type NetworkControllerRpcEndpointDegradedEvent = {
|
|
|
357
357
|
type: 'NetworkController:rpcEndpointDegraded';
|
|
358
358
|
payload: [
|
|
359
359
|
{
|
|
360
|
+
chainId: Hex;
|
|
360
361
|
endpointUrl: string;
|
|
361
362
|
}
|
|
362
363
|
];
|
|
@@ -388,6 +389,10 @@ export type NetworkControllerGetSelectedNetworkClientAction = {
|
|
|
388
389
|
type: `NetworkController:getSelectedNetworkClient`;
|
|
389
390
|
handler: NetworkController['getSelectedNetworkClient'];
|
|
390
391
|
};
|
|
392
|
+
export type NetworkControllerGetSelectedChainIdAction = {
|
|
393
|
+
type: 'NetworkController:getSelectedChainId';
|
|
394
|
+
handler: NetworkController['getSelectedChainId'];
|
|
395
|
+
};
|
|
391
396
|
export type NetworkControllerGetEIP1559CompatibilityAction = {
|
|
392
397
|
type: `NetworkController:getEIP1559Compatibility`;
|
|
393
398
|
handler: NetworkController['getEIP1559Compatibility'];
|
|
@@ -430,7 +435,7 @@ export type NetworkControllerUpdateNetworkAction = {
|
|
|
430
435
|
type: 'NetworkController:updateNetwork';
|
|
431
436
|
handler: NetworkController['updateNetwork'];
|
|
432
437
|
};
|
|
433
|
-
export type NetworkControllerActions = NetworkControllerGetStateAction | NetworkControllerGetEthQueryAction | NetworkControllerGetNetworkClientByIdAction | NetworkControllerGetSelectedNetworkClientAction | NetworkControllerGetEIP1559CompatibilityAction | NetworkControllerFindNetworkClientIdByChainIdAction | NetworkControllerSetActiveNetworkAction | NetworkControllerSetProviderTypeAction | NetworkControllerGetNetworkConfigurationByChainId | NetworkControllerGetNetworkConfigurationByNetworkClientId | NetworkControllerAddNetworkAction | NetworkControllerRemoveNetworkAction | NetworkControllerUpdateNetworkAction;
|
|
438
|
+
export type NetworkControllerActions = NetworkControllerGetStateAction | NetworkControllerGetEthQueryAction | NetworkControllerGetNetworkClientByIdAction | NetworkControllerGetSelectedNetworkClientAction | NetworkControllerGetSelectedChainIdAction | NetworkControllerGetEIP1559CompatibilityAction | NetworkControllerFindNetworkClientIdByChainIdAction | NetworkControllerSetActiveNetworkAction | NetworkControllerSetProviderTypeAction | NetworkControllerGetNetworkConfigurationByChainId | NetworkControllerGetNetworkConfigurationByNetworkClientId | NetworkControllerAddNetworkAction | NetworkControllerRemoveNetworkAction | NetworkControllerUpdateNetworkAction;
|
|
434
439
|
export type NetworkControllerMessenger = RestrictedMessenger<typeof controllerName, NetworkControllerActions, NetworkControllerEvents, never, never>;
|
|
435
440
|
/**
|
|
436
441
|
* Options for the NetworkController constructor.
|
|
@@ -463,14 +468,19 @@ export type NetworkControllerOptions = {
|
|
|
463
468
|
* automatically).
|
|
464
469
|
*/
|
|
465
470
|
getRpcServiceOptions: (rpcEndpointUrl: string) => Omit<RpcServiceOptions, 'failoverService' | 'endpointUrl'>;
|
|
471
|
+
/**
|
|
472
|
+
* An array of Hex Chain IDs representing the additional networks to be included as default.
|
|
473
|
+
*/
|
|
474
|
+
additionalDefaultNetworks?: AdditionalDefaultNetwork[];
|
|
466
475
|
};
|
|
467
476
|
/**
|
|
468
477
|
* Constructs properties for the NetworkController state whose values will be
|
|
469
478
|
* used if not provided to the constructor.
|
|
470
479
|
*
|
|
480
|
+
* @param [additionalDefaultNetworks] - An array of Hex Chain IDs representing the additional networks to be included as default.
|
|
471
481
|
* @returns The default NetworkController state.
|
|
472
482
|
*/
|
|
473
|
-
export declare function getDefaultNetworkControllerState(): NetworkState;
|
|
483
|
+
export declare function getDefaultNetworkControllerState(additionalDefaultNetworks?: AdditionalDefaultNetwork[]): NetworkState;
|
|
474
484
|
/**
|
|
475
485
|
* Get a list of all network configurations.
|
|
476
486
|
*
|
|
@@ -607,6 +617,12 @@ export declare class NetworkController extends BaseController<typeof controllerN
|
|
|
607
617
|
provider: SwappableProxy<ProxyWithAccessibleTarget<Provider>>;
|
|
608
618
|
blockTracker: SwappableProxy<ProxyWithAccessibleTarget<BlockTracker>>;
|
|
609
619
|
} | undefined;
|
|
620
|
+
/**
|
|
621
|
+
* Accesses the chain ID from the selected network client.
|
|
622
|
+
*
|
|
623
|
+
* @returns The chain ID of the selected network client in hex format or undefined if there is no network client.
|
|
624
|
+
*/
|
|
625
|
+
getSelectedChainId(): Hex | undefined;
|
|
610
626
|
/**
|
|
611
627
|
* Internally, the Infura and custom network clients are categorized by type
|
|
612
628
|
* so that when accessing either kind of network client, TypeScript knows
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkController.d.cts","sourceRoot":"","sources":["../src/NetworkController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,EACpB,kCAAkC;AACnC,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,mCAAmC;AAC7D,OAAO,EACL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"NetworkController.d.cts","sourceRoot":"","sources":["../src/NetworkController.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { NetworkStatus } from "./constants.mjs";
|
|
|
11
11
|
import type { AutoManagedNetworkClient, ProxyWithAccessibleTarget } from "./create-auto-managed-network-client.mjs";
|
|
12
12
|
import type { RpcServiceOptions } from "./rpc-service/rpc-service.mjs";
|
|
13
13
|
import { NetworkClientType } from "./types.mjs";
|
|
14
|
-
import type { BlockTracker, Provider, CustomNetworkClientConfiguration, InfuraNetworkClientConfiguration } from "./types.mjs";
|
|
14
|
+
import type { BlockTracker, Provider, CustomNetworkClientConfiguration, InfuraNetworkClientConfiguration, AdditionalDefaultNetwork } from "./types.mjs";
|
|
15
15
|
export type Block = {
|
|
16
16
|
baseFeePerGas?: string;
|
|
17
17
|
};
|
|
@@ -56,7 +56,7 @@ export type InfuraRpcEndpoint = {
|
|
|
56
56
|
/**
|
|
57
57
|
* Alternate RPC endpoints to use when this endpoint is down.
|
|
58
58
|
*/
|
|
59
|
-
failoverUrls
|
|
59
|
+
failoverUrls?: string[];
|
|
60
60
|
/**
|
|
61
61
|
* The optional user-facing nickname of the endpoint.
|
|
62
62
|
*/
|
|
@@ -87,7 +87,7 @@ export type CustomRpcEndpoint = {
|
|
|
87
87
|
/**
|
|
88
88
|
* Alternate RPC endpoints to use when this endpoint is down.
|
|
89
89
|
*/
|
|
90
|
-
failoverUrls
|
|
90
|
+
failoverUrls?: string[];
|
|
91
91
|
/**
|
|
92
92
|
* The optional user-facing nickname of the endpoint.
|
|
93
93
|
*/
|
|
@@ -357,6 +357,7 @@ export type NetworkControllerRpcEndpointDegradedEvent = {
|
|
|
357
357
|
type: 'NetworkController:rpcEndpointDegraded';
|
|
358
358
|
payload: [
|
|
359
359
|
{
|
|
360
|
+
chainId: Hex;
|
|
360
361
|
endpointUrl: string;
|
|
361
362
|
}
|
|
362
363
|
];
|
|
@@ -388,6 +389,10 @@ export type NetworkControllerGetSelectedNetworkClientAction = {
|
|
|
388
389
|
type: `NetworkController:getSelectedNetworkClient`;
|
|
389
390
|
handler: NetworkController['getSelectedNetworkClient'];
|
|
390
391
|
};
|
|
392
|
+
export type NetworkControllerGetSelectedChainIdAction = {
|
|
393
|
+
type: 'NetworkController:getSelectedChainId';
|
|
394
|
+
handler: NetworkController['getSelectedChainId'];
|
|
395
|
+
};
|
|
391
396
|
export type NetworkControllerGetEIP1559CompatibilityAction = {
|
|
392
397
|
type: `NetworkController:getEIP1559Compatibility`;
|
|
393
398
|
handler: NetworkController['getEIP1559Compatibility'];
|
|
@@ -430,7 +435,7 @@ export type NetworkControllerUpdateNetworkAction = {
|
|
|
430
435
|
type: 'NetworkController:updateNetwork';
|
|
431
436
|
handler: NetworkController['updateNetwork'];
|
|
432
437
|
};
|
|
433
|
-
export type NetworkControllerActions = NetworkControllerGetStateAction | NetworkControllerGetEthQueryAction | NetworkControllerGetNetworkClientByIdAction | NetworkControllerGetSelectedNetworkClientAction | NetworkControllerGetEIP1559CompatibilityAction | NetworkControllerFindNetworkClientIdByChainIdAction | NetworkControllerSetActiveNetworkAction | NetworkControllerSetProviderTypeAction | NetworkControllerGetNetworkConfigurationByChainId | NetworkControllerGetNetworkConfigurationByNetworkClientId | NetworkControllerAddNetworkAction | NetworkControllerRemoveNetworkAction | NetworkControllerUpdateNetworkAction;
|
|
438
|
+
export type NetworkControllerActions = NetworkControllerGetStateAction | NetworkControllerGetEthQueryAction | NetworkControllerGetNetworkClientByIdAction | NetworkControllerGetSelectedNetworkClientAction | NetworkControllerGetSelectedChainIdAction | NetworkControllerGetEIP1559CompatibilityAction | NetworkControllerFindNetworkClientIdByChainIdAction | NetworkControllerSetActiveNetworkAction | NetworkControllerSetProviderTypeAction | NetworkControllerGetNetworkConfigurationByChainId | NetworkControllerGetNetworkConfigurationByNetworkClientId | NetworkControllerAddNetworkAction | NetworkControllerRemoveNetworkAction | NetworkControllerUpdateNetworkAction;
|
|
434
439
|
export type NetworkControllerMessenger = RestrictedMessenger<typeof controllerName, NetworkControllerActions, NetworkControllerEvents, never, never>;
|
|
435
440
|
/**
|
|
436
441
|
* Options for the NetworkController constructor.
|
|
@@ -463,14 +468,19 @@ export type NetworkControllerOptions = {
|
|
|
463
468
|
* automatically).
|
|
464
469
|
*/
|
|
465
470
|
getRpcServiceOptions: (rpcEndpointUrl: string) => Omit<RpcServiceOptions, 'failoverService' | 'endpointUrl'>;
|
|
471
|
+
/**
|
|
472
|
+
* An array of Hex Chain IDs representing the additional networks to be included as default.
|
|
473
|
+
*/
|
|
474
|
+
additionalDefaultNetworks?: AdditionalDefaultNetwork[];
|
|
466
475
|
};
|
|
467
476
|
/**
|
|
468
477
|
* Constructs properties for the NetworkController state whose values will be
|
|
469
478
|
* used if not provided to the constructor.
|
|
470
479
|
*
|
|
480
|
+
* @param [additionalDefaultNetworks] - An array of Hex Chain IDs representing the additional networks to be included as default.
|
|
471
481
|
* @returns The default NetworkController state.
|
|
472
482
|
*/
|
|
473
|
-
export declare function getDefaultNetworkControllerState(): NetworkState;
|
|
483
|
+
export declare function getDefaultNetworkControllerState(additionalDefaultNetworks?: AdditionalDefaultNetwork[]): NetworkState;
|
|
474
484
|
/**
|
|
475
485
|
* Get a list of all network configurations.
|
|
476
486
|
*
|
|
@@ -607,6 +617,12 @@ export declare class NetworkController extends BaseController<typeof controllerN
|
|
|
607
617
|
provider: SwappableProxy<ProxyWithAccessibleTarget<Provider>>;
|
|
608
618
|
blockTracker: SwappableProxy<ProxyWithAccessibleTarget<BlockTracker>>;
|
|
609
619
|
} | undefined;
|
|
620
|
+
/**
|
|
621
|
+
* Accesses the chain ID from the selected network client.
|
|
622
|
+
*
|
|
623
|
+
* @returns The chain ID of the selected network client in hex format or undefined if there is no network client.
|
|
624
|
+
*/
|
|
625
|
+
getSelectedChainId(): Hex | undefined;
|
|
610
626
|
/**
|
|
611
627
|
* Internally, the Infura and custom network clients are categorized by type
|
|
612
628
|
* so that when accessing either kind of network client, TypeScript knows
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkController.d.mts","sourceRoot":"","sources":["../src/NetworkController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,EACpB,kCAAkC;AACnC,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,mCAAmC;AAC7D,OAAO,EACL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"NetworkController.d.mts","sourceRoot":"","sources":["../src/NetworkController.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ function $importDefault(module) {
|
|
|
17
17
|
return module;
|
|
18
18
|
}
|
|
19
19
|
import { BaseController } from "@metamask/base-controller";
|
|
20
|
-
import { InfuraNetworkType, NetworkType, isSafeChainId, isInfuraNetworkType, ChainId, NetworksTicker, NetworkNickname } from "@metamask/controller-utils";
|
|
20
|
+
import { InfuraNetworkType, NetworkType, isSafeChainId, isInfuraNetworkType, ChainId, NetworksTicker, NetworkNickname, BUILT_IN_CUSTOM_NETWORKS_RPC, BUILT_IN_NETWORKS, BuiltInNetworkName } from "@metamask/controller-utils";
|
|
21
21
|
import $EthQuery from "@metamask/eth-query";
|
|
22
22
|
const EthQuery = $importDefault($EthQuery);
|
|
23
23
|
import { errorCodes } from "@metamask/rpc-errors";
|
|
@@ -30,7 +30,7 @@ const { cloneDeep } = $lodash;
|
|
|
30
30
|
import { createSelector } from "reselect";
|
|
31
31
|
import * as URI from "uri-js";
|
|
32
32
|
import { v4 as uuidV4 } from "uuid";
|
|
33
|
-
import { INFURA_BLOCKED_KEY, NetworkStatus } from "./constants.mjs";
|
|
33
|
+
import { DEPRECATED_NETWORKS, INFURA_BLOCKED_KEY, NetworkStatus } from "./constants.mjs";
|
|
34
34
|
import { createAutoManagedNetworkClient } from "./create-auto-managed-network-client.mjs";
|
|
35
35
|
import { projectLogger, createModuleLogger } from "./logger.mjs";
|
|
36
36
|
import { NetworkClientType } from "./types.mjs";
|
|
@@ -85,11 +85,33 @@ const controllerName = 'NetworkController';
|
|
|
85
85
|
* Constructs a value for the state property `networkConfigurationsByChainId`
|
|
86
86
|
* which will be used if it has not been provided to the constructor.
|
|
87
87
|
*
|
|
88
|
+
* @param [additionalDefaultNetworks] - An array of Hex Chain IDs representing the additional networks to be included as default.
|
|
88
89
|
* @returns The default value for `networkConfigurationsByChainId`.
|
|
89
90
|
*/
|
|
90
|
-
function getDefaultNetworkConfigurationsByChainId() {
|
|
91
|
+
function getDefaultNetworkConfigurationsByChainId(additionalDefaultNetworks = []) {
|
|
92
|
+
const infuraNetworks = getDefaultInfuraNetworkConfigurationsByChainId();
|
|
93
|
+
const customNetworks = getDefaultCustomNetworkConfigurationsByChainId();
|
|
94
|
+
return additionalDefaultNetworks.reduce((obj, chainId) => {
|
|
95
|
+
if (hasProperty(customNetworks, chainId)) {
|
|
96
|
+
obj[chainId] = customNetworks[chainId];
|
|
97
|
+
}
|
|
98
|
+
return obj;
|
|
99
|
+
},
|
|
100
|
+
// Always include the infura networks in the default networks
|
|
101
|
+
infuraNetworks);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Constructs a `networkConfigurationsByChainId` object for all default Infura networks.
|
|
105
|
+
*
|
|
106
|
+
* @returns The `networkConfigurationsByChainId` object of all Infura networks.
|
|
107
|
+
*/
|
|
108
|
+
function getDefaultInfuraNetworkConfigurationsByChainId() {
|
|
91
109
|
return Object.values(InfuraNetworkType).reduce((obj, infuraNetworkType) => {
|
|
92
110
|
const chainId = ChainId[infuraNetworkType];
|
|
111
|
+
// Skip deprecated network as default network.
|
|
112
|
+
if (DEPRECATED_NETWORKS.has(chainId)) {
|
|
113
|
+
return obj;
|
|
114
|
+
}
|
|
93
115
|
const rpcEndpointUrl =
|
|
94
116
|
// This ESLint rule mistakenly produces an error.
|
|
95
117
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
@@ -112,15 +134,42 @@ function getDefaultNetworkConfigurationsByChainId() {
|
|
|
112
134
|
return { ...obj, [chainId]: networkConfiguration };
|
|
113
135
|
}, {});
|
|
114
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Constructs a `networkConfigurationsByChainId` object for all default custom networks.
|
|
139
|
+
*
|
|
140
|
+
* @returns The `networkConfigurationsByChainId` object of all custom networks.
|
|
141
|
+
*/
|
|
142
|
+
function getDefaultCustomNetworkConfigurationsByChainId() {
|
|
143
|
+
const { ticker, rpcPrefs } = BUILT_IN_NETWORKS[BuiltInNetworkName.MegaETHTestnet];
|
|
144
|
+
return {
|
|
145
|
+
[ChainId[BuiltInNetworkName.MegaETHTestnet]]: {
|
|
146
|
+
blockExplorerUrls: [rpcPrefs.blockExplorerUrl],
|
|
147
|
+
chainId: ChainId[BuiltInNetworkName.MegaETHTestnet],
|
|
148
|
+
defaultRpcEndpointIndex: 0,
|
|
149
|
+
defaultBlockExplorerUrlIndex: 0,
|
|
150
|
+
name: NetworkNickname[BuiltInNetworkName.MegaETHTestnet],
|
|
151
|
+
nativeCurrency: ticker,
|
|
152
|
+
rpcEndpoints: [
|
|
153
|
+
{
|
|
154
|
+
failoverUrls: [],
|
|
155
|
+
networkClientId: BuiltInNetworkName.MegaETHTestnet,
|
|
156
|
+
type: RpcEndpointType.Custom,
|
|
157
|
+
url: BUILT_IN_CUSTOM_NETWORKS_RPC.MEGAETH_TESTNET,
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
}
|
|
115
163
|
/**
|
|
116
164
|
* Constructs properties for the NetworkController state whose values will be
|
|
117
165
|
* used if not provided to the constructor.
|
|
118
166
|
*
|
|
167
|
+
* @param [additionalDefaultNetworks] - An array of Hex Chain IDs representing the additional networks to be included as default.
|
|
119
168
|
* @returns The default NetworkController state.
|
|
120
169
|
*/
|
|
121
|
-
export function getDefaultNetworkControllerState() {
|
|
170
|
+
export function getDefaultNetworkControllerState(additionalDefaultNetworks) {
|
|
122
171
|
const networksMetadata = {};
|
|
123
|
-
const networkConfigurationsByChainId = getDefaultNetworkConfigurationsByChainId();
|
|
172
|
+
const networkConfigurationsByChainId = getDefaultNetworkConfigurationsByChainId(additionalDefaultNetworks);
|
|
124
173
|
return {
|
|
125
174
|
selectedNetworkClientId: InfuraNetworkType.mainnet,
|
|
126
175
|
networksMetadata,
|
|
@@ -269,8 +318,11 @@ export class NetworkController extends BaseController {
|
|
|
269
318
|
* @param options - The options; see {@link NetworkControllerOptions}.
|
|
270
319
|
*/
|
|
271
320
|
constructor(options) {
|
|
272
|
-
const { messenger, state, infuraProjectId, log, getRpcServiceOptions } = options;
|
|
273
|
-
const initialState = {
|
|
321
|
+
const { messenger, state, infuraProjectId, log, getRpcServiceOptions, additionalDefaultNetworks, } = options;
|
|
322
|
+
const initialState = {
|
|
323
|
+
...getDefaultNetworkControllerState(additionalDefaultNetworks),
|
|
324
|
+
...state,
|
|
325
|
+
};
|
|
274
326
|
validateNetworkControllerState(initialState);
|
|
275
327
|
if (!infuraProjectId || typeof infuraProjectId !== 'string') {
|
|
276
328
|
throw new Error('Invalid Infura project ID');
|
|
@@ -344,10 +396,8 @@ export class NetworkController extends BaseController {
|
|
|
344
396
|
// ESLint is mistaken here; `name` is a string.
|
|
345
397
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
346
398
|
`${this.name}:getNetworkConfigurationByNetworkClientId`, this.getNetworkConfigurationByNetworkClientId.bind(this));
|
|
347
|
-
this.messagingSystem.registerActionHandler(
|
|
348
|
-
|
|
349
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
350
|
-
`${this.name}:getSelectedNetworkClient`, this.getSelectedNetworkClient.bind(this));
|
|
399
|
+
this.messagingSystem.registerActionHandler(`${this.name}:getSelectedNetworkClient`, this.getSelectedNetworkClient.bind(this));
|
|
400
|
+
this.messagingSystem.registerActionHandler(`${this.name}:getSelectedChainId`, this.getSelectedChainId.bind(this));
|
|
351
401
|
this.messagingSystem.registerActionHandler(
|
|
352
402
|
// ESLint is mistaken here; `name` is a string.
|
|
353
403
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
@@ -386,6 +436,15 @@ export class NetworkController extends BaseController {
|
|
|
386
436
|
}
|
|
387
437
|
return undefined;
|
|
388
438
|
}
|
|
439
|
+
/**
|
|
440
|
+
* Accesses the chain ID from the selected network client.
|
|
441
|
+
*
|
|
442
|
+
* @returns The chain ID of the selected network client in hex format or undefined if there is no network client.
|
|
443
|
+
*/
|
|
444
|
+
getSelectedChainId() {
|
|
445
|
+
const networkConfiguration = this.getNetworkConfigurationByNetworkClientId(this.state.selectedNetworkClientId);
|
|
446
|
+
return networkConfiguration?.chainId;
|
|
447
|
+
}
|
|
389
448
|
/**
|
|
390
449
|
* Internally, the Infura and custom network clients are categorized by type
|
|
391
450
|
* so that when accessing either kind of network client, TypeScript knows
|