Skip to content

Conversation

@matthewwalsh0
Copy link
Member

@matthewwalsh0 matthewwalsh0 commented Oct 22, 2025

Explanation

Prevent multiple simultaneous timeouts being created if stop and start are called while a previous asynchronous update is still in progress.

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, highlighting breaking changes as necessary
  • I've prepared draft pull requests for clients and consumer packages to resolve any breaking changes

Note

Prevent duplicate timers and concurrent updates in IncomingTransactionHelper by tracking in-progress updates and clearing timeouts, with tests and changelog updated.

  • Transaction polling (Incoming):
    • Update IncomingTransactionHelper to track in-progress updates with #isUpdating, preventing additional intervals from being queued while an update is running.
    • Clear any existing timeout before scheduling the next interval to avoid duplicate timers.
  • Tests:
    • Add test ensuring repeated start/stop calls during an ongoing update only schedule one timeout and perform a single fetchTransactions call.
  • Changelog:
    • Add Unreleased fix entry: prevent race condition causing excessive incoming transaction polling.

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

@matthewwalsh0 matthewwalsh0 marked this pull request as ready for review October 22, 2025 10:32
@matthewwalsh0 matthewwalsh0 requested review from a team as code owners October 22, 2025 10:32
@matthewwalsh0 matthewwalsh0 merged commit f636954 into main Oct 22, 2025
257 checks passed
@matthewwalsh0 matthewwalsh0 deleted the fix/incoming-polling-race-condition branch October 22, 2025 10:56
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.

4 participants