blockifier: enable Blake2 contract-address derivation at StarknetVersion 0.14.4#14547
Draft
ron-starkware wants to merge 1 commit into
Draft
Conversation
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
|
Artifacts upload workflows: |
af36d9b to
4cde6b1
Compare
448fcb3 to
543f4a8
Compare
4cde6b1 to
c46e984
Compare
543f4a8 to
3e9a800
Compare
37e0999 to
d8ccc8d
Compare
3e9a800 to
8a7f1fc
Compare
e2e0926 to
15f6c2a
Compare
…StarknetVersion 0.14.4 Activate the Pedersen->Blake2 contract-address derivation migration, gated purely by the block's Starknet version (no runtime flag), mirroring the 0.14.3 OS-config-hash Blake migration. - blockifier: the deploy and deprecated-deploy syscalls select the hash via AddressDerivationHash::for_version(block_info().starknet_version). - OS (Cairo): the deploy syscall, deprecated deploy, and deploy-account paths derive the address with get_contract_address_blake directly; the Pedersen wrapper, the use_blake_address_derivation hint / Ids var, and the OsHintsConfig flag are removed -- the post-0.14.4 OS binary is the gate. - Production / consensus derivation sites (gateway, consensus proposal validation, transaction converter, RPC execution, block re-execution, the flow-test harness, RpcTransaction::calculate_sender_address) select via for_version: LATEST at ingestion, the block's version at replay. Regenerate the affected fixtures: OS os_resources -> constants.cairo -> program_hash (DEPLOY_GAS_COST 147120 -> 159540: Blake2s costs more in-VM than the Pedersen builtin, raising the deploy syscall ~8%, while the per-calldata factor drops 4850 -> 1570), the OS program bytecode lengths, the OS-flow fixtures + hint-coverage + fuzz address literals, the deploy-syscall gas, the stack-trace constructor frames, the versioned-constants diff, the cende blob regression fixtures, and the proof-flow fixtures (genesis global root + the stwo proof). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
15f6c2a to
2948bc5
Compare
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.

Activation: Blake2 contract-address derivation at 0.14.4
Second of two PRs (stacked on #14539). Activates the Pedersen → Blake2 migration, gated purely by the block's Starknet version — no runtime flag, mirroring the 0.14.3 OS-config-hash Blake migration.
Execution / OS
blockifier: deploy + deprecated-deploy syscalls select viaAddressDerivationHash::for_version(block_info().starknet_version).get_contract_address_blakedirectly; the Pedersen wrapper, theuse_blake_address_derivationhint /Idsvar, and theOsHintsConfigflag are removed — the post-0.14.4 OS binary is the gate.Production / consensus derivation sites select via
for_version:LATESTat ingestion (gateway, consensus proposal validation, transaction converter), the block's own version at replay (RPC execution, block re-execution).RpcTransaction::calculate_sender_addressand the test harnesses trackfor_version(LATEST).Regenerated fixtures: OS
os_resources→constants.cairo→program_hash(DEPLOY_GAS_COST162840 → 159540, lower without the wrapper branch), OS-flow fixtures + hint-coverage + fuzz address literals, deploy-syscall gas, stack-trace constructor frames, versioned-constants diff.Verification:
blockifier965 passed / 0 failed;starknet_os_flow_tests113 passed / 0 failed (clean run, noUPDATE_EXPECT).🤖 Generated with Claude Code