@@ -23,6 +23,9 @@ parameters:
2323  fault_proofs_dispatch :
2424    type : boolean 
2525    default : false 
26+   reproducibility_dispatch :
27+     type : boolean 
28+     default : false 
2629  kontrol_dispatch :
2730    type : boolean 
2831    default : false 
@@ -1110,6 +1113,48 @@ jobs:
11101113            - " op-program/bin/meta.json" 
11111114            - " op-program/bin/prestate-proof.json" 
11121115
1116+   preimage-reproducibility :
1117+     docker :
1118+       - image : <<pipeline.parameters.ci_builder_image>> 
1119+     parameters :
1120+       version :
1121+         type : string 
1122+     steps :
1123+       - checkout 
1124+       - setup_remote_docker 
1125+       - run :
1126+           name : Switch to tag 
1127+           command : | 
1128+             git fetch 
1129+             git checkout "op-program/v<<parameters.version>>" 
1130+             git submodule update --init --recursive 
1131+ run :
1132+           name : Set expected prestate hashes 
1133+           command : | 
1134+             if [[ "<<parameters.version>>" == "0.1.0" ]]; then 
1135+               echo 'export EXPECTED_PRESTATE_HASH="0x038942ec840131a63c49fa514a3f0577ae401fd5584d56ad50cdf5a8b41d4538"' >> $BASH_ENV 
1136+             elif [[ "<<parameters.version>>" == "0.2.0" ]]; then 
1137+               echo 'export EXPECTED_PRESTATE_HASH="0x031e3b504740d0b1264e8cf72b6dde0d497184cfb3f98e451c6be8b33bd3f808"' >> $BASH_ENV 
1138+             else 
1139+               echo "Unknown prestate version <<parameters.version>>" 
1140+               exit 1 
1141+             fi 
1142+ run :
1143+           name : Build prestate 
1144+           command : make reproducible-prestate 
1145+       - run :
1146+           name : Verify prestate 
1147+           command : | 
1148+             ACTUAL=$(jq -r .pre ./op-program/bin/prestate-proof.json) 
1149+             echo "Expected: ${EXPECTED_PRESTATE_HASH}" 
1150+             echo "Actual:   ${ACTUAL}" 
1151+             if [[ "${EXPECTED_PRESTATE_HASH}" != "${ACTUAL}" ]] 
1152+             then 
1153+               echo "Prestate has did not match expected" 
1154+               exit 1 
1155+             fi 
1156+ 
1157+ 
11131158devnet-allocs :
11141159    docker :
11151160      - image : <<pipeline.parameters.ci_builder_image>> 
@@ -2274,3 +2319,15 @@ workflows:
22742319          context :
22752320            - slack 
22762321            - oplabs-etherscan 
2322+ 
2323+   scheduled-preimage-reproducibility :
2324+     when :
2325+       or :
2326+         - equal : [build_daily, <<pipeline.schedule.name>> ] 
2327+         #  Trigger on manual triggers if explicitly requested
2328+         - equal : [ true, << pipeline.parameters.reproducibility_dispatch >> ] 
2329+     jobs :
2330+       - preimage-reproducibility :
2331+           matrix :
2332+             parameters :
2333+               version : ["0.1.0", "0.2.0"] 
0 commit comments