Skip to content

Make FullySignedTransaction composable #462

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

lorisleiva
Copy link
Member

@lorisleiva lorisleiva commented May 6, 2025

Problem

The FullySignedTransaction type extends the Transaction interface by simply adding a unique symbol flagging it as fully signed. This would be great if this was the only flag we wanted to add to Transaction but this is no longer the case as we are planning to add TransactionWithinSizeLimit as well.

Summary of Changes

This PR plans for the addition of TransactionWithinSizeLimit by making the FullySignedTransaction more composable. Instead of inheriting from the Transaction type, it becomes this standalone flag that can be added to Transaction types to narrow them.

Copy link

changeset-bot bot commented May 6, 2025

🦋 Changeset detected

Latest commit: 8042266

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 40 packages
Name Type
@solana/transactions Major
@solana/signers Major
@solana/kit Major
@solana/compat Major
@solana/react Major
@solana/rpc-api Major
@solana/rpc-graphql Major
@solana/rpc-subscriptions-api Major
@solana/transaction-confirmation Major
@solana/rpc Major
@solana/sysvars Major
@solana/rpc-subscriptions Major
@solana/accounts Major
@solana/addresses Major
@solana/assertions Major
@solana/codecs-core Major
@solana/codecs-data-structures Major
@solana/codecs-numbers Major
@solana/codecs-strings Major
@solana/codecs Major
@solana/errors Major
@solana/fast-stable-stringify Major
@solana/functional Major
@solana/instructions Major
@solana/keys Major
@solana/nominal-types Major
@solana/options Major
@solana/programs Major
@solana/promises Major
@solana/rpc-parsed-types Major
@solana/rpc-spec-types Major
@solana/rpc-spec Major
@solana/rpc-subscriptions-channel-websocket Major
@solana/rpc-subscriptions-spec Major
@solana/rpc-transformers Major
@solana/rpc-transport-http Major
@solana/rpc-types Major
@solana/subscribable Major
@solana/transaction-messages Major
@solana/webcrypto-ed25519-polyfill Major

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

Copy link

bundlemon bot commented May 6, 2025

BundleMon

