Skip to content

feat(transaction-controller): add instant transaction support#8248

Draft
matthewwalsh0 wants to merge 12 commits intomainfrom
feat/instant-transaction
Draft

feat(transaction-controller): add instant transaction support#8248
matthewwalsh0 wants to merge 12 commits intomainfrom
feat/instant-transaction

Conversation

@matthewwalsh0
Copy link
Member

@matthewwalsh0 matthewwalsh0 commented Mar 19, 2026

Explanation

Add startTransaction method to TransactionController for synchronous transaction creation with deferred async data resolution.

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

Also fix ready guards in speedUp/cancel to use #getTransaction (nullable) instead of #getTransactionOrThrow to preserve existing behavior for unknown transaction IDs.
…and data stage

Extract addTransaction and startTransaction into lifecycle/pipeline.ts with a dedicated data stage in lifecycle/stages/data.ts. Encapsulate all branching logic into individual getters, convert fire-and-forget chains to async/await, and unify instant and non-instant flows through the same pipeline.
Remove instant option from addTransaction in favour of dedicated startTransaction method. Extract validation into reusable functions, move pipeline types to lifecycle/types.ts, deduplicate shared setup into createTransaction, alphabetise TransactionContext, and remove premature ready check in approveTransaction.
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.

1 participant