Skip to content

feat: add Monad Testnet to network-controller and controller-utils #5724

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

Merged
merged 14 commits into from
May 6, 2025

Conversation

stanleyyconsensys
Copy link
Contributor

@stanleyyconsensys stanleyyconsensys commented Apr 29, 2025

Explanation

This PR is to add Monad Testnet as default network on network-controller default state - networkConfigurationsByChainId with the constants and type from the latest controller-utils

Changes:

  • Refactor network-controller methodsgetDefaultCustomNetworkConfigurationsByChainId to build the configuration from CustomNetworkType instead of hardcode network 1 by 1

  • Add Monad Testnet info into controller-utils

  • Include Monad Testnet into network-controller method getDefaultCustomNetworkConfigurationsByChainId

Integration PR in mobile: MetaMask/metamask-mobile#14963

image

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

@stanleyyconsensys
Copy link
Contributor Author

@metamaskbot publish-preview

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-cabccf7",
  "@metamask-previews/address-book-controller": "6.0.3-preview-cabccf7",
  "@metamask-previews/announcement-controller": "7.0.3-preview-cabccf7",
  "@metamask-previews/app-metadata-controller": "1.0.0-preview-cabccf7",
  "@metamask-previews/approval-controller": "7.1.3-preview-cabccf7",
  "@metamask-previews/assets-controllers": "60.0.0-preview-cabccf7",
  "@metamask-previews/base-controller": "8.0.1-preview-cabccf7",
  "@metamask-previews/bridge-controller": "19.0.0-preview-cabccf7",
  "@metamask-previews/bridge-status-controller": "16.0.0-preview-cabccf7",
  "@metamask-previews/build-utils": "3.0.3-preview-cabccf7",
  "@metamask-previews/chain-agnostic-permission": "0.5.0-preview-cabccf7",
  "@metamask-previews/composable-controller": "11.0.0-preview-cabccf7",
  "@metamask-previews/controller-utils": "11.7.0-preview-cabccf7",
  "@metamask-previews/delegation-controller": "0.1.0-preview-cabccf7",
  "@metamask-previews/earn-controller": "0.12.0-preview-cabccf7",
  "@metamask-previews/eip1193-permission-middleware": "0.1.0-preview-cabccf7",
  "@metamask-previews/ens-controller": "16.0.0-preview-cabccf7",
  "@metamask-previews/eth-json-rpc-provider": "4.1.8-preview-cabccf7",
  "@metamask-previews/gas-fee-controller": "23.0.0-preview-cabccf7",
  "@metamask-previews/json-rpc-engine": "10.0.3-preview-cabccf7",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.7-preview-cabccf7",
  "@metamask-previews/keyring-controller": "21.0.4-preview-cabccf7",
  "@metamask-previews/logging-controller": "6.0.4-preview-cabccf7",
  "@metamask-previews/message-manager": "12.0.1-preview-cabccf7",
  "@metamask-previews/multichain": "4.0.0-preview-cabccf7",
  "@metamask-previews/multichain-api-middleware": "0.2.0-preview-cabccf7",
  "@metamask-previews/multichain-network-controller": "0.5.1-preview-cabccf7",
  "@metamask-previews/multichain-transactions-controller": "0.9.0-preview-cabccf7",
  "@metamask-previews/name-controller": "8.0.3-preview-cabccf7",
  "@metamask-previews/network-controller": "23.2.0-preview-cabccf7",
  "@metamask-previews/notification-services-controller": "6.0.0-preview-cabccf7",
  "@metamask-previews/permission-controller": "11.0.6-preview-cabccf7",
  "@metamask-previews/permission-log-controller": "3.0.3-preview-cabccf7",
  "@metamask-previews/phishing-controller": "12.5.0-preview-cabccf7",
  "@metamask-previews/polling-controller": "13.0.0-preview-cabccf7",
  "@metamask-previews/preferences-controller": "17.0.0-preview-cabccf7",
  "@metamask-previews/profile-sync-controller": "12.0.0-preview-cabccf7",
  "@metamask-previews/queued-request-controller": "10.0.0-preview-cabccf7",
  "@metamask-previews/rate-limit-controller": "6.0.3-preview-cabccf7",
  "@metamask-previews/remote-feature-flag-controller": "1.6.0-preview-cabccf7",
  "@metamask-previews/sample-controllers": "0.1.0-preview-cabccf7",
  "@metamask-previews/selected-network-controller": "22.0.0-preview-cabccf7",
  "@metamask-previews/signature-controller": "27.1.0-preview-cabccf7",
  "@metamask-previews/token-search-discovery-controller": "3.1.0-preview-cabccf7",
  "@metamask-previews/transaction-controller": "54.2.0-preview-cabccf7",
  "@metamask-previews/user-operation-controller": "33.0.0-preview-cabccf7"
}

@stanleyyconsensys
Copy link
Contributor Author

@metamaskbot publish-preview

