Skip to content

add loadedAccountsDataSize to simulate transaction response#521

Merged
steveluscher merged 8 commits into
anza-xyz:mainfrom
tao-stones:add-loaded-data-size-to-sim-response
Aug 28, 2025
Merged

add loadedAccountsDataSize to simulate transaction response#521
steveluscher merged 8 commits into
anza-xyz:mainfrom
tao-stones:add-loaded-data-size-to-sim-response

Conversation

@tao-stones
Copy link
Copy Markdown
Contributor

@tao-stones tao-stones commented Jun 3, 2025

Problem

anza-xyz/agave#6023 adds loaded-accounts-data-size to simulate transaction result.

Summary of Changes

  • add new field to RPC response

Implements #541.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Jun 3, 2025

🦋 Changeset detected

Latest commit: a3d0c4e

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

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

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

@bundlemon
Copy link
Copy Markdown

bundlemon Bot commented Jun 3, 2025

BundleMon

Files updated (4)
Status Path Size Limits
@solana/kit production bundle
kit/dist/index.production.min.js
34.4KB (+13B +0.04%) -
rpc-api/dist/index.browser.mjs
976B (+13B +1.35%) -
rpc-api/dist/index.native.mjs
975B (+13B +1.35%) -
rpc-api/dist/index.node.mjs
973B (+12B +1.25%) -
Unchanged files (123)
Status Path Size Limits
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-spec-types/dist/index.native.mjs
962B -
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 -

Total files change +51B +0.01%

Final result: ✅

View report in BundleMon website ➡️


Current branch size history | Target branch size history

Copy link
Copy Markdown
Contributor

@steveluscher steveluscher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! Just alpha-order those properties, and then add an allowlist entry to tell the system that it's allowed to be a number instead of a bigint.

You'll almost certainly need to update simulate-transaction.test.ts also.

You can get tests running by doing:

pnpm install
cd packages/rpc-api/
pnpm turbo compile:typedefs compile:js
pnpm dev

The last step starts up a persistent server that runs lint & tests whenever you save a file.

Comment thread packages/rpc-api/src/simulateTransaction.ts Outdated
@@ -0,0 +1,5 @@
---
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since it changes response, thought a changeset is needed?

Comment thread packages/rpc-api/src/index.ts Outdated
@steveluscher
Copy link
Copy Markdown
Contributor

Looks good! I fixed up lint and pushed a change to the keypath.

Ironic thing is that your tests won't pass until the validator starts to emit this value, so we'll have to wait to land this PR until then.

@steveluscher steveluscher added the do-not-close Add this tag to exempt an issue/PR from being closed by the stalebot label Jun 6, 2025
@tao-stones
Copy link
Copy Markdown
Contributor Author

Looks good! I fixed up lint and pushed a change to the keypath.

Thank you!

Ironic thing is that your tests won't pass until the validator starts to emit this value, so we'll have to wait to land this PR until then.

Ah, that explains why my local test keeping error out! I'll change this PR to "ready for review" (a post fact :D) for now.

@tao-stones tao-stones marked this pull request as ready for review June 7, 2025 02:47
@steveluscher steveluscher added the enhancement New feature or request label Jun 20, 2025
@steveluscher steveluscher merged commit 98bde94 into anza-xyz:main Aug 28, 2025
6 of 10 checks passed
@steveluscher steveluscher added the backport backport/v3.x Automatically generates a PR to backport this change to the `backport/v3.x` branch. label Sep 2, 2025
github-actions Bot pushed a commit that referenced this pull request Sep 2, 2025
* add loadedAccountsDataSize to simulate transaction response

* alpha-order new field with type number

* update test

* add changeset

* alpha-order error code

* update set-transaction-test for added field

* Ran `pnpm style:fix`

* Change allowed numeric path to `value.loadedAccountsDataSize`

---------

Co-authored-by: Steven Luscher <steven.luscher@anza.xyz>
(cherry picked from commit 98bde94)
steveluscher added a commit that referenced this pull request Sep 2, 2025
)

* add loadedAccountsDataSize to simulate transaction response

* alpha-order new field with type number

* update test

* add changeset

* alpha-order error code

* update set-transaction-test for added field

* Ran `pnpm style:fix`

* Change allowed numeric path to `value.loadedAccountsDataSize`

---------


(cherry picked from commit 98bde94)

Co-authored-by: Tao Zhu <82401714+tao-stones@users.noreply.github.com>
Co-authored-by: Steven Luscher <steven.luscher@anza.xyz>
@github-actions github-actions Bot mentioned this pull request Sep 3, 2025
@github-actions
Copy link
Copy Markdown
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.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Sep 17, 2025
@tao-stones tao-stones deleted the add-loaded-data-size-to-sim-response branch September 17, 2025 13:56
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

backport backport/v3.x Automatically generates a PR to backport this change to the `backport/v3.x` branch. do-not-close Add this tag to exempt an issue/PR from being closed by the stalebot enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants