Update the signer API to return Transaction & TransactionWithLifetime#927
Merged
Conversation
🦋 Changeset detectedLatest commit: 95bd0fc The changes in this PR will be included in the next version bump. This PR includes changesets to release 41 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 |
This was referenced Oct 1, 2025
Member
Author
BundleMonFiles updated (3)
Unchanged files (127)
Total files change +78B +0.02% Final result: ✅ View report in BundleMon website ➡️ |
Contributor
|
Documentation Preview: https://kit-docs-8f8u07s5a-anza-tech.vercel.app |
0711961 to
5e33099
Compare
bde1aa4 to
210169b
Compare
5e33099 to
f5dc0b9
Compare
210169b to
2d2c2e7
Compare
lorisleiva
approved these changes
Oct 2, 2025
Member
lorisleiva
left a comment
There was a problem hiding this comment.
Really nice, thank you so much for this stack! 🍺
2d2c2e7 to
d225c92
Compare
f5dc0b9 to
52c3c6f
Compare
Member
Author
Merge activity
|
d225c92 to
95bd0fc
Compare
Merged
Contributor
|
🔎💬 Inkeep AI search and chat service is syncing content for source 'Solana Kit Docs' |
This was referenced Oct 3, 2025
Closed
Contributor
|
Because there has been no activity on this PR for 14 days since it was merged, it has been automatically locked. Please open a new issue if it requires a follow up. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.


Problem
The
TransactionModifyingSignerwas previously typed to return the exact same typeTas its input transactions. This is incorrect, as we always intended for signers to be able to eg change the lifetime of a transaction. In practice one example ofTransactionModifyingSignerreturns signed transactions from wallet-standard wallets, which can make arbitrary changes to the transaction before signing it.This also meant that such a signer could not return a
TransactionWithLifetime, ie alifetimeConstraintfield. Casts in signer functions would treat the signer as having returned the expected type, but there was no type safety.In practice, this meant
useWalletAccountTransactionSignerand third-partyTransactionModifyingSignerdid not return alifetimeConstraint, but appeared to do so to Typescript. This led to a runtime error when attempting to confirm transactions (#891)Summary of Changes
This PR changes the type of modifying signers to:
input: (Transaction | (Transaction & TransactionWithLifetime))[]
output: (Transaction & TransactionWithLifetime & TransactionWithinSizeLimit)[]
Note that an upstream PR (#919) already made
useWalletAccountTransactionSignersatisfy theTransactionWithLifetimepart of this interface.It also changes the return type of
signModifyingAndPartialTransactionSignerstoTransaction & TransactionWithLifetime & TransactionWithinSizeLimit, and removes the cast to the expected return type that limited type safety in this function.Fixes #891