Skip to content

apollo_http_server,blockifier_reexecution,starknet_api: move tx json deserializer to starknet_api#14408

Merged
avi-starkware merged 1 commit into
main-v0.14.3from
avi/v0.14.3-http-server-drop-reexecution-dep
Jun 8, 2026
Merged

apollo_http_server,blockifier_reexecution,starknet_api: move tx json deserializer to starknet_api#14408
avi-starkware merged 1 commit into
main-v0.14.3from
avi/v0.14.3-http-server-drop-reexecution-dep

Conversation

@avi-starkware

@avi-starkware avi-starkware commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator

Why

apollo_http_server — part of every node build — depends on the entire blockifier_reexecution crate (which drags in blockifier with the reexecution feature, google-cloud-storage, blocking reqwest, and more) for exactly one item: the deserialize_transaction_json_to_starknet_api_tx serde helper.

What

Moves deserialize_transaction_json_to_starknet_api_tx (and its private helper upper_case_resource_bounds_names) to starknet_api::serde_utils, where the Transaction types it produces live and where serde compat helpers already exist — apollo_http_server already imports from that module. The function body is moved verbatim; only visibility changed (upper_case_resource_bounds_names becomes private — it had no callers outside the deserializer) and a doc comment was added.

  • apollo_http_server no longer depends on blockifier_reexecution at all.
  • blockifier_reexecution imports the function from starknet_api (its serde_utils keeps the reexecution-specific hashmap helpers).
  • No dependency additions anywhere: starknet_api already had serde_json; both consumers already had starknet_api.

Validation

  • cargo build -p starknet_api -p blockifier_reexecution -p apollo_http_server — passes.
  • cargo test on all three crates — 87 + 19 + 37 passed, 0 failed; the raw_rpc_json_test suite (which exercises the moved deserializer on real transaction JSON fixtures) confirmed passing through the new import path.
  • cargo clippy --no-deps --all-targets on all three — clean.
  • scripts/rust_fmt.sh — applied.

🤖 Generated with Claude Code

…deserializer to starknet_api

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@reviewable-StarkWare

Copy link
Copy Markdown

This change is Reviewable

avi-starkware commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator Author

@github-actions

github-actions Bot commented Jun 7, 2026

Copy link
Copy Markdown

Artifacts upload workflows:

@avi-starkware avi-starkware marked this pull request as ready for review June 7, 2026 13:35
@cursor

cursor Bot commented Jun 7, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Behavior-preserving relocation with existing tests on the deserializer; only build graph and import paths change for consumers.

Overview
deserialize_transaction_json_to_starknet_api_tx (and its private upper_case_resource_bounds_names helper) moves from blockifier_reexecution::serde_utils into starknet_api::serde_utils, next to the Transaction types and existing serde helpers. Logic is unchanged aside from a new doc comment and making the helper crate-private.

apollo_http_server drops the blockifier_reexecution dependency entirely and imports the deserializer from starknet_api (alongside bytes_from_hex_str). blockifier_reexecution now calls the shared helper from starknet_api; its serde_utils only keeps the reexecution-specific hashmap parsing helpers.

This is a dependency slimming change for node builds: the HTTP server no longer pulls in the reexecution stack for a single serde function.

Reviewed by Cursor Bugbot for commit 0cd1903. Bugbot is set up for automated code reviews on this repo. Configure here.

@Yoni-Starkware Yoni-Starkware left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

:lgtm:

@Yoni-Starkware reviewed 7 files and all commit messages, and made 1 comment.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on Yoni-Starkware).

@AvivYossef-starkware AvivYossef-starkware left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

:lgtm:

@AvivYossef-starkware reviewed 7 files and all commit messages, and made 1 comment.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on avi-starkware).

@avi-starkware avi-starkware added this pull request to the merge queue Jun 8, 2026
Merged via the queue into main-v0.14.3 with commit 7b6e416 Jun 8, 2026
51 of 76 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants