@metamask-previews/network-controller 25.0.0-preview-ca16f8f → 25.0.0-preview-dabf9bd8

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.
Files changed (68) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/NetworkController.cjs +37 -10
  3. package/dist/NetworkController.cjs.map +1 -1
  4. package/dist/NetworkController.d.cts +186 -11
  5. package/dist/NetworkController.d.cts.map +1 -1
  6. package/dist/NetworkController.d.mts +186 -11
  7. package/dist/NetworkController.d.mts.map +1 -1
  8. package/dist/NetworkController.mjs +37 -10
  9. package/dist/NetworkController.mjs.map +1 -1
  10. package/dist/constants.cjs +13 -10
  11. package/dist/constants.cjs.map +1 -1
  12. package/dist/constants.d.cts +13 -10
  13. package/dist/constants.d.cts.map +1 -1
  14. package/dist/constants.d.mts +13 -10
  15. package/dist/constants.d.mts.map +1 -1
  16. package/dist/constants.mjs +13 -10
  17. package/dist/constants.mjs.map +1 -1
  18. package/dist/create-auto-managed-network-client.cjs +4 -1
  19. package/dist/create-auto-managed-network-client.cjs.map +1 -1
  20. package/dist/create-auto-managed-network-client.d.cts +5 -2
  21. package/dist/create-auto-managed-network-client.d.cts.map +1 -1
  22. package/dist/create-auto-managed-network-client.d.mts +5 -2
  23. package/dist/create-auto-managed-network-client.d.mts.map +1 -1
  24. package/dist/create-auto-managed-network-client.mjs +4 -1
  25. package/dist/create-auto-managed-network-client.mjs.map +1 -1
  26. package/dist/create-network-client.cjs +116 -42
  27. package/dist/create-network-client.cjs.map +1 -1
  28. package/dist/create-network-client.d.cts +5 -2
  29. package/dist/create-network-client.d.cts.map +1 -1
  30. package/dist/create-network-client.d.mts +5 -2
  31. package/dist/create-network-client.d.mts.map +1 -1
  32. package/dist/create-network-client.mjs +116 -42
  33. package/dist/create-network-client.mjs.map +1 -1
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.d.cts +1 -1
  36. package/dist/index.d.cts.map +1 -1
  37. package/dist/index.d.mts +1 -1
  38. package/dist/index.d.mts.map +1 -1
  39. package/dist/index.mjs.map +1 -1
  40. package/dist/rpc-service/rpc-service-chain.cjs +256 -39
  41. package/dist/rpc-service/rpc-service-chain.cjs.map +1 -1
  42. package/dist/rpc-service/rpc-service-chain.d.cts +117 -25
  43. package/dist/rpc-service/rpc-service-chain.d.cts.map +1 -1
  44. package/dist/rpc-service/rpc-service-chain.d.mts +117 -25
  45. package/dist/rpc-service/rpc-service-chain.d.mts.map +1 -1
  46. package/dist/rpc-service/rpc-service-chain.mjs +256 -39
  47. package/dist/rpc-service/rpc-service-chain.mjs.map +1 -1
  48. package/dist/rpc-service/rpc-service-requestable.cjs.map +1 -1
  49. package/dist/rpc-service/rpc-service-requestable.d.cts +15 -5
  50. package/dist/rpc-service/rpc-service-requestable.d.cts.map +1 -1
  51. package/dist/rpc-service/rpc-service-requestable.d.mts +15 -5
  52. package/dist/rpc-service/rpc-service-requestable.d.mts.map +1 -1
  53. package/dist/rpc-service/rpc-service-requestable.mjs.map +1 -1
  54. package/dist/rpc-service/rpc-service.cjs +62 -33
  55. package/dist/rpc-service/rpc-service.cjs.map +1 -1
  56. package/dist/rpc-service/rpc-service.d.cts +35 -24
  57. package/dist/rpc-service/rpc-service.d.cts.map +1 -1
  58. package/dist/rpc-service/rpc-service.d.mts +35 -24
  59. package/dist/rpc-service/rpc-service.d.mts.map +1 -1
  60. package/dist/rpc-service/rpc-service.mjs +63 -34
  61. package/dist/rpc-service/rpc-service.mjs.map +1 -1
  62. package/dist/rpc-service/shared.cjs.map +1 -1
  63. package/dist/rpc-service/shared.d.cts +30 -3
  64. package/dist/rpc-service/shared.d.cts.map +1 -1
  65. package/dist/rpc-service/shared.d.mts +30 -3
  66. package/dist/rpc-service/shared.d.mts.map +1 -1
  67. package/dist/rpc-service/shared.mjs.map +1 -1
  68. package/package.json +2 -1
@@ -420,6 +420,21 @@ export class NetworkController extends BaseController {
420
420
  this.messenger.registerActionHandler(`${this.name}:addNetwork`, this.addNetwork.bind(this));
421
421
  this.messenger.registerActionHandler(`${this.name}:removeNetwork`, this.removeNetwork.bind(this));
422
422
  this.messenger.registerActionHandler(`${this.name}:updateNetwork`, this.updateNetwork.bind(this));
423
+ this.messenger.subscribe(`${this.name}:rpcEndpointChainUnavailable`, ({ networkClientId }) => {
424
+ __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
425
+ networkStatus: NetworkStatus.Unavailable,
426
+ });
427
+ });
428
+ this.messenger.subscribe(`${this.name}:rpcEndpointChainDegraded`, ({ networkClientId }) => {
429
+ __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
430
+ networkStatus: NetworkStatus.Degraded,
431
+ });
432
+ });
433
+ this.messenger.subscribe(`${this.name}:rpcEndpointChainAvailable`, ({ networkClientId }) => {
434
+ __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
435
+ networkStatus: NetworkStatus.Available,
436
+ });
437
+ });
423
438
  }