@stanleyyconsensys stanleyyconsensys marked this pull request as ready for review April 30, 2025 01:51
@stanleyyconsensys stanleyyconsensys requested review from a team as code owners April 30, 2025 01:51
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-28cd3de3",
  "@metamask-previews/address-book-controller": "6.0.3-preview-28cd3de3",
  "@metamask-previews/announcement-controller": "7.0.3-preview-28cd3de3",
  "@metamask-previews/app-metadata-controller": "1.0.0-preview-28cd3de3",
  "@metamask-previews/approval-controller": "7.1.3-preview-28cd3de3",
  "@metamask-previews/assets-controllers": "60.0.0-preview-28cd3de3",
  "@metamask-previews/base-controller": "8.0.1-preview-28cd3de3",
  "@metamask-previews/bridge-controller": "19.0.0-preview-28cd3de3",
  "@metamask-previews/bridge-status-controller": "16.0.0-preview-28cd3de3",
  "@metamask-previews/build-utils": "3.0.3-preview-28cd3de3",
  "@metamask-previews/chain-agnostic-permission": "0.5.0-preview-28cd3de3",
  "@metamask-previews/composable-controller": "11.0.0-preview-28cd3de3",
  "@metamask-previews/controller-utils": "11.7.0-preview-28cd3de3",
  "@metamask-previews/delegation-controller": "0.1.0-preview-28cd3de3",
  "@metamask-previews/earn-controller": "0.12.0-preview-28cd3de3",
  "@metamask-previews/eip1193-permission-middleware": "0.1.0-preview-28cd3de3",
  "@metamask-previews/ens-controller": "16.0.0-preview-28cd3de3",
  "@metamask-previews/eth-json-rpc-provider": "4.1.8-preview-28cd3de3",
  "@metamask-previews/gas-fee-controller": "23.0.0-preview-28cd3de3",
  "@metamask-previews/json-rpc-engine": "10.0.3-preview-28cd3de3",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.7-preview-28cd3de3",
  "@metamask-previews/keyring-controller": "21.0.4-preview-28cd3de3",
  "@metamask-previews/logging-controller": "6.0.4-preview-28cd3de3",
  "@metamask-previews/message-manager": "12.0.1-preview-28cd3de3",
  "@metamask-previews/multichain": "4.0.0-preview-28cd3de3",
  "@metamask-previews/multichain-api-middleware": "0.2.0-preview-28cd3de3",
  "@metamask-previews/multichain-network-controller": "0.5.1-preview-28cd3de3",
  "@metamask-previews/multichain-transactions-controller": "0.9.0-preview-28cd3de3",
  "@metamask-previews/name-controller": "8.0.3-preview-28cd3de3",
  "@metamask-previews/network-controller": "23.2.0-preview-28cd3de3",
  "@metamask-previews/notification-services-controller": "6.0.0-preview-28cd3de3",
  "@metamask-previews/permission-controller": "11.0.6-preview-28cd3de3",
  "@metamask-previews/permission-log-controller": "3.0.3-preview-28cd3de3",
  "@metamask-previews/phishing-controller": "12.5.0-preview-28cd3de3",
  "@metamask-previews/polling-controller": "13.0.0-preview-28cd3de3",
  "@metamask-previews/preferences-controller": "17.0.0-preview-28cd3de3",
  "@metamask-previews/profile-sync-controller": "12.0.0-preview-28cd3de3",
  "@metamask-previews/queued-request-controller": "10.0.0-preview-28cd3de3",
  "@metamask-previews/rate-limit-controller": "6.0.3-preview-28cd3de3",
  "@metamask-previews/remote-feature-flag-controller": "1.6.0-preview-28cd3de3",
  "@metamask-previews/sample-controllers": "0.1.0-preview-28cd3de3",
  "@metamask-previews/selected-network-controller": "22.0.0-preview-28cd3de3",
  "@metamask-previews/signature-controller": "27.1.0-preview-28cd3de3",
  "@metamask-previews/token-search-discovery-controller": "3.1.0-preview-28cd3de3",
  "@metamask-previews/transaction-controller": "54.2.0-preview-28cd3de3",
  "@metamask-previews/user-operation-controller": "33.0.0-preview-28cd3de3"
}

@stanleyyconsensys
Copy link
Contributor Author

stanleyyconsensys commented Apr 30, 2025

Keep in mind, due to Monad is using 'MON' as symbol, hence, we will not add it into controller-utils constants TESTNET_TICKER_SYMBOLS, as it is mainly to consolidate all ETH testnet ticker to ETH while fetching cryptocompare

@stanleyyconsensys
Copy link
Contributor Author

stanleyyconsensys commented May 2, 2025

@mcmire
further to this discussion - #5724 (comment)

i also agree with that, may be to align with other constants, we can use chainId as key

export const BUILT_IN_CUSTOM_NETWORKS_RPC = {
  [ChainId['megaeth-testnet']]: 'https://carrot.megaeth.com/rpc',
  [ChainId['monad-testnet']]: 'https://testnet-rpc.monad.xyz',
};

keep in mind that, we change this constants will causing a breaking change for controller-utils
as the client is referencing this constants too

but i guess we are okay to move it to a breaking version, wdyt?

@mcmire
Copy link
Contributor

mcmire commented May 2, 2025

@stanleyyconsensys Hmm... I would say despite the comments, let's do what we can to avoid a breaking change for now, since controller-utils is used by so many other packages.

Copy link
Contributor

@cryptodev-2s cryptodev-2s left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@github-project-automation github-project-automation bot moved this from Needs dev review to Review finalised - Ready to be merged in PR review queue May 6, 2025
@stanleyyconsensys stanleyyconsensys enabled auto-merge (squash) May 6, 2025 13:46
@stanleyyconsensys stanleyyconsensys disabled auto-merge May 6, 2025 13:46
@stanleyyconsensys stanleyyconsensys merged commit b2b6d21 into main May 6, 2025
202 checks passed
@stanleyyconsensys stanleyyconsensys deleted the feat/add-monad-testnet branch May 6, 2025 13:54
@github-project-automation github-project-automation bot moved this from Review finalised - Ready to be merged to Merged, Closed or Archived in PR review queue May 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants