@metamask-previews/network-controller 26.0.0-preview-4ed214fa → 26.0.0-preview-e3eb8eca
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 +19 -0
- package/dist/NetworkController.cjs +37 -10
- package/dist/NetworkController.cjs.map +1 -1
- package/dist/NetworkController.d.cts +146 -11
- package/dist/NetworkController.d.cts.map +1 -1
- package/dist/NetworkController.d.mts +146 -11
- package/dist/NetworkController.d.mts.map +1 -1
- package/dist/NetworkController.mjs +37 -10
- 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 -1
- 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 -1
- package/dist/create-auto-managed-network-client.mjs.map +1 -1
- package/dist/create-network-client.cjs +115 -42
- 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 +115 -42
- 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 +255 -39
- package/dist/rpc-service/rpc-service-chain.cjs.map +1 -1
- package/dist/rpc-service/rpc-service-chain.d.cts +117 -25
- package/dist/rpc-service/rpc-service-chain.d.cts.map +1 -1
- package/dist/rpc-service/rpc-service-chain.d.mts +117 -25
- package/dist/rpc-service/rpc-service-chain.d.mts.map +1 -1
- package/dist/rpc-service/rpc-service-chain.mjs +255 -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 +63 -33
- package/dist/rpc-service/rpc-service.cjs.map +1 -1
- package/dist/rpc-service/rpc-service.d.cts +35 -24
- package/dist/rpc-service/rpc-service.d.cts.map +1 -1
- package/dist/rpc-service/rpc-service.d.mts +35 -24
- package/dist/rpc-service/rpc-service.d.mts.map +1 -1
- package/dist/rpc-service/rpc-service.mjs +64 -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 +30 -3
- package/dist/rpc-service/shared.d.cts.map +1 -1
- package/dist/rpc-service/shared.d.mts +30 -3
- package/dist/rpc-service/shared.d.mts.map +1 -1
- package/dist/rpc-service/shared.mjs.map +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,25 @@ 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 `NetworkController:rpcEndpointChainAvailable` messenger event ([#7166](https://github.com/MetaMask/core/pull/7166))
|
|
13
|
+
- This is a counterpart to the (new) `NetworkController:rpcEndpointChainUnavailable` and `NetworkController:rpcEndpointChainDegraded` events, but is published when a successful request to an endpoint within a chain of endpoints is made either initially or following a previously established degraded or unavailable status.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **BREAKING:** Split up and update payload data for `NetworkController:rpcEndpointDegraded` and `NetworkController:rpcEndpointUnavailable` ([#7166](https://github.com/MetaMask/core/pull/7166))
|
|
18
|
+
- `NetworkController:rpcEndpointDegraded` and `NetworkController:rpcEndpointUnavailable` still exist and retain the same behavior as before.
|
|
19
|
+
- New events are `NetworkController:rpcEndpointChainDegraded` and `NetworkController:rpcEndpointChainUnavailable`, and are designed to represent an entire chain of endpoints. They are also guaranteed to not be published multiple times in a row. In particular, `NetworkController:rpcEndpointUnavailable` is published only after trying all of the endpoints for a chain and when the underlying circuit for the last endpoint breaks, not as each primary's or failover's circuit breaks.
|
|
20
|
+
- The event payloads for all events have been changed as well: `failoverEndpointUrl` has been renamed to `endpointUrl`, and `endpointUrl` has been renamed to `primaryEndpointUrl`. In addition, `networkClientId` has been added to the payload.
|
|
21
|
+
- **BREAKING:** Rename and update payload data for `NetworkController:rpcEndpointRequestRetried` ([#7166](https://github.com/MetaMask/core/pull/7166))
|
|
22
|
+
- This event is now called `NetworkController:rpcEndpointRetried`.
|
|
23
|
+
- The event payload has been changed as well: `failoverEndpointUrl` has been renamed to `endpointUrl`, and `endpointUrl` has been renamed to `primaryEndpointUrl`. In addition, `networkClientId` and `attempt` have been added to the payload.
|
|
24
|
+
- **BREAKING:** Update `AbstractRpcService`/`RpcServiceRequestable` to remove `{ isolated: true }` from the `onBreak` event data type ([#7166](https://github.com/MetaMask/core/pull/7166))
|
|
25
|
+
- This represented the error produced when `.isolate` is called on a Cockatiel circuit breaker policy, which we never do.
|
|
26
|
+
- Statuses of networks (captured in the NetworkController `networksMetadata` state property) are now kept up to date as requests are made ([#7186](https://github.com/MetaMask/core/pull/7186))
|
|
27
|
+
- Bump `@metamask/controller-utils` from `^11.14.1` to `^11.15.0` ([#7003](https://github.com/MetaMask/core/pull/7003))
|
|
28
|
+
|
|
10
29
|
## [26.0.0]
|
|
11
30
|
|
|
12
31
|
### Added
|
|
@@ -444,6 +444,21 @@ class NetworkController extends base_controller_1.BaseController {
|
|
|
444
444
|
this.messenger.registerActionHandler(`${this.name}:addNetwork`, this.addNetwork.bind(this));
|
|
445
445
|
this.messenger.registerActionHandler(`${this.name}:removeNetwork`, this.removeNetwork.bind(this));
|
|
446
446
|
this.messenger.registerActionHandler(`${this.name}:updateNetwork`, this.updateNetwork.bind(this));
|
|
447
|
+
this.messenger.subscribe(`${this.name}:rpcEndpointChainUnavailable`, ({ networkClientId }) => {
|
|
448
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
|
|
449
|
+
networkStatus: constants_1.NetworkStatus.Unavailable,
|
|
450
|
+
});
|
|
451
|
+
});
|
|
452
|
+
this.messenger.subscribe(`${this.name}:rpcEndpointChainDegraded`, ({ networkClientId }) => {
|
|
453
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
|
|
454
|
+
networkStatus: constants_1.NetworkStatus.Degraded,
|
|
455
|
+
});
|
|
456
|
+
});
|
|
457
|
+
this.messenger.subscribe(`${this.name}:rpcEndpointChainAvailable`, ({ networkClientId }) => {
|
|
458
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
|
|
459
|
+
networkStatus: constants_1.NetworkStatus.Available,
|
|
460
|
+
});
|
|
461
|
+
});
|
|
447
462
|
}
|
|
448
463
|
/**
|
|
449
464
|
* Enables the RPC failover functionality. That is, if any RPC endpoints are
|
|
@@ -1144,7 +1159,10 @@ async function _NetworkController_determineNetworkMetadata(networkClientId) {
|
|
|
1144
1159
|
*/
|
|
1145
1160
|
async function _NetworkController_lookupGivenNetwork(networkClientId) {
|
|
1146
1161
|
const { networkStatus, isEIP1559Compatible } = await __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_determineNetworkMetadata).call(this, networkClientId);
|
|
1147
|
-
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId,
|
|
1162
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
|
|
1163
|
+
networkStatus,
|
|
1164
|
+
isEIP1559Compatible,
|
|
1165
|
+
});
|
|
1148
1166
|
}, _NetworkController_lookupSelectedNetwork =
|
|
1149
1167
|
/**
|
|
1150
1168
|
* Uses a request for the latest block to gather the following information on
|
|
@@ -1204,7 +1222,10 @@ async function _NetworkController_lookupSelectedNetwork() {
|
|
|
1204
1222
|
throw error;
|
|
1205
1223
|
}
|
|
1206
1224
|
}
|
|
1207
|
-
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, this.state.selectedNetworkClientId,
|
|
1225
|
+
__classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, this.state.selectedNetworkClientId, {
|
|
1226
|
+
networkStatus,
|
|
1227
|
+
isEIP1559Compatible,
|
|
1228
|
+
});
|
|
1208
1229
|
if (isInfura) {
|
|
1209
1230
|
if (networkStatus === constants_1.NetworkStatus.Available) {
|
|
1210
1231
|
this.messenger.publish('NetworkController:infuraIsUnblocked');
|
|
@@ -1219,7 +1240,7 @@ async function _NetworkController_lookupSelectedNetwork() {
|
|
|
1219
1240
|
// previously connected to an Infura network that was blocked
|
|
1220
1241
|
this.messenger.publish('NetworkController:infuraIsUnblocked');
|
|
1221
1242
|
}
|
|
1222
|
-
}, _NetworkController_updateMetadataForNetwork = function _NetworkController_updateMetadataForNetwork(networkClientId,
|
|
1243
|
+
}, _NetworkController_updateMetadataForNetwork = function _NetworkController_updateMetadataForNetwork(networkClientId, metadata) {
|
|
1223
1244
|
this.update((state) => {
|
|
1224
1245
|
if (state.networksMetadata[networkClientId] === undefined) {
|
|
1225
1246
|
state.networksMetadata[networkClientId] = {
|
|
@@ -1227,13 +1248,15 @@ async function _NetworkController_lookupSelectedNetwork() {
|
|
|
1227
1248
|
EIPS: {},
|
|
1228
1249
|
};
|
|
1229
1250
|
}
|
|
1230
|
-
const
|
|
1231
|
-
|
|
1232
|
-
if (isEIP1559Compatible
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1251
|
+
const newMetadata = state.networksMetadata[networkClientId];
|
|
1252
|
+
newMetadata.status = metadata.networkStatus;
|
|
1253
|
+
if ('isEIP1559Compatible' in metadata) {
|
|
1254
|
+
if (metadata.isEIP1559Compatible === undefined) {
|
|
1255
|
+
delete newMetadata.EIPS[1559];
|
|
1256
|
+
}
|
|
1257
|
+
else {
|
|
1258
|
+
newMetadata.EIPS[1559] = metadata.isEIP1559Compatible;
|
|
1259
|
+
}
|
|
1237
1260
|
}
|
|
1238
1261
|
});
|
|
1239
1262
|
}, _NetworkController_getLatestBlock = function _NetworkController_getLatestBlock(networkClientId) {
|
|
@@ -1399,6 +1422,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1399
1422
|
for (const addedRpcEndpoint of addedRpcEndpoints) {
|
|
1400
1423
|
if (addedRpcEndpoint.type === RpcEndpointType.Infura) {
|
|
1401
1424
|
autoManagedNetworkClientRegistry[types_1.NetworkClientType.Infura][addedRpcEndpoint.networkClientId] = (0, create_auto_managed_network_client_1.createAutoManagedNetworkClient)({
|
|
1425
|
+
networkClientId: addedRpcEndpoint.networkClientId,
|
|
1402
1426
|
networkClientConfiguration: {
|
|
1403
1427
|
type: types_1.NetworkClientType.Infura,
|
|
1404
1428
|
chainId: networkFields.chainId,
|
|
@@ -1416,6 +1440,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1416
1440
|
}
|
|
1417
1441
|
else {
|
|
1418
1442
|
autoManagedNetworkClientRegistry[types_1.NetworkClientType.Custom][addedRpcEndpoint.networkClientId] = (0, create_auto_managed_network_client_1.createAutoManagedNetworkClient)({
|
|
1443
|
+
networkClientId: addedRpcEndpoint.networkClientId,
|
|
1419
1444
|
networkClientConfiguration: {
|
|
1420
1445
|
type: types_1.NetworkClientType.Custom,
|
|
1421
1446
|
chainId: networkFields.chainId,
|
|
@@ -1475,6 +1500,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1475
1500
|
return [
|
|
1476
1501
|
rpcEndpoint.networkClientId,
|
|
1477
1502
|
(0, create_auto_managed_network_client_1.createAutoManagedNetworkClient)({
|
|
1503
|
+
networkClientId: rpcEndpoint.networkClientId,
|
|
1478
1504
|
networkClientConfiguration: {
|
|
1479
1505
|
type: types_1.NetworkClientType.Infura,
|
|
1480
1506
|
network: infuraNetworkName,
|
|
@@ -1494,6 +1520,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
|
|
|
1494
1520
|
return [
|
|
1495
1521
|
rpcEndpoint.networkClientId,
|
|
1496
1522
|
(0, create_auto_managed_network_client_1.createAutoManagedNetworkClient)({
|
|
1523
|
+
networkClientId: rpcEndpoint.networkClientId,
|
|
1497
1524
|
networkClientConfiguration: {
|
|
1498
1525
|
type: types_1.NetworkClientType.Custom,
|
|
1499
1526
|
chainId: networkConfiguration.chainId,
|