Skip to content

[WIP] Add way to customize block tracker + Add flag for RPC failover #5679

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 20 commits into
base: main
Choose a base branch
from

Conversation

mcmire
Copy link
Contributor

@mcmire mcmire commented Apr 20, 2025

Explanation

References

Changelog

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed, highlighting breaking changes as necessary
  • I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes

mcmire added 15 commits April 18, 2025 15:43
Add an optional `getBlockTrackerOptions` argument to NetworkController,
which can be used to customize the block tracker for a particular
network (or all networks if desired). This is particularly useful when
finetuning the behavior of the RPC failover logic.
@mcmire
Copy link
Contributor Author

mcmire commented Apr 20, 2025

@metamaskbot publish-previews

Copy link
Contributor

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/accounts-controller": "27.0.0-preview-66f06159",
  "@metamask-previews/address-book-controller": "6.0.3-preview-66f06159",
  "@metamask-previews/announcement-controller": "7.0.3-preview-66f06159",
  "@metamask-previews/app-metadata-controller": "1.0.0-preview-66f06159",
  "@metamask-previews/approval-controller": "7.1.3-preview-66f06159",
  "@metamask-previews/assets-controllers": "58.0.0-preview-66f06159",
  "@metamask-previews/base-controller": "8.0.0-preview-66f06159",
  "@metamask-previews/bridge-controller": "16.0.0-preview-66f06159",
  "@metamask-previews/bridge-status-controller": "13.1.0-preview-66f06159",
  "@metamask-previews/build-utils": "3.0.3-preview-66f06159",
  "@metamask-previews/chain-agnostic-permission": "0.4.0-preview-66f06159",
  "@metamask-previews/composable-controller": "11.0.0-preview-66f06159",
  "@metamask-previews/controller-utils": "11.7.0-preview-66f06159",
  "@metamask-previews/delegation-controller": "0.1.0-preview-66f06159",
  "@metamask-previews/earn-controller": "0.12.0-preview-66f06159",
  "@metamask-previews/eip1193-permission-middleware": "0.1.0-preview-66f06159",
  "@metamask-previews/ens-controller": "16.0.0-preview-66f06159",
  "@metamask-previews/eth-json-rpc-provider": "4.1.8-preview-66f06159",
  "@metamask-previews/gas-fee-controller": "23.0.0-preview-66f06159",
  "@metamask-previews/json-rpc-engine": "10.0.3-preview-66f06159",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.7-preview-66f06159",
  "@metamask-previews/keyring-controller": "21.0.3-preview-66f06159",
  "@metamask-previews/logging-controller": "6.0.4-preview-66f06159",
  "@metamask-previews/message-manager": "12.0.1-preview-66f06159",
  "@metamask-previews/multichain": "4.0.0-preview-66f06159",
  "@metamask-previews/multichain-api-middleware": "0.2.0-preview-66f06159",
  "@metamask-previews/multichain-network-controller": "0.5.1-preview-66f06159",
  "@metamask-previews/multichain-transactions-controller": "0.9.0-preview-66f06159",
  "@metamask-previews/name-controller": "8.0.3-preview-66f06159",
  "@metamask-previews/network-controller": "23.2.0-preview-66f06159",
  "@metamask-previews/notification-services-controller": "6.0.0-preview-66f06159",
  "@metamask-previews/permission-controller": "11.0.6-preview-66f06159",
  "@metamask-previews/permission-log-controller": "3.0.3-preview-66f06159",
  "@metamask-previews/phishing-controller": "12.4.1-preview-66f06159",
  "@metamask-previews/polling-controller": "13.0.0-preview-66f06159",
  "@metamask-previews/preferences-controller": "17.0.0-preview-66f06159",
  "@metamask-previews/profile-sync-controller": "12.0.0-preview-66f06159",
  "@metamask-previews/queued-request-controller": "10.0.0-preview-66f06159",
  "@metamask-previews/rate-limit-controller": "6.0.3-preview-66f06159",
  "@metamask-previews/remote-feature-flag-controller": "1.6.0-preview-66f06159",
  "@metamask-previews/sample-controllers": "0.1.0-preview-66f06159",
  "@metamask-previews/selected-network-controller": "22.0.0-preview-66f06159",
  "@metamask-previews/signature-controller": "27.1.0-preview-66f06159",
  "@metamask-previews/token-search-discovery-controller": "3.1.0-preview-66f06159",
  "@metamask-previews/transaction-controller": "54.1.0-preview-66f06159",
  "@metamask-previews/user-operation-controller": "33.0.0-preview-66f06159"
}

