Skip to content

Conversation

@cryptodev-2s
Copy link
Contributor

@cryptodev-2s cryptodev-2s commented Jan 22, 2026

Explanation

The ConnectivityController currently defines selectors for accessing its state directly in clients, making it inconsistent with our guidelines.

Solution:

  • Added selectConnectivityStatus - simple selector that returns the current connectivity status
  • Added selectIsOffline - memoized selector using reselect that returns true when offline

The selectors are exported from the package and can be used with Redux or directly with controller state.

References

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
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Introduces exported selectors for controller state and supporting dependency.

  • Add connectivityControllerSelectors with selectConnectivityStatus and memoized selectIsOffline
  • Export selectors from src/index.ts
  • Add reselect dependency
  • Add unit tests for selectors and update CHANGELOG.md

Written by Cursor Bugbot for commit 02071b5. This will update automatically on new commits. Configure here.

@cryptodev-2s cryptodev-2s self-assigned this Jan 22, 2026
@cryptodev-2s cryptodev-2s force-pushed the add-connectivity-controller-selectors branch from 4d04889 to 3ec2a74 Compare January 22, 2026 10:53
@cryptodev-2s
Copy link
Contributor Author

@metamaskbot publish-preview

@github-actions
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/account-tree-controller": "4.0.0-preview-3ec2a74",
  "@metamask-previews/accounts-controller": "35.0.2-preview-3ec2a74",
  "@metamask-previews/address-book-controller": "7.0.1-preview-3ec2a74",
  "@metamask-previews/analytics-controller": "1.0.0-preview-3ec2a74",
  "@metamask-previews/announcement-controller": "8.0.0-preview-3ec2a74",
  "@metamask-previews/app-metadata-controller": "2.0.0-preview-3ec2a74",
  "@metamask-previews/approval-controller": "8.0.0-preview-3ec2a74",
  "@metamask-previews/assets-controller": "0.0.0-preview-3ec2a74",
  "@metamask-previews/assets-controllers": "95.3.0-preview-3ec2a74",
  "@metamask-previews/base-controller": "9.0.0-preview-3ec2a74",
  "@metamask-previews/bridge-controller": "64.8.0-preview-3ec2a74",
  "@metamask-previews/bridge-status-controller": "64.4.3-preview-3ec2a74",
  "@metamask-previews/build-utils": "3.0.4-preview-3ec2a74",
  "@metamask-previews/chain-agnostic-permission": "1.4.0-preview-3ec2a74",
  "@metamask-previews/claims-controller": "0.4.1-preview-3ec2a74",
  "@metamask-previews/composable-controller": "12.0.0-preview-3ec2a74",
  "@metamask-previews/connectivity-controller": "0.1.0-preview-3ec2a74",
  "@metamask-previews/controller-utils": "11.18.0-preview-3ec2a74",
  "@metamask-previews/core-backend": "5.0.0-preview-3ec2a74",
  "@metamask-previews/delegation-controller": "2.0.0-preview-3ec2a74",
  "@metamask-previews/earn-controller": "11.1.0-preview-3ec2a74",
  "@metamask-previews/eip-5792-middleware": "2.1.0-preview-3ec2a74",
  "@metamask-previews/eip-7702-internal-rpc-middleware": "0.1.0-preview-3ec2a74",
  "@metamask-previews/eip1193-permission-middleware": "1.0.3-preview-3ec2a74",
  "@metamask-previews/ens-controller": "19.0.2-preview-3ec2a74",
  "@metamask-previews/error-reporting-service": "3.0.1-preview-3ec2a74",
  "@metamask-previews/eth-block-tracker": "15.0.1-preview-3ec2a74",
  "@metamask-previews/eth-json-rpc-middleware": "23.0.0-preview-3ec2a74",
  "@metamask-previews/eth-json-rpc-provider": "6.0.0-preview-3ec2a74",
  "@metamask-previews/foundryup": "1.0.1-preview-3ec2a74",
  "@metamask-previews/gas-fee-controller": "26.0.2-preview-3ec2a74",
  "@metamask-previews/gator-permissions-controller": "1.1.0-preview-3ec2a74",
  "@metamask-previews/json-rpc-engine": "10.2.1-preview-3ec2a74",
  "@metamask-previews/json-rpc-middleware-stream": "8.0.8-preview-3ec2a74",
  "@metamask-previews/keyring-controller": "25.0.0-preview-3ec2a74",
  "@metamask-previews/logging-controller": "7.0.1-preview-3ec2a74",
  "@metamask-previews/message-manager": "14.1.0-preview-3ec2a74",
  "@metamask-previews/messenger": "0.3.0-preview-3ec2a74",
  "@metamask-previews/multichain-account-service": "5.1.0-preview-3ec2a74",
  "@metamask-previews/multichain-api-middleware": "1.2.6-preview-3ec2a74",
  "@metamask-previews/multichain-network-controller": "3.0.2-preview-3ec2a74",
  "@metamask-previews/multichain-transactions-controller": "7.0.0-preview-3ec2a74",
  "@metamask-previews/name-controller": "9.0.0-preview-3ec2a74",
  "@metamask-previews/network-controller": "29.0.0-preview-3ec2a74",
  "@metamask-previews/network-enablement-controller": "4.1.0-preview-3ec2a74",
  "@metamask-previews/notification-services-controller": "21.0.0-preview-3ec2a74",
  "@metamask-previews/permission-controller": "12.2.0-preview-3ec2a74",
  "@metamask-previews/permission-log-controller": "5.0.0-preview-3ec2a74",
  "@metamask-previews/perps-controller": "0.0.0-preview-3ec2a74",
  "@metamask-previews/phishing-controller": "16.1.0-preview-3ec2a74",
  "@metamask-previews/polling-controller": "16.0.2-preview-3ec2a74",
  "@metamask-previews/preferences-controller": "22.0.0-preview-3ec2a74",
  "@metamask-previews/profile-metrics-controller": "3.0.0-preview-3ec2a74",
  "@metamask-previews/profile-sync-controller": "27.0.0-preview-3ec2a74",
  "@metamask-previews/ramps-controller": "4.1.0-preview-3ec2a74",
  "@metamask-previews/rate-limit-controller": "7.0.0-preview-3ec2a74",
  "@metamask-previews/remote-feature-flag-controller": "4.0.0-preview-3ec2a74",
  "@metamask-previews/sample-controllers": "4.0.2-preview-3ec2a74",
  "@metamask-previews/seedless-onboarding-controller": "7.1.0-preview-3ec2a74",
  "@metamask-previews/selected-network-controller": "26.0.2-preview-3ec2a74",
  "@metamask-previews/shield-controller": "5.0.0-preview-3ec2a74",
  "@metamask-previews/signature-controller": "39.0.1-preview-3ec2a74",
  "@metamask-previews/storage-service": "0.0.1-preview-3ec2a74",
  "@metamask-previews/subscription-controller": "5.4.0-preview-3ec2a74",
  "@metamask-previews/token-search-discovery-controller": "4.0.0-preview-3ec2a74",
  "@metamask-previews/transaction-controller": "62.9.2-preview-3ec2a74",
  "@metamask-previews/transaction-pay-controller": "11.0.2-preview-3ec2a74",
  "@metamask-previews/user-operation-controller": "41.0.2-preview-3ec2a74"
}

@cryptodev-2s cryptodev-2s marked this pull request as ready for review January 22, 2026 13:52
@cryptodev-2s cryptodev-2s requested a review from a team as a code owner January 22, 2026 13:52
@cryptodev-2s cryptodev-2s force-pushed the add-connectivity-controller-selectors branch from 3ec2a74 to 02071b5 Compare January 22, 2026 13:52
@cryptodev-2s cryptodev-2s requested a review from mcmire January 22, 2026 13:52
Copy link
Contributor

@mcmire mcmire left a comment

Choose a reason for hiding this comment

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

LGTM!

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.

3 participants