apollo_transaction_converter: version-gate deploy-account address derivation#14545
Closed
ron-starkware wants to merge 1 commit into
Closed
Conversation
…ivation Deploy-account contract addresses are derived inside the shared private helper convert_rpc_tx_to_internal, reached from two public converter methods: convert_rpc_tx_to_internal_rpc_tx (gateway tx ingestion) and convert_consensus_tx_to_internal_consensus_tx (consensus proposal validation). Both now take an AddressDerivationHash parameter, resolved at the call site from the expected (latest) versioned constants (address_derivation_hash()). Both call sites - apollo_gateway and apollo_consensus_orchestrator - already depend on blockifier, so the hash is resolved where it's used rather than where the converter is built; TransactionConverter::new is unchanged, so the batcher/consensus-manager/ mempool-p2p construction sites are untouched and no inert default is threaded through them. InternalRpcDeployAccountTransaction's tx hash now reuses the contract address stored during conversion instead of recomputing it, so the version-gated address flows into the hash. Dormant on its own: the hash is Pedersen for all versions until the activation flag is enabled. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jun 17, 2026
Closed
Contributor
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
This was referenced Jun 17, 2026
Closed
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.

Deploy-account contract addresses are derived inside the shared private
helper convert_rpc_tx_to_internal, reached from two public converter
methods: convert_rpc_tx_to_internal_rpc_tx (gateway tx ingestion) and
convert_consensus_tx_to_internal_consensus_tx (consensus proposal
validation). Both now take an AddressDerivationHash parameter, resolved at
the call site from the expected (latest) versioned constants
(address_derivation_hash()). Both call sites - apollo_gateway and
apollo_consensus_orchestrator - already depend on blockifier, so the hash
is resolved where it's used rather than where the converter is built;
TransactionConverter::new is unchanged, so the batcher/consensus-manager/
mempool-p2p construction sites are untouched and no inert default is
threaded through them.
InternalRpcDeployAccountTransaction's tx hash now reuses the contract
address stored during conversion instead of recomputing it, so the
version-gated address flows into the hash. Dormant on its own: the hash is
Pedersen for all versions until the activation flag is enabled.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com