apollo_starknet_client: read DeployAccount v4 from the feeder gateway - #15079
Draft
ron-starkware wants to merge 1 commit into
Draft
apollo_starknet_client: read DeployAccount v4 from the feeder gateway#15079ron-starkware wants to merge 1 commit into
ron-starkware wants to merge 1 commit into
Conversation
The typed feeder-gateway reader bounced version 0x4 with "DeployAccount version is not supported", so sync-from-feeder and blockifier_reexecution could not see a v4 transaction at all. Route 0x4 to DeployAccountTransaction::V4 and extract the shared v3/v4 field validation, which is identical -- v4 is v3's field set, and only the version felt and the address derivation differ. The reexecution reader passes `deployed_contract_address: None`, so this makes `Transaction::from_api`'s version-dispatched derivation load-bearing for v4. The writer objects need no v4 variant: their DeployAccountTransaction enum is `#[serde(untagged)]`, so a variant with v3's exact field set would be indistinguishable on deserialization, and the v3-shaped struct already carries `version` as data. There is also no v4 producer on that path until the JSON-RPC spec adds the broadcasted type. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack — on top of #14819 (
ron/contract-address/v4-os-flow-e2e). Targets 0.14.5.The typed feeder-gateway reader bounced version
0x4with "DeployAccount version is not supported", so sync-from-feeder andblockifier_reexecutioncould not see a v4 transaction at all. This routes0x4toDeployAccountTransaction::V4and extracts the shared v3/v4 field validation — v4 is v3's field set, and only the version felt and the address derivation differ.The reexecution reader passes
deployed_contract_address: None, so this makesTransaction::from_api's version-dispatched derivation (#14815) load-bearing for v4.The writer objects need no v4 variant: their
DeployAccountTransactionenum is#[serde(untagged)], so a variant with v3's exact field set would be indistinguishable on deserialization, and the v3-shaped struct already carriesversionas data. There is also no v4 producer on that path until the JSON-RPC spec adds the broadcasted type.Tests: a
"version": "0x4"reader fixture that parses to V4 and round-trips, the v3/v4 field-equality check, and negatives — an invoke or declare with version0x4still fails.🤖 Generated with Claude Code