@mcmire
Copy link
Contributor Author

mcmire commented Apr 21, 2025

@metamaskbot publish-previews

Copy link
Contributor

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/accounts-controller": "27.0.0-preview-a898873f",
  "@metamask-previews/address-book-controller": "6.0.3-preview-a898873f",
  "@metamask-previews/announcement-controller": "7.0.3-preview-a898873f",
  "@metamask-previews/app-metadata-controller": "1.0.0-preview-a898873f",
  "@metamask-previews/approval-controller": "7.1.3-preview-a898873f",
  "@metamask-previews/assets-controllers": "58.0.0-preview-a898873f",
  "@metamask-previews/base-controller": "8.0.0-preview-a898873f",
  "@metamask-previews/bridge-controller": "16.0.0-preview-a898873f",
  "@metamask-previews/bridge-status-controller": "13.1.0-preview-a898873f",
  "@metamask-previews/build-utils": "3.0.3-preview-a898873f",
  "@metamask-previews/chain-agnostic-permission": "0.4.0-preview-a898873f",
  "@metamask-previews/composable-controller": "11.0.0-preview-a898873f",
  "@metamask-previews/controller-utils": "11.7.0-preview-a898873f",
  "@metamask-previews/delegation-controller": "0.1.0-preview-a898873f",
  "@metamask-previews/earn-controller": "0.12.0-preview-a898873f",
  "@metamask-previews/eip1193-permission-middleware": "0.1.0-preview-a898873f",
  "@metamask-previews/ens-controller": "16.0.0-preview-a898873f",
  "@metamask-previews/eth-json-rpc-provider": "4.1.8-preview-a898873f",
  "@metamask-previews/gas-fee-controller": "23.0.0-preview-a898873f",
  "@metamask-previews/json-rpc-engine": "10.0.3-preview-a898873f",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.7-preview-a898873f",
  "@metamask-previews/keyring-controller": "21.0.3-preview-a898873f",
  "@metamask-previews/logging-controller": "6.0.4-preview-a898873f",
  "@metamask-previews/message-manager": "12.0.1-preview-a898873f",
  "@metamask-previews/multichain": "4.0.0-preview-a898873f",
  "@metamask-previews/multichain-api-middleware": "0.2.0-preview-a898873f",
  "@metamask-previews/multichain-network-controller": "0.5.1-preview-a898873f",
  "@metamask-previews/multichain-transactions-controller": "0.9.0-preview-a898873f",
  "@metamask-previews/name-controller": "8.0.3-preview-a898873f",
  "@metamask-previews/network-controller": "23.2.0-preview-a898873f",
  "@metamask-previews/notification-services-controller": "6.0.0-preview-a898873f",
  "@metamask-previews/permission-controller": "11.0.6-preview-a898873f",
  "@metamask-previews/permission-log-controller": "3.0.3-preview-a898873f",
  "@metamask-previews/phishing-controller": "12.4.1-preview-a898873f",
  "@metamask-previews/polling-controller": "13.0.0-preview-a898873f",
  "@metamask-previews/preferences-controller": "17.0.0-preview-a898873f",
  "@metamask-previews/profile-sync-controller": "12.0.0-preview-a898873f",
  "@metamask-previews/queued-request-controller": "10.0.0-preview-a898873f",
  "@metamask-previews/rate-limit-controller": "6.0.3-preview-a898873f",
  "@metamask-previews/remote-feature-flag-controller": "1.6.0-preview-a898873f",
  "@metamask-previews/sample-controllers": "0.1.0-preview-a898873f",
  "@metamask-previews/selected-network-controller": "22.0.0-preview-a898873f",
  "@metamask-previews/signature-controller": "27.1.0-preview-a898873f",
  "@metamask-previews/token-search-discovery-controller": "3.1.0-preview-a898873f",
  "@metamask-previews/transaction-controller": "54.1.0-preview-a898873f",
  "@metamask-previews/user-operation-controller": "33.0.0-preview-a898873f"
}

@mcmire
Copy link
Contributor Author

