Remove payer config option from transaction planner plugins#192
Merged
lorisleiva merged 1 commit intoApr 16, 2026
Merged
Conversation
This PR removes the `Partial<ClientWithPayer>` pattern from the transaction planner plugins. The payer must now be provided on the client (e.g. via a payer plugin) rather than passed as a config override, aligning with the composable plugin model.
🦋 Changeset detectedLatest commit: a18d01f The changes in this PR will be included in the next version bump. This PR includes changesets to release 5 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Member
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Member
Author
trevor-cortex
left a comment
There was a problem hiding this comment.
Summary
Clean removal of the payer config option from both rpcTransactionPlanner and litesvmTransactionPlanner. The payer is now required on the client via ClientWithPayer (instead of Partial<ClientWithPayer>), enforced at the type level rather than at runtime. This aligns with the composable plugin model.
Notes
- Both plugins (
litesvmandrpc) receive identical changes — good consistency. - The generic constraint change from
Partial<ClientWithPayer>toClientWithPayeris the key enforcement mechanism — TypeScript will now catch missing payers at compile time. - The runtime error path is removed entirely, which is the right call since the type system handles it now.
- Tests correctly shift from "throws at runtime" to
@ts-expect-error+not.toThrow(), confirming the enforcement is purely at the type level. - Changeset is properly marked as
minorwith breaking change documentation and a clear migration example.
LGTM 👍 — straightforward and well-scoped.
This was referenced Apr 14, 2026
mcintyre94
approved these changes
Apr 15, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This PR removes the
Partial<ClientWithPayer>pattern from the transaction planner plugins. The payer must now be provided on the client (e.g. via a payer plugin) rather than passed as a config override, aligning with the composable plugin model.