-
Notifications
You must be signed in to change notification settings - Fork 123
Update the signer API to return Transaction & TransactionWithLifetime #927
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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 |
BundleMonFiles updated (3)
Unchanged files (127)
Total files change +78B +0.02% Final result: ✅ View report in BundleMon website ➡️ |
|
Documentation Preview: https://kit-docs-8f8u07s5a-anza-tech.vercel.app |
steveluscher
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
0711961 to
5e33099
Compare
bde1aa4 to
210169b
Compare
5e33099 to
f5dc0b9
Compare
210169b to
2d2c2e7
Compare
lorisleiva
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really nice, thank you so much for this stack! 🍺
2d2c2e7 to
d225c92
Compare
f5dc0b9 to
52c3c6f
Compare
Merge activity
|
d225c92 to
95bd0fc
Compare
|
🔎💬 Inkeep AI search and chat service is syncing content for source 'Solana Kit Docs' |
|
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. |


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