424
439
  /**
425
440
  * Enables the RPC failover functionality. That is, if any RPC endpoints are
@@ -1119,7 +1134,10 @@ async function _NetworkController_determineNetworkMetadata(networkClientId) {
1119
1134
  */
1120
1135
  async function _NetworkController_lookupGivenNetwork(networkClientId) {
1121
1136
  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, networkStatus, isEIP1559Compatible);
1137
+ __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, networkClientId, {
1138
+ networkStatus,
1139
+ isEIP1559Compatible,
1140
+ });
1123
1141
  }, _NetworkController_lookupSelectedNetwork =
1124
1142
  /**
1125
1143
  * Uses a request for the latest block to gather the following information on
@@ -1179,7 +1197,10 @@ async function _NetworkController_lookupSelectedNetwork() {
1179
1197
  throw error;
1180
1198
  }
1181
1199
  }
1182
- __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, this.state.selectedNetworkClientId, networkStatus, isEIP1559Compatible);
1200
+ __classPrivateFieldGet(this, _NetworkController_instances, "m", _NetworkController_updateMetadataForNetwork).call(this, this.state.selectedNetworkClientId, {
1201
+ networkStatus,
1202
+ isEIP1559Compatible,
1203
+ });
1183
1204
  if (isInfura) {
1184
1205
  if (networkStatus === NetworkStatus.Available) {
1185
1206
  this.messenger.publish('NetworkController:infuraIsUnblocked');
@@ -1194,7 +1215,7 @@ async function _NetworkController_lookupSelectedNetwork() {
1194
1215
  // previously connected to an Infura network that was blocked
1195
1216
  this.messenger.publish('NetworkController:infuraIsUnblocked');
1196
1217
  }
1197
- }, _NetworkController_updateMetadataForNetwork = function _NetworkController_updateMetadataForNetwork(networkClientId, networkStatus, isEIP1559Compatible) {
1218
+ }, _NetworkController_updateMetadataForNetwork = function _NetworkController_updateMetadataForNetwork(networkClientId, metadata) {
1198
1219
  this.update((state) => {
1199
1220
  if (state.networksMetadata[networkClientId] === undefined) {
1200
1221
  state.networksMetadata[networkClientId] = {
@@ -1202,13 +1223,15 @@ async function _NetworkController_lookupSelectedNetwork() {
1202
1223
  EIPS: {},
1203
1224
  };
1204
1225
  }
1205
- const meta = state.networksMetadata[networkClientId];
1206
- meta.status = networkStatus;
1207
- if (isEIP1559Compatible === undefined) {
1208
- delete meta.EIPS[1559];
1209
- }
1210
- else {
1211
- meta.EIPS[1559] = isEIP1559Compatible;
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
1237
  }, _NetworkController_getLatestBlock = function _NetworkController_getLatestBlock(networkClientId) {
@@ -1374,6 +1397,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
1374
1397
  for (const addedRpcEndpoint of addedRpcEndpoints) {
1375
1398
  if (addedRpcEndpoint.type === RpcEndpointType.Infura) {
1376
1399
  autoManagedNetworkClientRegistry[NetworkClientType.Infura][addedRpcEndpoint.networkClientId] = createAutoManagedNetworkClient({
1400
+ networkClientId: addedRpcEndpoint.networkClientId,
1377
1401
  networkClientConfiguration: {
1378
1402
  type: NetworkClientType.Infura,
1379
1403
  chainId: networkFields.chainId,
@@ -1391,6 +1415,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
1391
1415
  }
1392
1416
  else {
1393
1417
  autoManagedNetworkClientRegistry[NetworkClientType.Custom][addedRpcEndpoint.networkClientId] = createAutoManagedNetworkClient({
1418
+ networkClientId: addedRpcEndpoint.networkClientId,
1394
1419
  networkClientConfiguration: {
1395
1420
  type: NetworkClientType.Custom,
1396
1421
  chainId: networkFields.chainId,
@@ -1450,6 +1475,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
1450
1475
  return [
1451
1476
  rpcEndpoint.networkClientId,
1452
1477
  createAutoManagedNetworkClient({
1478
+ networkClientId: rpcEndpoint.networkClientId,
1453
1479
  networkClientConfiguration: {
1454
1480
  type: NetworkClientType.Infura,
1455
1481
  network: infuraNetworkName,
@@ -1469,6 +1495,7 @@ async function _NetworkController_determineEIP1559Compatibility(networkClientId)
1469
1495
  return [
1470
1496
  rpcEndpoint.networkClientId,
1471
1497
  createAutoManagedNetworkClient({
1498
+ networkClientId: rpcEndpoint.networkClientId,
1472
1499
  networkClientConfiguration: {
1473
1500
  type: NetworkClientType.Custom,
1474
1501
  chainId: networkConfiguration.chainId,