mcmire commented Apr 22, 2025

@metamaskbot publish-previews

Copy link
Contributor

Preview builds have been published. See these instructions for more information about preview builds.

Expand for full list of packages and versions.
{
  "@metamask-previews/accounts-controller": "27.0.0-preview-ef39cc11",
  "@metamask-previews/address-book-controller": "6.0.3-preview-ef39cc11",
  "@metamask-previews/announcement-controller": "7.0.3-preview-ef39cc11",
  "@metamask-previews/app-metadata-controller": "1.0.0-preview-ef39cc11",
  "@metamask-previews/approval-controller": "7.1.3-preview-ef39cc11",
  "@metamask-previews/assets-controllers": "58.0.0-preview-ef39cc11",
  "@metamask-previews/base-controller": "8.0.0-preview-ef39cc11",
  "@metamask-previews/bridge-controller": "16.0.0-preview-ef39cc11",
  "@metamask-previews/bridge-status-controller": "13.1.0-preview-ef39cc11",
  "@metamask-previews/build-utils": "3.0.3-preview-ef39cc11",
  "@metamask-previews/chain-agnostic-permission": "0.4.0-preview-ef39cc11",
  "@metamask-previews/composable-controller": "11.0.0-preview-ef39cc11",
  "@metamask-previews/controller-utils": "11.7.0-preview-ef39cc11",
  "@metamask-previews/delegation-controller": "0.1.0-preview-ef39cc11",
  "@metamask-previews/earn-controller": "0.12.0-preview-ef39cc11",
  "@metamask-previews/eip1193-permission-middleware": "0.1.0-preview-ef39cc11",
  "@metamask-previews/ens-controller": "16.0.0-preview-ef39cc11",
  "@metamask-previews/eth-json-rpc-provider": "4.1.8-preview-ef39cc11",
  "@metamask-previews/gas-fee-controller": "23.0.0-preview-ef39cc11",
  "@metamask-previews/json-rpc-engine": "10.0.3-preview-ef39cc11",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.7-preview-ef39cc11",
  "@metamask-previews/keyring-controller": "21.0.3-preview-ef39cc11",
  "@metamask-previews/logging-controller": "6.0.4-preview-ef39cc11",
  "@metamask-previews/message-manager": "12.0.1-preview-ef39cc11",
  "@metamask-previews/multichain": "4.0.0-preview-ef39cc11",
  "@metamask-previews/multichain-api-middleware": "0.2.0-preview-ef39cc11",
  "@metamask-previews/multichain-network-controller": "0.5.1-preview-ef39cc11",
  "@metamask-previews/multichain-transactions-controller": "0.9.0-preview-ef39cc11",
  "@metamask-previews/name-controller": "8.0.3-preview-ef39cc11",
  "@metamask-previews/network-controller": "23.2.0-preview-ef39cc11",
  "@metamask-previews/notification-services-controller": "6.0.0-preview-ef39cc11",
  "@metamask-previews/permission-controller": "11.0.6-preview-ef39cc11",
  "@metamask-previews/permission-log-controller": "3.0.3-preview-ef39cc11",
  "@metamask-previews/phishing-controller": "12.4.1-preview-ef39cc11",
  "@metamask-previews/polling-controller": "13.0.0-preview-ef39cc11",
  "@metamask-previews/preferences-controller": "17.0.0-preview-ef39cc11",
  "@metamask-previews/profile-sync-controller": "12.0.0-preview-ef39cc11",
  "@metamask-previews/queued-request-controller": "10.0.0-preview-ef39cc11",
  "@metamask-previews/rate-limit-controller": "6.0.3-preview-ef39cc11",
  "@metamask-previews/remote-feature-flag-controller": "1.6.0-preview-ef39cc11",
  "@metamask-previews/sample-controllers": "0.1.0-preview-ef39cc11",
  "@metamask-previews/selected-network-controller": "22.0.0-preview-ef39cc11",
  "@metamask-previews/signature-controller": "27.1.0-preview-ef39cc11",
  "@metamask-previews/token-search-discovery-controller": "3.1.0-preview-ef39cc11",
  "@metamask-previews/transaction-controller": "54.1.0-preview-ef39cc11",
  "@metamask-previews/user-operation-controller": "33.0.0-preview-ef39cc11"
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant