@metamask/network-controller 26.0.0 → 27.1.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 +51 -1
- package/dist/NetworkController.cjs +61 -38
- package/dist/NetworkController.cjs.map +1 -1
- package/dist/NetworkController.d.cts +137 -14
- package/dist/NetworkController.d.cts.map +1 -1
- package/dist/NetworkController.d.mts +137 -14
- package/dist/NetworkController.d.mts.map +1 -1
- package/dist/NetworkController.mjs +61 -38
- package/dist/NetworkController.mjs.map +1 -1
- package/dist/constants.cjs +18 -10
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +18 -10
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +18 -10
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +18 -10
- package/dist/constants.mjs.map +1 -1
- package/dist/create-auto-managed-network-client.cjs +4 -9
- package/dist/create-auto-managed-network-client.cjs.map +1 -1
- package/dist/create-auto-managed-network-client.d.cts +5 -2
- package/dist/create-auto-managed-network-client.d.cts.map +1 -1
- package/dist/create-auto-managed-network-client.d.mts +5 -2
- package/dist/create-auto-managed-network-client.d.mts.map +1 -1
- package/dist/create-auto-managed-network-client.mjs +4 -9
- package/dist/create-auto-managed-network-client.mjs.map +1 -1
- package/dist/create-network-client.cjs +138 -43
- package/dist/create-network-client.cjs.map +1 -1
- package/dist/create-network-client.d.cts +5 -2
- package/dist/create-network-client.d.cts.map +1 -1
- package/dist/create-network-client.d.mts +5 -2
- package/dist/create-network-client.d.mts.map +1 -1
- package/dist/create-network-client.mjs +138 -43
- 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/rpc-service/rpc-service-chain.cjs +247 -39
- package/dist/rpc-service/rpc-service-chain.cjs.map +1 -1
- package/dist/rpc-service/rpc-service-chain.d.cts +107 -29
- package/dist/rpc-service/rpc-service-chain.d.cts.map +1 -1
- package/dist/rpc-service/rpc-service-chain.d.mts +107 -29
- package/dist/rpc-service/rpc-service-chain.d.mts.map +1 -1
- package/dist/rpc-service/rpc-service-chain.mjs +247 -39
- package/dist/rpc-service/rpc-service-chain.mjs.map +1 -1
- package/dist/rpc-service/rpc-service-requestable.cjs.map +1 -1
- package/dist/rpc-service/rpc-service-requestable.d.cts +15 -5
- package/dist/rpc-service/rpc-service-requestable.d.cts.map +1 -1
- package/dist/rpc-service/rpc-service-requestable.d.mts +15 -5
- package/dist/rpc-service/rpc-service-requestable.d.mts.map +1 -1
- package/dist/rpc-service/rpc-service-requestable.mjs.map +1 -1
- package/dist/rpc-service/rpc-service.cjs +66 -33
- package/dist/rpc-service/rpc-service.cjs.map +1 -1
- package/dist/rpc-service/rpc-service.d.cts +35 -26
- package/dist/rpc-service/rpc-service.d.cts.map +1 -1
- package/dist/rpc-service/rpc-service.d.mts +35 -26
- package/dist/rpc-service/rpc-service.d.mts.map +1 -1
- package/dist/rpc-service/rpc-service.mjs +67 -34
- package/dist/rpc-service/rpc-service.mjs.map +1 -1
- package/dist/rpc-service/shared.cjs.map +1 -1
- package/dist/rpc-service/shared.d.cts +25 -3
- package/dist/rpc-service/shared.d.cts.map +1 -1
- package/dist/rpc-service/shared.d.mts +25 -3
- package/dist/rpc-service/shared.d.mts.map +1 -1
- package/dist/rpc-service/shared.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +5 -7
|
@@ -141,6 +141,7 @@ function getDefaultCustomNetworkConfigurationsByChainId() {
|
|
|
141
141
|
// default networks.
|
|
142
142
|
return {
|
|
143
143
|
[ChainId['megaeth-testnet']]: getCustomNetworkConfiguration(CustomNetworkType['megaeth-testnet']),
|
|
144
|
+
[ChainId['megaeth-testnet-v2']]: getCustomNetworkConfiguration(CustomNetworkType['megaeth-testnet-v2']),
|
|
144
145
|
[ChainId['monad-testnet']]: getCustomNetworkConfiguration(CustomNetworkType['monad-testnet']),
|
|
145
146
|
};
|
|
146
147
|
}
|
|
@@ -420,6 +421,21 @@ export class NetworkController extends BaseController {
|
|
|
420
421
|
this.messenger.registerActionHandler(`${this.name}:addNetwork`, this.addNetwork.bind(this));
|
|
421
422
|
this.messenger.registerActionHandler(`${this.name}:removeNetwork`, this.removeNetwork.bind(this));
|
|
422
423
|
this.messenger.registerActionHandler(`${this.name}:updateNetwork`, this.updateNetwork.bind(this));
|
|
424
|
+
this.messenger.subscribe(`${this.name}:rpcEndpointChainUnavailable`, ({ networkClientId }) => {
|
|
425
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
|
|
426
|
+
networkStatus: NetworkStatus.Unavailable,
|
|
427
|
+
});
|
|
428
|
+
});
|
|
429
|
+
this.messenger.subscribe(`${this.name}:rpcEndpointChainDegraded`, ({ networkClientId }) => {
|
|
430
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
|
|
431
|
+
networkStatus: NetworkStatus.Degraded,
|
|
432
|
+
});
|
|
433
|
+
});
|
|
434
|
+
this.messenger.subscribe(`${this.name}:rpcEndpointChainAvailable`, ({ networkClientId }) => {
|
|
435
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
|
|
436
|
+
networkStatus: NetworkStatus.Available,
|
|
437
|
+
});
|
|
438
|
+
});
|
|
423
439
|
}
|
|
424
440
|
/**
|
|
425
441
|
* Enables the RPC failover functionality. That is, if any RPC endpoints are
|
|
@@ -612,7 +628,7 @@ export class NetworkController extends BaseController {
|
|
|
612
628
|
}
|
|
613
629
|
async get1559CompatibilityWithNetworkClientId(networkClientId) {
|
|
614
630
|
let metadata = this.state.networksMetadata[networkClientId];
|
|
615
|
-
if (metadata === undefined) {
|
|
631
|
+
if (metadata?.EIPS[1559] === undefined) {
|
|
616
632
|
await this.lookupNetwork(networkClientId);
|
|
617
633
|
metadata = this.state.networksMetadata[networkClientId];
|
|
618
634
|
}
|
|
@@ -787,7 +803,17 @@ export class NetworkController extends BaseController {
|
|
|
787
803
|
rpcEndpoint: newRpcEndpoint,
|
|
788
804
|
});
|
|
789
805
|
}
|
|
790
|
-
else if (existingRpcEndpointForReplaceWhenChainNotChanged
|
|
806
|
+
else if (existingRpcEndpointForReplaceWhenChainNotChanged === undefined) {
|
|
807
|
+
const newRpcEndpoint = newRpcEndpointFields.type === RpcEndpointType.Infura
|
|
808
|
+
? newRpcEndpointFields
|
|
809
|
+
: { ...newRpcEndpointFields, networkClientId: uuidV4() };
|
|
810
|
+
const networkClientOperation = {
|
|
811
|
+
type: 'add',
|
|
812
|
+
rpcEndpoint: newRpcEndpoint,
|
|
813
|
+
};
|
|
814
|
+
networkClientOperations.push(networkClientOperation);
|
|
815
|
+
}
|
|
816
|
+
else {
|
|
791
817
|
let newRpcEndpoint;
|
|
792
818
|
/* istanbul ignore if */
|
|
793
819
|
if (newRpcEndpointFields.type === RpcEndpointType.Infura) {
|
|
@@ -810,16 +836,6 @@ export class NetworkController extends BaseController {
|
|
|
810
836
|
newRpcEndpoint,
|
|
811
837
|
});
|
|
812
838
|
}
|
|
813
|
-
else {
|
|
814
|
-
const newRpcEndpoint = newRpcEndpointFields.type === RpcEndpointType.Infura
|
|
815
|
-
? newRpcEndpointFields
|
|
816
|
-
: { ...newRpcEndpointFields, networkClientId: uuidV4() };
|
|
817
|
-
const networkClientOperation = {
|
|
818
|
-
type: 'add',
|
|
819
|
-
rpcEndpoint: newRpcEndpoint,
|
|
820
|
-
};
|
|
821
|
-
networkClientOperations.push(networkClientOperation);
|
|
822
|
-
}
|
|
823
839
|
}
|
|
824
840
|
for (const existingRpcEndpoint of existingNetworkConfiguration.rpcEndpoints) {
|
|
825
841
|
if (!networkClientOperations.some((networkClientOperation) => {
|
|
@@ -1119,7 +1135,10 @@ async function _NetworkController_determineNetworkMetadata(networkClientId) {
|
|
|
1119
1135
|
*/
|
|
1120
1136
|
async function _NetworkController_lookupGivenNetwork(networkClientId) {
|
|
1121
1137
|
const { networkStatus, isEIP1559Compatible } = await __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_determineNetworkMetadata).call(this, networkClientId);
|
|
1122
|
-
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId,
|
|
1138
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
|
|
1139
|
+
networkStatus,
|
|
1140
|
+
isEIP1559Compatible,
|
|
1141
|
+
});
|
|
1123
1142
|
}, _NetworkController_lookupSelectedNetwork =
|
|
1124
1143
|
/**
|
|
1125
1144
|
* Uses a request for the latest block to gather the following information on
|
|
@@ -1179,7 +1198,10 @@ async function _NetworkController_lookupSelectedNetwork() {
|
|
|
1179
1198
|
throw error;
|
|
1180
1199
|
}
|
|
1181
1200
|
}
|
|
1182
|
-
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, this.state.selectedNetworkClientId,
|
|
1201
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, this.state.selectedNetworkClientId, {
|
|
1202
|
+
networkStatus,
|
|
1203
|
+
isEIP1559Compatible,
|
|
1204
|
+
});
|
|
1183
1205
|
if (isInfura) {
|
|
1184
1206
|
if (networkStatus === NetworkStatus.Available) {
|
|
1185
1207
|
this.messenger.publish('NetworkController:infuraIsUnblocked');
|
|
@@ -1194,27 +1216,25 @@ async function _NetworkController_lookupSelectedNetwork() {
|
|
|
1194
1216
|
// previously connected to an Infura network that was blocked
|
|
1195
1217
|
this.messenger.publish('NetworkController:infuraIsUnblocked');
|
|
1196
1218
|
}
|
|
1197
|
-
}, _NetworkController_updateMetadataForNetwork = function _NetworkController_updateMetadataForNetwork(networkClientId,
|
|
1219
|
+
}, _NetworkController_updateMetadataForNetwork = function _NetworkController_updateMetadataForNetwork(networkClientId, metadata) {
|
|
1198
1220
|
this.update((state) => {
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1221
|
+
var _a;
|
|
1222
|
+
(_a = state.networksMetadata)[networkClientId] ?? (_a[networkClientId] = {
|
|
1223
|
+
status: NetworkStatus.Unknown,
|
|
1224
|
+
EIPS: {},
|
|
1225
|
+
});
|
|
1226
|
+
const newMetadata = state.networksMetadata[networkClientId];
|
|
1227
|
+
newMetadata.status = metadata.networkStatus;
|
|
1228
|
+
if ('isEIP1559Compatible' in metadata) {
|
|
1229
|
+
if (metadata.isEIP1559Compatible === undefined) {
|
|
1230
|
+
delete newMetadata.EIPS[1559];
|
|
1231
|
+
}
|
|
1232
|
+
else {
|
|
1233
|
+
newMetadata.EIPS[1559] = metadata.isEIP1559Compatible;
|
|
1234
|
+
}
|
|
1212
1235
|
}
|
|
1213
1236
|
});
|
|
1214
|
-
}, _NetworkController_getLatestBlock = function _NetworkController_getLatestBlock(networkClientId) {
|
|
1215
|
-
if (networkClientId === undefined) {
|
|
1216
|
-
networkClientId = this.state.selectedNetworkClientId;
|
|
1217
|
-
}
|
|
1237
|
+
}, _NetworkController_getLatestBlock = function _NetworkController_getLatestBlock(networkClientId = this.state.selectedNetworkClientId) {
|
|
1218
1238
|
const networkClient = this.getNetworkClientById(networkClientId);
|
|
1219
1239
|
const ethQuery = new EthQuery(networkClient.provider);
|
|
1220
1240
|
return new Promise((resolve, reject) => {
|
|
@@ -1374,6 +1394,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1374
1394
|
for (const addedRpcEndpoint of addedRpcEndpoints) {
|
|
1375
1395
|
if (addedRpcEndpoint.type === RpcEndpointType.Infura) {
|
|
1376
1396
|
autoManagedNetworkClientRegistry[NetworkClientType.Infura][addedRpcEndpoint.networkClientId] = createAutoManagedNetworkClient({
|
|
1397
|
+
networkClientId: addedRpcEndpoint.networkClientId,
|
|
1377
1398
|
networkClientConfiguration: {
|
|
1378
1399
|
type: NetworkClientType.Infura,
|
|
1379
1400
|
chainId: networkFields.chainId,
|
|
@@ -1391,6 +1412,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1391
1412
|
}
|
|
1392
1413
|
else {
|
|
1393
1414
|
autoManagedNetworkClientRegistry[NetworkClientType.Custom][addedRpcEndpoint.networkClientId] = createAutoManagedNetworkClient({
|
|
1415
|
+
networkClientId: addedRpcEndpoint.networkClientId,
|
|
1394
1416
|
networkClientConfiguration: {
|
|
1395
1417
|
type: NetworkClientType.Custom,
|
|
1396
1418
|
chainId: networkFields.chainId,
|
|
@@ -1450,6 +1472,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1450
1472
|
return [
|
|
1451
1473
|
rpcEndpoint.networkClientId,
|
|
1452
1474
|
createAutoManagedNetworkClient({
|
|
1475
|
+
networkClientId: rpcEndpoint.networkClientId,
|
|
1453
1476
|
networkClientConfiguration: {
|
|
1454
1477
|
type: NetworkClientType.Infura,
|
|
1455
1478
|
network: infuraNetworkName,
|
|
@@ -1469,6 +1492,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1469
1492
|
return [
|
|
1470
1493
|
rpcEndpoint.networkClientId,
|
|
1471
1494
|
createAutoManagedNetworkClient({
|
|
1495
|
+
networkClientId: rpcEndpoint.networkClientId,
|
|
1472
1496
|
networkClientConfiguration: {
|
|
1473
1497
|
type: NetworkClientType.Custom,
|
|
1474
1498
|
chainId: networkConfiguration.chainId,
|
|
@@ -1518,13 +1542,12 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1518
1542
|
}
|
|
1519
1543
|
__classPrivateFieldSet(this, _NetworkController_autoManagedNetworkClient, autoManagedNetworkClient, "f");
|
|
1520
1544
|
this.update((state) => {
|
|
1545
|
+
var _a;
|
|
1521
1546
|
state.selectedNetworkClientId = networkClientId;
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
};
|
|
1527
|
-
}
|
|
1547
|
+
(_a = state.networksMetadata)[networkClientId] ?? (_a[networkClientId] = {
|
|
1548
|
+
status: NetworkStatus.Unknown,
|
|
1549
|
+
EIPS: {},
|
|
1550
|
+
});
|
|
1528
1551
|
updateState?.(state);
|
|
1529
1552
|
});
|
|
1530
1553
|
if (__classPrivateFieldGet(this, _NetworkController_providerProxy, "f")) {
|