Skip to content

Conversation

@jpuri
Copy link
Contributor

@jpuri jpuri commented Jan 28, 2026

Explanation

In incoming transaction helper if any chain goes down on web sockets, start polling for it.

References

Fixes #12345

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

Medium Risk
Medium risk because it changes when/what chains are polled for incoming transactions and adds new event-driven state around network availability, which could impact transaction discovery if chain ID conversion or status handling is off.

Overview
When WebSocket-based incoming transaction retrieval is enabled, IncomingTransactionHelper now listens for AccountActivityService:statusChanged and starts/stops fallback polling based on which supported networks are reported down, polling only the affected chains.

This threads an optional chainIds filter through RemoteTransactionSourceRequest and updates AccountsApiRemoteTransactionSource to query only those chains, plus adds tests and updates TransactionController’s allowed events/types to include the new status event (and updates the changelog).

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

@jpuri jpuri requested a review from a team as a code owner January 28, 2026 14:37
@jpuri jpuri requested a review from a team as a code owner January 28, 2026 15:25
@jpuri jpuri requested a review from a team as a code owner January 29, 2026 09:41

this.#onInterval().catch((error) => {
log('Initial polling failed', error);
log('Polling failed', error);
Copy link
Member

Choose a reason for hiding this comment

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

This was intentional to distinguish that the first attempt failed, rather than a future interval based one.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

PR is updated

});
}
} else if (!this.#chainsToPoll.includes(hexChainId)) {
// status === 'down'
Copy link
Member

Choose a reason for hiding this comment

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

Should we be explicit in case they ever add more statuses?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

PR is updated

@jpuri jpuri requested a review from matthewwalsh0 January 29, 2026 13:44
@jpuri jpuri enabled auto-merge January 29, 2026 13:44
matthewwalsh0
matthewwalsh0 previously approved these changes Jan 30, 2026
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

@jpuri jpuri added this pull request to the merge queue Feb 2, 2026
Merged via the queue into main with commit 76d0f35 Feb 2, 2026
302 checks passed
@jpuri jpuri deleted the incoming_trxn_fallback branch February 2, 2026 10:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants