From f7d6e69b5407bc735ba2413bf7128d7e1f901b59 Mon Sep 17 00:00:00 2001 From: Markus Osterlund Date: Tue, 16 Jun 2026 13:02:24 -0500 Subject: [PATCH 1/2] feat: align deploy config for dev multiproof and allow zero teeImageHash (PRIV-1982) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update local-tee.json with the canonical devnet multiproofConfigHash (0x1bb15c...b1, computed by PerChainConfig for chain 1337) and set teeImageHash to zero (matching nitro-enclave local mode B256::ZERO). Move the teeImageHash non-zero require in _assertValidMultiproofInput into the production (non-dev) branch so dev multiproof deployments can use a zero image hash — there is no real Nitro enclave in dev mode. Co-authored-by: Cursor --- deploy-config/local-tee.json | 4 ++-- scripts/deploy/SystemDeploy.s.sol | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deploy-config/local-tee.json b/deploy-config/local-tee.json index 778d8b03..1eb28f1b 100644 --- a/deploy-config/local-tee.json +++ b/deploy-config/local-tee.json @@ -19,7 +19,7 @@ "l2OutputOracleStartingBlockNumber": 1, "l2OutputOracleStartingTimestamp": 1, "multiproofBlockInterval": 100, - "multiproofConfigHash": "0x0000000000000000000000000000000000000000000000000000000000000001", + "multiproofConfigHash": "0x1bb15c380e7cf5cfd303807cc1dff6cd5275a6facc7628091d8b3a7ab6d631b1", "multiproofGameType": 621, "multiproofGenesisBlockNumber": 0, "multiproofIntermediateBlockInterval": 10, @@ -41,7 +41,7 @@ "superchainConfigGuardian": "0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc", "superchainConfigIncidentResponder": "0x0000000000000000000000000000000000000000", "teeChallenger": "0x976EA74026E726554dB657fA54763abd0C3a0aa9", - "teeImageHash": "0x0000000000000000000000000000000000000000000000000000000000000001", + "teeImageHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "teeProposer": "0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc", "zkAggregationHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "zkRangeHash": "0x0000000000000000000000000000000000000000000000000000000000000000" diff --git a/scripts/deploy/SystemDeploy.s.sol b/scripts/deploy/SystemDeploy.s.sol index fc4d4a13..716c0d45 100644 --- a/scripts/deploy/SystemDeploy.s.sol +++ b/scripts/deploy/SystemDeploy.s.sol @@ -1110,7 +1110,6 @@ contract SystemDeploy is Script { } function _assertValidMultiproofInput(ImplementationInput memory _input) internal view { - require(_input.teeImageHash != bytes32(0), "SystemDeploy: teeImageHash not set"); require(_input.multiproofConfigHash != bytes32(0), "SystemDeploy: multiproofConfigHash not set"); require(_input.multiproofGameType != 0, "SystemDeploy: multiproofGameType not set"); require(_input.multiproofBlockInterval != 0, "SystemDeploy: multiproof block interval not set"); @@ -1130,6 +1129,7 @@ contract SystemDeploy is Script { "SystemDeploy: dev multiproof cannot be deployed on production chains" ); } else { + require(_input.teeImageHash != bytes32(0), "SystemDeploy: teeImageHash not set"); require(_input.zkRangeHash != bytes32(0), "SystemDeploy: zkRangeHash not set"); require(_input.zkAggregationHash != bytes32(0), "SystemDeploy: zkAggregationHash not set"); require(address(_input.sp1Verifier) != address(0), "SystemDeploy: sp1Verifier not set"); From f1a73f69156a0400edf8b9a3b15cc0066e21fdbe Mon Sep 17 00:00:00 2001 From: Markus Osterlund Date: Tue, 16 Jun 2026 13:58:07 -0500 Subject: [PATCH 2/2] fix: revert multiproofConfigHash to placeholder (PRIV-1982) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 0x1bb15c... hash corresponds to ChainConfig::DEVNET (chain 1337) which has all-zero genesis fields. local-tee.json deploys on Anvil chain 901 with real genesis data, so no pre-computed hash is correct for this ephemeral chain — use 0x00...01 as a non-zero placeholder to trigger the multiproof deployment path. The correct per-chain config hash for the real devnet (chain 84538453) will be set in the base repo deploy config template (PR3). Co-authored-by: Cursor --- deploy-config/local-tee.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy-config/local-tee.json b/deploy-config/local-tee.json index 1eb28f1b..53dc3efd 100644 --- a/deploy-config/local-tee.json +++ b/deploy-config/local-tee.json @@ -19,7 +19,7 @@ "l2OutputOracleStartingBlockNumber": 1, "l2OutputOracleStartingTimestamp": 1, "multiproofBlockInterval": 100, - "multiproofConfigHash": "0x1bb15c380e7cf5cfd303807cc1dff6cd5275a6facc7628091d8b3a7ab6d631b1", + "multiproofConfigHash": "0x0000000000000000000000000000000000000000000000000000000000000001", "multiproofGameType": 621, "multiproofGenesisBlockNumber": 0, "multiproofIntermediateBlockInterval": 10,