apollo_http_server,blockifier_reexecution,starknet_api: move tx json deserializer to starknet_api#14408
Conversation
…deserializer to starknet_api Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
Artifacts upload workflows: |
PR SummaryLow Risk Overview
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
left a comment
There was a problem hiding this comment.
@Yoni-Starkware reviewed 7 files and all commit messages, and made 1 comment.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on Yoni-Starkware).
AvivYossef-starkware
left a comment
There was a problem hiding this comment.
@AvivYossef-starkware reviewed 7 files and all commit messages, and made 1 comment.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on avi-starkware).

Why
apollo_http_server— part of every node build — depends on the entireblockifier_reexecutioncrate (which drags inblockifierwith thereexecutionfeature,google-cloud-storage, blockingreqwest, and more) for exactly one item: thedeserialize_transaction_json_to_starknet_api_txserde helper.What
Moves
deserialize_transaction_json_to_starknet_api_tx(and its private helperupper_case_resource_bounds_names) tostarknet_api::serde_utils, where theTransactiontypes it produces live and where serde compat helpers already exist —apollo_http_serveralready imports from that module. The function body is moved verbatim; only visibility changed (upper_case_resource_bounds_namesbecomes private — it had no callers outside the deserializer) and a doc comment was added.apollo_http_serverno longer depends onblockifier_reexecutionat all.blockifier_reexecutionimports the function fromstarknet_api(itsserde_utilskeeps the reexecution-specific hashmap helpers).starknet_apialready hadserde_json; both consumers already hadstarknet_api.Validation
cargo build -p starknet_api -p blockifier_reexecution -p apollo_http_server— passes.cargo teston all three crates — 87 + 19 + 37 passed, 0 failed; theraw_rpc_json_testsuite (which exercises the moved deserializer on real transaction JSON fixtures) confirmed passing through the new import path.cargo clippy --no-deps --all-targetson all three — clean.scripts/rust_fmt.sh— applied.🤖 Generated with Claude Code