Unchanged files (127)
Status Path Size Limits
@solana/kit production bundle
kit/dist/index.production.min.js
34.39KB -
rpc-graphql/dist/index.browser.mjs
18.78KB -
rpc-graphql/dist/index.native.mjs
18.78KB -
rpc-graphql/dist/index.node.mjs
18.78KB -
errors/dist/index.node.mjs
14.54KB -
errors/dist/index.browser.mjs
14.52KB -
errors/dist/index.native.mjs
14.52KB -
transaction-messages/dist/index.browser.mjs
7.24KB -
transaction-messages/dist/index.native.mjs
7.24KB -
transaction-messages/dist/index.node.mjs
7.24KB -
codecs-data-structures/dist/index.native.mjs
4.77KB -
codecs-data-structures/dist/index.browser.mjs
4.77KB -
codecs-data-structures/dist/index.node.mjs
4.77KB -
webcrypto-ed25519-polyfill/dist/index.node.mj
s
3.57KB -
webcrypto-ed25519-polyfill/dist/index.browser
.mjs
3.56KB -
webcrypto-ed25519-polyfill/dist/index.native.
mjs
3.54KB -
rpc-subscriptions/dist/index.browser.mjs
3.38KB -
rpc-subscriptions/dist/index.node.mjs
3.34KB -
rpc-subscriptions/dist/index.native.mjs
3.31KB -
codecs-core/dist/index.browser.mjs
3.3KB -
codecs-core/dist/index.native.mjs
3.3KB -
codecs-core/dist/index.node.mjs
3.3KB -
rpc-transformers/dist/index.browser.mjs
2.93KB -
rpc-transformers/dist/index.native.mjs
2.93KB -
rpc-transformers/dist/index.node.mjs
2.93KB -
addresses/dist/index.browser.mjs
2.86KB -
addresses/dist/index.native.mjs
2.86KB -
addresses/dist/index.node.mjs
2.86KB -
kit/dist/index.browser.mjs
2.71KB -
kit/dist/index.native.mjs
2.71KB -
kit/dist/index.node.mjs
2.71KB -
signers/dist/index.browser.mjs
2.63KB -
signers/dist/index.native.mjs
2.63KB -
signers/dist/index.node.mjs
2.62KB -
codecs-strings/dist/index.browser.mjs
2.53KB -
codecs-strings/dist/index.node.mjs
2.48KB -
codecs-strings/dist/index.native.mjs
2.45KB -
transaction-confirmation/dist/index.node.mjs
2.39KB -
sysvars/dist/index.browser.mjs
2.35KB -
sysvars/dist/index.native.mjs
2.34KB -
transaction-confirmation/dist/index.native.mj
s
2.34KB -
sysvars/dist/index.node.mjs
2.34KB -
transaction-confirmation/dist/index.browser.m
js
2.34KB -
transactions/dist/index.browser.mjs
2.27KB -
transactions/dist/index.native.mjs
2.27KB -
transactions/dist/index.node.mjs
2.26KB -
rpc-subscriptions-spec/dist/index.node.mjs
2.14KB -
rpc-subscriptions-spec/dist/index.native.mjs
2.09KB -
rpc-subscriptions-spec/dist/index.browser.mjs
2.09KB -
keys/dist/index.browser.mjs
2.02KB -
keys/dist/index.native.mjs
2.02KB -
keys/dist/index.node.mjs
2.02KB -
codecs-numbers/dist/index.native.mjs
2.01KB -
codecs-numbers/dist/index.browser.mjs
2.01KB -
codecs-numbers/dist/index.node.mjs
2.01KB -
react/dist/index.native.mjs
1.99KB -
react/dist/index.browser.mjs
1.99KB -
react/dist/index.node.mjs
1.99KB -
rpc/dist/index.node.mjs
1.95KB -
rpc-transport-http/dist/index.browser.mjs
1.91KB -
rpc-transport-http/dist/index.native.mjs
1.91KB -
rpc/dist/index.native.mjs
1.8KB -
rpc/dist/index.browser.mjs
1.8KB -
subscribable/dist/index.node.mjs
1.8KB -
subscribable/dist/index.native.mjs
1.75KB -
subscribable/dist/index.browser.mjs
1.74KB -
rpc-transport-http/dist/index.node.mjs
1.73KB -
rpc-types/dist/index.browser.mjs
1.53KB -
rpc-types/dist/index.native.mjs
1.53KB -
rpc-types/dist/index.node.mjs
1.53KB -
rpc-subscriptions-channel-websocket/dist/inde
x.node.mjs
1.33KB -
rpc-subscriptions-channel-websocket/dist/inde
x.native.mjs
1.27KB -
rpc-subscriptions-channel-websocket/dist/inde
x.browser.mjs
1.26KB -
options/dist/index.browser.mjs
1.18KB -
options/dist/index.native.mjs
1.18KB -
options/dist/index.node.mjs
1.17KB -
accounts/dist/index.browser.mjs
1.13KB -
accounts/dist/index.native.mjs
1.12KB -
accounts/dist/index.node.mjs
1.12KB -
compat/dist/index.browser.mjs
971B -
compat/dist/index.native.mjs
970B -
compat/dist/index.node.mjs
968B -
rpc-spec-types/dist/index.browser.mjs
964B -
rpc-api/dist/index.browser.mjs
963B -
rpc-api/dist/index.native.mjs
962B -
rpc-spec-types/dist/index.native.mjs
962B -
rpc-api/dist/index.node.mjs
961B -
rpc-spec-types/dist/index.node.mjs
961B -
rpc-subscriptions-api/dist/index.native.mjs
870B -
rpc-subscriptions-api/dist/index.node.mjs
869B -
rpc-subscriptions-api/dist/index.browser.mjs
868B -
rpc-spec/dist/index.browser.mjs
852B -
rpc-spec/dist/index.native.mjs
851B -
rpc-spec/dist/index.node.mjs
850B -
promises/dist/index.browser.mjs
799B -
promises/dist/index.native.mjs
798B -
promises/dist/index.node.mjs
797B -
assertions/dist/index.browser.mjs
783B -
instructions/dist/index.browser.mjs
769B -
instructions/dist/index.native.mjs
768B -
instructions/dist/index.node.mjs
767B -
fast-stable-stringify/dist/index.browser.mjs
726B -
fast-stable-stringify/dist/index.native.mjs
725B -
assertions/dist/index.native.mjs
724B -
fast-stable-stringify/dist/index.node.mjs
724B -
assertions/dist/index.node.mjs
723B -
programs/dist/index.browser.mjs
329B -
programs/dist/index.native.mjs
327B -
programs/dist/index.node.mjs
325B -
event-target-impl/dist/index.node.mjs
230B -
functional/dist/index.browser.mjs
154B -
functional/dist/index.native.mjs
152B -
text-encoding-impl/dist/index.native.mjs
152B -
functional/dist/index.node.mjs
151B -
codecs/dist/index.browser.mjs
137B -
codecs/dist/index.native.mjs
136B -
codecs/dist/index.node.mjs
134B -
event-target-impl/dist/index.browser.mjs
133B -
ws-impl/dist/index.node.mjs
131B -
text-encoding-impl/dist/index.browser.mjs
122B -
text-encoding-impl/dist/index.node.mjs
119B -
ws-impl/dist/index.browser.mjs
113B -
crypto-impl/dist/index.node.mjs
111B -
crypto-impl/dist/index.browser.mjs
109B -
rpc-parsed-types/dist/index.browser.mjs
66B -
rpc-parsed-types/dist/index.native.mjs
65B -
rpc-parsed-types/dist/index.node.mjs
63B -

No change in files bundle size

Final result: ✅

View report in BundleMon website ➡️


Current branch size history | Target branch size history

@lorisleiva lorisleiva marked this pull request as ready for review May 6, 2025 08:45
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from 5b8916c to 89d6d86 Compare May 6, 2025 08:48
@lorisleiva lorisleiva force-pushed the 05-02-improve_type_safety_when_adding_instructions branch from 04da52a to 20784af Compare May 6, 2025 09:02
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch 2 times, most recently from 55e111f to 87e27cf Compare May 6, 2025 09:07
@lorisleiva lorisleiva force-pushed the 05-02-improve_type_safety_when_adding_instructions branch from 20784af to 904b737 Compare May 6, 2025 09:07
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from 87e27cf to b26b471 Compare May 6, 2025 12:58
@lorisleiva lorisleiva force-pushed the 05-02-improve_type_safety_when_adding_instructions branch from 904b737 to 222886c Compare May 6, 2025 12:58
@lorisleiva lorisleiva mentioned this pull request May 6, 2025
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from b26b471 to d2e683e Compare May 7, 2025 12:06
Copy link
Contributor

github-actions bot commented May 7, 2025

Documentation Preview: https://kit-docs-7osqldk2a-anza-tech.vercel.app

@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from d2e683e to 13ffe0b Compare May 8, 2025 15:02
@lorisleiva lorisleiva force-pushed the 05-02-improve_type_safety_when_adding_instructions branch from 1ebb00c to 40313d8 Compare May 8, 2025 15:02
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch 2 times, most recently from e09c9e5 to 924e539 Compare May 8, 2025 15:43
@lorisleiva lorisleiva force-pushed the 05-02-improve_type_safety_when_adding_instructions branch from b6cafbf to 367b0ca Compare May 8, 2025 15:43
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from 9065d3a to f995600 Compare May 12, 2025 10:04
@lorisleiva lorisleiva force-pushed the 05-02-improve_type_safety_when_adding_instructions branch 2 times, most recently from 6893fcf to 9ad4c3f Compare May 12, 2025 10:17
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from f995600 to 8d02b50 Compare May 12, 2025 10:17
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from 8d02b50 to c471402 Compare May 14, 2025 08:31
@lorisleiva lorisleiva force-pushed the 05-02-improve_type_safety_when_adding_instructions branch from 9ad4c3f to 3dc8904 Compare May 14, 2025 08:31
@lorisleiva lorisleiva changed the base branch from 05-02-improve_type_safety_when_adding_instructions to graphite-base/462 May 14, 2025 08:57
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from c471402 to b9ae938 Compare May 14, 2025 08:57
@lorisleiva lorisleiva changed the base branch from graphite-base/462 to 05-07-refactor_fullysignedtransaction_helpers May 14, 2025 08:57
@lorisleiva lorisleiva force-pushed the 05-07-refactor_fullysignedtransaction_helpers branch from 8327a4a to 997881e Compare May 14, 2025 09:01
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from b9ae938 to d6e404c Compare May 14, 2025 09:01
@lorisleiva lorisleiva changed the base branch from 05-07-refactor_fullysignedtransaction_helpers to graphite-base/462 May 14, 2025 09:30
@lorisleiva lorisleiva force-pushed the graphite-base/462 branch from 997881e to 8f430f3 Compare May 14, 2025 09:30
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from d6e404c to 18f6e43 Compare May 14, 2025 09:30
@lorisleiva lorisleiva changed the base branch from graphite-base/462 to 05-12-remove_i_prefixes_before_instruction_types May 14, 2025 09:30
@lorisleiva lorisleiva force-pushed the 05-12-remove_i_prefixes_before_instruction_types branch from 8f430f3 to 6788405 Compare May 14, 2025 09:39
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from 18f6e43 to f796886 Compare May 14, 2025 09:39
@lorisleiva lorisleiva changed the base branch from 05-12-remove_i_prefixes_before_instruction_types to graphite-base/462 May 14, 2025 10:31
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from f796886 to 8c3b97e Compare May 14, 2025 10:35
@lorisleiva lorisleiva force-pushed the graphite-base/462 branch from 6788405 to 810d6ab Compare May 14, 2025 10:35
@graphite-app graphite-app bot changed the base branch from graphite-base/462 to main May 14, 2025 10:35
@lorisleiva lorisleiva force-pushed the 05-06-make_fullysignedtransaction_composable branch from 8c3b97e to 8042266 Compare May 14, 2025 10:35
@github-actions github-actions bot added the stale label May 29, 2025
@github-actions github-actions bot closed this Jun 6, 2025
@lorisleiva lorisleiva reopened this Jun 6, 2025
@github-actions github-actions bot removed the stale label Jun 9, 2025
@lorisleiva lorisleiva added the do-not-close Add this tag to exempt an issue/PR from being closed by the stalebot label Jun 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do-not-close Add this tag to exempt an issue/PR from being closed by the stalebot
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants