Commit b28f9eef authored by Juan C's avatar Juan C Committed by GitHub

Update Kontrol Proofs (`0.1.247` to `0.1.316`) (#10953)

* Remove `Kontrol-Deploy.json`

* Remove `DeploymentSummaryFaultProofs` contracts

* Revert "Remove `DeploymentSummaryFaultProofs` contracts"

This reverts commit 192ac49acc76f98476caef40fa7af6bfb527282d.

* pausability-lemmas.md: update `copy-memory-to-memory` rule

* KontrolDeployment: add full deployment logic

* DeploymentSummary: sync with full deployment logic

* DeploymentSummaryFaultProofs: sync with full deployment logic

* Bump Kontrol from `0.1.247` to `0.1.313`

* run-kontrol.sh: update `kontrol prove` options

* make-sumary-deployment.sh: remove logic manipulating `Deploy.s.sol`

* Track `snapshots/state-diff/Kontrol-31337.json`

* `kontrol/README.md`: update

* OptimismPortalKontrol: remove `encodeWithSelector` from `expectRevert`

* run-kontrol.sh: set booster max recursion limit to `100`

* Kontrol-31337.json: update with non-fault-proofs deployment

* package.json: change order of evaluation for `snapshots` job

Both `pnpm kontrol-summary-fp` and `pnpm kontrol-summary` save the state updates
to `snapshots/state-diff/Kontrol-31337.json`. In order to correctly test the
non-fault-proof deployment setting `pnpm kontrol-summary` has to be run last.

* Bump Kontrol from `0.1.313` to `0.1.316`

* Update `DeploymentSummaryFaultProofs`
parent 6e8a133d
......@@ -34,7 +34,6 @@ deployments/kontrol.json
deployments/kontrol.jsonReversed
deployments/kontrol-fp.json
deployments/kontrol-fp.jsonReversed
snapshots/state-diff/Kontrol-31337.json
# Devnet config which changes with each 'make devnet-up'
deploy-config/devnetL1.json
......
......@@ -25,7 +25,7 @@
"gas-snapshot": "pnpm build:go-ffi && pnpm gas-snapshot:no-build",
"kontrol-summary": "./test/kontrol/scripts/make-summary-deployment.sh",
"kontrol-summary-fp": "KONTROL_FP_DEPLOYMENT=true pnpm kontrol-summary",
"snapshots": "forge build && npx tsx scripts/autogen/generate-snapshots.ts && pnpm kontrol-summary && pnpm kontrol-summary-fp",
"snapshots": "forge build && npx tsx scripts/autogen/generate-snapshots.ts && pnpm kontrol-summary-fp && pnpm kontrol-summary",
"snapshots:check": "./scripts/checks/check-snapshots.sh",
"semver-lock": "forge script scripts/SemverLock.s.sol",
"validate-deploy-configs": "./scripts/checks/check-deploy-configs.sh",
......
......@@ -36,8 +36,9 @@ The directory is structured as follows
<pre>
├── <a href="./pausability-lemmas.md">pausability-lemmas.md</a>: File containing the necessary lemmas for this project
├── <a href="./deployment">deployment</a>: Custom deploy sequence for Kontrol proofs and tests for its <a href="https://github.com/runtimeverification/kontrol/pull/271">fast summarization</a>
│ ├── <a href="./deployment/KontrolDeployment.sol">KontrolDeployment.sol</a>: Simplified deployment sequence for Kontrol proofs
│ └── <a href="./deployment/DeploymentSummary.t.sol">DeploymentSummary.t.sol</a>: Tests for the summarization of custom deployment
│ ├── <a href="./deployment/KontrolDeployment.sol">KontrolDeployment.sol</a>: Deployment sequence for Kontrol proofs
│ ├── <a href="./deployment/DeploymentSummary.t.sol">DeploymentSummary.t.sol</a>: Tests for the summarization of classic deployment
│ └── <a href="./deployment/DeploymentSummaryFaultProofs.t.sol">DeploymentSummaryFaultProofs.t.sol</a>: Tests for the summarization of fault proofs deployment
├── <a href="./proofs">proofs</a>: Where the proofs (tests) themselves live
│ ├── *.k.sol</a>: Symbolic property tests for contracts
│ ├── <a href="./proofs/interfaces">interfaces</a>: Interface files for src contracts, to avoid unnecessary compilation of contracts
......@@ -72,7 +73,7 @@ First, generate a deployment summary contract from the deploy script in [`Kontro
The [`make-summary-deployment.sh`](./scripts/make-summary-deployment.sh) supports the same execution modes as `run-kontrol.sh` below.
[`KontrolDeployment.sol`](./deployment/KontrolDeployment.sol) contains the minimal deployment sequence required by the proofs.
[`KontrolDeployment.sol`](./deployment/KontrolDeployment.sol) contains the deployment sequence required by the proofs.
The [`make-summary-deployment.sh`](./scripts/make-summary-deployment.sh) script will generate a JSON state diff. This state diff is used in two ways by Kontrol.
First, Kontrol generates a summary contract recreating the state diffs recorded in the JSON. This contract is used to test that the information contained in the generated JSON is correct and aids in the specification of the symbolic property tests. The generation of this contract is also handled by the `make-summary-deployment.sh` script.
Second, the state diff JSON is used to load the post-deployment state directly into Kontrol when running the proofs.
......@@ -111,12 +112,10 @@ These are the instructions to add a new proof to this project. If all functions
#### Make Kontrol aware of the new contract being tested
The `runKontrolDeployment` function of [`KontrolDeployment`](./deployment/KontrolDeployment.sol) partially reproduces the deployment process laid out in the `_run` function of [`Deploy.s.sol`](../../scripts/deploy/Deploy.s.sol). `runKontrolDeployment` has the `stateDiff` modifier to make use of [Foundry's state diff cheatcodes](https://book.getfoundry.sh/cheatcodes/start-state-diff-recording). Kontrol utilizes the JSON resulting from this modifier for two purposes:
The `runKontrolDeployment` function of [`KontrolDeployment`](./deployment/KontrolDeployment.sol) reproduces the deployment process laid out in the `_run` function of [`Deploy.s.sol`](../../scripts/deploy/Deploy.s.sol). `runKontrolDeployment` has the `stateDiff` modifier to make use of [Foundry's state diff cheatcodes](https://book.getfoundry.sh/cheatcodes/start-state-diff-recording). Kontrol utilizes the JSON resulting from this modifier for two purposes:
1. Load all the state updates generated by `runKontrolDeployment` as the initial configuration for all proofs, effectively offloading the computation of the deployment process to `forge` and thus improving performance.
2. Produce the [`DeploymentSummary`](./proofs/utils/DeploymentSummary.sol) script contract to test that the produced JSON contains correct updates.
Hence, in order to write a proof for a contract which is not present in `KontrolDeployment` it must be added there first. To add a new contract, properly inspect the above-mentioned `_run` function and place the corresponding deployment steps of the contract appropriately within the `runKontrolDeployment` function.
Once new deployment steps have been added to `runKontrolDeployment` the state-diff files have to [be rebuilt](#build-deployment-summary).
#### Include existing tests on the new state-diff recorded bytecode
......@@ -173,7 +172,7 @@ As described in [Execute Proofs](#execute-proofs), there's a `script` mode for s
### Deployment Summary Process
As mentioned above, a deployment summary contract is first generated before executing the proofs.
This is because the proof execution leverages Kontrol's [fast summarization](https://github.com/runtimeverification/kontrol/pull/271) feature, which allows loading the post-`setUp` state directly into Kontrol.
This is because the proof execution leverages Kontrol's [fast summarization](https://github.com/runtimeverification/kontrol/tree/master/docs/external-computation) feature, which allows loading the post-`setUp` state directly into Kontrol.
This provides a significant reduction in proof execution time, as it avoids the need to execute the deployment script every time the proofs are run.
All code executed in Kontrol—even when execution is concrete and not symbolic—is significantly slower than in Foundry, due to the mathematical representation of the EVM in Kontrol.
......@@ -191,7 +190,3 @@ Therefore, the snapshots CI check will fail if the committed Kontrol state diff
Note that the CI check only compares the JSON state diff, not the generated `DeploymentSummary.sol` or `DeploymentSummaryCode` contracts.
This is for simplicity, as those three files will be in sync upon successful execution of the `make-summary-deployment.sh` script.
We commit the `DeploymentSummary.sol` and `DeploymentSummaryCode.sol` contracts, because forge fails to build if those contracts are not present—it is simpler to commit these autogenerated files than to workaround their absence in forge builds.
During `make-summary-deployment.sh`, the `mustGetAddress` usage in `Deploy.s.sol` is temporarily replaced by `getAddress`—the former reverts if the deployed contract does not exist, while the latter returns the zero address.
This is required because the deploy script in `KontrolDeployment.sol` is does not fully reproduce all deployments in `Deploy.s.sol`, so the `mustGetAddress` usage would cause the script to revert since some contracts are not deployed.
`KontrolDeployment.sol` is a simplified, minimal deployment sequence for Kontrol proofs, and is not intended to be a full deployment sequence for the contracts in `contracts-bedrock`.
......@@ -4,74 +4,12 @@ pragma solidity ^0.8.0;
import { Deploy } from "scripts/deploy/Deploy.s.sol";
contract KontrolDeployment is Deploy {
function runKontrolDeployment() public stateDiff {
deploySafe("SystemOwnerSafe");
setupSuperchain();
// deployProxies();
deployERC1967Proxy("OptimismPortalProxy");
deployERC1967Proxy("L2OutputOracleProxy");
deployERC1967Proxy("SystemConfigProxy");
deployL1StandardBridgeProxy();
deployL1CrossDomainMessengerProxy();
deployERC1967Proxy("L1ERC721BridgeProxy");
transferAddressManagerOwnership(); // to the ProxyAdmin
// deployImplementations();
deployOptimismPortal();
deployL1CrossDomainMessenger();
deployL2OutputOracle();
deploySystemConfig();
deployL1StandardBridge();
deployL1ERC721Bridge();
// initializeImplementations();
initializeSystemConfig();
initializeL1StandardBridge();
initializeL1ERC721Bridge();
initializeL1CrossDomainMessenger();
initializeOptimismPortal();
function runKontrolDeployment() public {
runWithStateDiff();
}
function runKontrolDeploymentFaultProofs() public stateDiff {
deploySafe("SystemOwnerSafe");
setupSuperchain();
// deployProxies();
deployERC1967Proxy("OptimismPortalProxy");
deployERC1967Proxy("DisputeGameFactoryProxy");
deployERC1967Proxy("AnchorStateRegistryProxy");
deployERC1967Proxy("DelayedWETHProxy");
deployERC1967Proxy("SystemConfigProxy");
deployL1StandardBridgeProxy();
deployL1CrossDomainMessengerProxy();
deployERC1967Proxy("L1ERC721BridgeProxy");
transferAddressManagerOwnership(); // to the ProxyAdmin
// deployImplementations();
deployOptimismPortal2();
deployL1CrossDomainMessenger();
deploySystemConfig();
deployL1StandardBridge();
deployL1ERC721Bridge();
deployDisputeGameFactory();
deployDelayedWETH();
deployPreimageOracle();
deployMips();
deployAnchorStateRegistry();
// initializeImplementations();
initializeSystemConfig();
initializeL1StandardBridge();
initializeL1ERC721Bridge();
initializeL1CrossDomainMessenger();
initializeDisputeGameFactory();
initializeDelayedWETH();
initializeAnchorStateRegistry();
initializeOptimismPortal2();
// Set dispute game implementations in DGF
setCannonFaultGameImplementation({ _allowUpgrade: false });
setPermissionedCannonFaultGameImplementation({ _allowUpgrade: false });
function runKontrolDeploymentFaultProofs() public {
cfg.setUseFaultProofs(true);
runWithStateDiff();
}
}
......@@ -202,17 +202,17 @@ The summary lemma is as follows, with commentary inlined:
// Various well-formedness constraints. In particular, the maxBytesLength-related ones are present to
// remove various chops that would otherwise creep into the execution, and are reasonable since byte
// arrays in actual programs would never reach that size.
andBool 0 <=Int PCOUNT
andBool 0 <=Int LENGTH andBool LENGTH <Int maxBytesLength
andBool 0 <=Int SRC andBool SRC <Int maxBytesLength
andBool 0 <=Int DEST andBool DEST <Int maxBytesLength
andBool #sizeWordStack(WS) <=Int 1015
andBool SRC +Int LENGTH <=Int DEST // No overlap between source and destination
andBool DEST <=Int lengthBytes(LM) // Destination starts within current memory
andThenBool 0 <=Int PCOUNT
andThenBool 0 <=Int LENGTH andThenBool LENGTH <Int maxBytesLength
andThenBool 0 <=Int SRC andThenBool SRC <Int maxBytesLength
andThenBool 0 <=Int DEST andThenBool DEST <Int maxBytesLength
andThenBool #sizeWordStack(WS) <=Int 1015
andThenBool SRC +Int LENGTH <=Int DEST // No overlap between source and destination
andThenBool DEST <=Int lengthBytes(LM) // Destination starts within current memory
andThenBool PCOUNT +Int 51 <Int lengthBytes(JUMPDESTS) // We're not look outside of the JUMPDESTs bytearray
// All JUMPDESTs in the program are valid
andBool (PCOUNT +Int 2) in JUMPDESTS andBool (PCOUNT +Int 32) in JUMPDESTS andBool (PCOUNT +Int 51) in JUMPDESTS
andBool PCOUNT +Int 51 <Int 2 ^Int 16 // and fit into two bytes
andThenBool JUMPDESTS[PCOUNT +Int 2] ==Int 1 andThenBool JUMPDESTS[PCOUNT +Int 32] ==Int 1 andThenBool JUMPDESTS[PCOUNT +Int 51] ==Int 1
andThenBool PCOUNT +Int 51 <Int 2 ^Int 16 // and fit into two bytes
[priority(30), concrete(JUMPDESTS, PROGRAM, PCOUNT), preserves-definedness]
endmodule
......
......@@ -28,10 +28,7 @@ contract OptimismPortalKontrol is DeploymentSummary, KontrolUtils {
vm.prank(optimismPortal.guardian());
superchainConfig.pause("identifier");
// We need to encode the error selector as bytes instead of bytes4 because the bytes4 signature
// it's not currently supported
// Tracking issue: https://github.com/runtimeverification/kontrol/issues/466
vm.expectRevert(abi.encodeWithSelector(CallPaused.selector));
vm.expectRevert(CallPaused.selector);
optimismPortal.finalizeWithdrawalTransaction(_tx);
}
......@@ -52,10 +49,7 @@ contract OptimismPortalKontrol is DeploymentSummary, KontrolUtils {
vm.prank(optimismPortal.guardian());
superchainConfig.pause("identifier");
// We need to encode the error selector as bytes instead of bytes4 because the bytes4 signature
// it's not currently supported
// Tracking issue: https://github.com/runtimeverification/kontrol/issues/466
vm.expectRevert(abi.encodeWithSelector(CallPaused.selector));
vm.expectRevert(CallPaused.selector);
optimismPortal.proveWithdrawalTransaction(_tx, _l2OutputIndex, _outputRootProof, _withdrawalProof);
}
......
......@@ -28,10 +28,7 @@ contract OptimismPortal2Kontrol is DeploymentSummaryFaultProofs, KontrolUtils {
vm.prank(optimismPortal.guardian());
superchainConfig.pause("identifier");
// We need to encode the error selector as bytes instead of bytes4 because the bytes4 signature
// it's not currently supported
// Tracking issue: https://github.com/runtimeverification/kontrol/issues/466
vm.expectRevert(abi.encodeWithSelector(CallPaused.selector));
vm.expectRevert(CallPaused.selector);
optimismPortal.finalizeWithdrawalTransaction(_tx);
}
......@@ -52,10 +49,7 @@ contract OptimismPortal2Kontrol is DeploymentSummaryFaultProofs, KontrolUtils {
vm.prank(optimismPortal.guardian());
superchainConfig.pause("identifier");
// We need to encode the error selector as bytes instead of bytes4 because the bytes4 signature
// it's not currently supported
// Tracking issue: https://github.com/runtimeverification/kontrol/issues/466
vm.expectRevert(abi.encodeWithSelector(CallPaused.selector));
vm.expectRevert(CallPaused.selector);
optimismPortal.proveWithdrawalTransaction(_tx, _l2OutputIndex, _outputRootProof, _withdrawalProof);
}
......
......@@ -13,16 +13,27 @@ contract DeploymentSummary is DeploymentSummaryCode {
Vm private constant vm = Vm(VM_ADDRESS);
address internal constant addressManagerAddress = 0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3;
address internal constant anchorStateRegistryAddress = 0x610C37dd344e47D7848Da075a90128472140e80f;
address internal constant anchorStateRegistryProxyAddress = 0x39Af23E00F1e662025aA01b0cEdA19542B78DF99;
address internal constant delayedWETHAddress = 0x49BBFf1629824A1e7993Ab5c17AFa45D24AB28c9;
address internal constant delayedWETHProxyAddress = 0x5207CfA0166E8de0FCdFd78B4d17b68587bE306d;
address internal constant disputeGameFactoryAddress = 0x20B168142354Cee65a32f6D8cf3033E592299765;
address internal constant disputeGameFactoryProxyAddress = 0xc7B87b2b892EA5C3CfF47168881FE168C00377FB;
address internal constant l1CrossDomainMessengerAddress = 0x094e6508ba9d9bf1ce421fff3dE06aE56e67901b;
address internal constant l1CrossDomainMessengerProxyAddress = 0x20A42a5a785622c6Ba2576B2D6e924aA82BFA11D;
address internal constant l1CrossDomainMessengerProxyAddress = 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6;
address internal constant l1ERC721BridgeAddress = 0x5C4F5e749A61a9503c4AAE8a9393e89609a0e804;
address internal constant l1ERC721BridgeProxyAddress = 0xDeF3bca8c80064589E6787477FFa7Dd616B5574F;
address internal constant l1StandardBridgeAddress = 0xb7900B27Be8f0E0fF65d1C3A4671e1220437dd2b;
address internal constant l1StandardBridgeProxyAddress = 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6;
address internal constant l1StandardBridgeProxyAddress = 0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4;
address internal constant l2OutputOracleAddress = 0x19652082F846171168Daf378C4fD3ee85a0D4A60;
address internal constant l2OutputOracleProxyAddress = 0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb;
address internal constant l2OutputOracleProxyAddress = 0xD31598c909d9C935a9e35bA70d9a3DD47d4D5865;
address internal constant mipsAddress = 0xcdAdd729ca2319E8955240bDb61A6A6A956A7664;
address internal constant optimismMintableERC20FactoryAddress = 0x39Aea2Dd53f2d01c15877aCc2791af6BDD7aD567;
address internal constant optimismMintableERC20FactoryProxyAddress = 0x20A42a5a785622c6Ba2576B2D6e924aA82BFA11D;
address internal constant optimismPortalAddress = 0xbdD90485FCbcac869D5b5752179815a3103d8131;
address internal constant optimismPortal2Address = 0xfcbb237388CaF5b08175C9927a37aB6450acd535;
address internal constant optimismPortalProxyAddress = 0x978e3286EB805934215a88694d80b09aDed68D90;
address internal constant preimageOracleAddress = 0x3bd7E801E51d48c5d94Ea68e8B801DFFC275De75;
address internal constant protocolVersionsAddress = 0xfbfD64a6C0257F613feFCe050Aa30ecC3E3d7C3F;
address internal constant protocolVersionsProxyAddress = 0x416C42991d05b31E9A6dC209e91AD22b79D87Ae6;
address internal constant proxyAdminAddress = 0xDB8cFf278adCCF9E9b5da745B44E754fC4EE3C76;
......@@ -31,8 +42,10 @@ contract DeploymentSummary is DeploymentSummaryCode {
address internal constant superchainConfigAddress = 0x068E44eB31e111028c41598E4535be7468674D0A;
address internal constant superchainConfigProxyAddress = 0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809;
address internal constant systemConfigAddress = 0x67866A5052E5302aaD08e9f352331fd8622eB6DC;
address internal constant systemConfigProxyAddress = 0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4;
address internal constant systemConfigProxyAddress = 0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb;
address internal constant systemOwnerSafeAddress = 0x7EA964E5D864b95f6D7d2BD04dA897F6e31084b3;
address internal constant acc32Address = 0xcE8C32b1493DB37767fAF988dEC9E80089f4f33c;
address internal constant acc33Address = 0x357A483a8923686E7fA454Ee93bbc11aFB114743;
function recreateDeployment() public {
bytes32 slot;
......@@ -152,10 +165,6 @@ contract DeploymentSummary is DeploymentSummaryCode {
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(optimismPortalProxyAddress, slot, value);
vm.etch(l2OutputOracleProxyAddress, l2OutputOracleProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(l2OutputOracleProxyAddress, slot, value);
vm.etch(systemConfigProxyAddress, systemConfigProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
......@@ -165,35 +174,39 @@ contract DeploymentSummary is DeploymentSummaryCode {
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(l1StandardBridgeProxyAddress, slot, value);
vm.etch(l1CrossDomainMessengerProxyAddress, l1CrossDomainMessengerProxyCode);
slot = hex"540cf4e2f45b866b44f44bde51e109474016dc46a0670fbe1684ad8eaf90fdc3";
slot = hex"a8f0d50211ac8ff1a40793a899dff3ced4762e0466f69b0078ab7b00d037835c";
value = hex"000000000000000000000000bb2180ebd78ce97360503434ed37fcf4a1df61c3";
vm.store(l1CrossDomainMessengerProxyAddress, slot, value);
slot = hex"4505be7acf20898edfef2b5289635349881ad9bf4b57316a74e81e2abec2be52";
slot = hex"eae32376463217751b8fa4dea8c38ab253664fa3605de6d85d2e790aa970f2b8";
value = hex"4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000034";
vm.store(l1CrossDomainMessengerProxyAddress, slot, value);
vm.etch(optimismMintableERC20FactoryProxyAddress, optimismMintableERC20FactoryProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
vm.etch(l1ERC721BridgeProxyAddress, l1ERC721BridgeProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(l1ERC721BridgeProxyAddress, slot, value);
vm.etch(disputeGameFactoryProxyAddress, disputeGameFactoryProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(disputeGameFactoryProxyAddress, slot, value);
vm.etch(l2OutputOracleProxyAddress, l2OutputOracleProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(l2OutputOracleProxyAddress, slot, value);
vm.etch(delayedWETHProxyAddress, delayedWETHProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(delayedWETHProxyAddress, slot, value);
vm.etch(anchorStateRegistryProxyAddress, anchorStateRegistryProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(addressManagerAddress, slot, value);
vm.etch(optimismPortalAddress, optimismPortalCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000032";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000100000000000000000000000000000000000000003b9aca00";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalAddress, slot, value);
vm.etch(l1CrossDomainMessengerAddress, l1CrossDomainMessengerCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000010000000000000000000000000000000000000000";
......@@ -210,22 +223,16 @@ contract DeploymentSummary is DeploymentSummaryCode {
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000010000000000000000000000000000000000000000";
vm.store(l1CrossDomainMessengerAddress, slot, value);
vm.etch(l2OutputOracleAddress, l2OutputOracleCode);
vm.etch(optimismMintableERC20FactoryAddress, optimismMintableERC20FactoryCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
vm.store(optimismMintableERC20FactoryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(l2OutputOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000004";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
vm.store(optimismMintableERC20FactoryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
vm.store(optimismMintableERC20FactoryAddress, slot, value);
vm.etch(systemConfigAddress, systemConfigCode);
slot = hex"a11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb19f";
value = hex"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
......@@ -280,10 +287,180 @@ contract DeploymentSummary is DeploymentSummaryCode {
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l1ERC721BridgeAddress, slot, value);
vm.etch(optimismPortalAddress, optimismPortalCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000032";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000100000000000000000000000000000000000000003b9aca00";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalAddress, slot, value);
vm.etch(l2OutputOracleAddress, l2OutputOracleCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(l2OutputOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000004";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
vm.etch(optimismPortal2Address, optimismPortal2Code);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000032";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
vm.store(optimismPortal2Address, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000003b";
value = hex"0000000000000000000000000000000000000000000000000000000100000000";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000100000000000000000000000000000000000000003b9aca00";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortal2Address, slot, value);
vm.etch(disputeGameFactoryAddress, disputeGameFactoryCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(disputeGameFactoryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(disputeGameFactoryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000004e59b44847b379578588920ca78fbf26c0b4956c";
vm.store(disputeGameFactoryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000000000000000000000000000000000000000000000";
vm.store(disputeGameFactoryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(disputeGameFactoryAddress, slot, value);
vm.etch(delayedWETHAddress, delayedWETHCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(delayedWETHAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(delayedWETHAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000004e59b44847b379578588920ca78fbf26c0b4956c";
vm.store(delayedWETHAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000000000000000000000000000000000000000000000";
vm.store(delayedWETHAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(delayedWETHAddress, slot, value);
vm.etch(preimageOracleAddress, preimageOracleCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000004";
value = hex"ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5";
vm.store(preimageOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"b4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d30";
vm.store(preimageOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000006";
value = hex"21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba85";
vm.store(preimageOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000007";
value = hex"e58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a19344";
vm.store(preimageOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000008";
value = hex"0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d";
vm.store(preimageOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000009";
value = hex"887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a1968";
vm.store(preimageOracleAddress, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000000a";
value = hex"ffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f83";
vm.store(preimageOracleAddress, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000000b";
value = hex"9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af";
vm.store(preimageOracleAddress, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000000c";
value = hex"cefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e0";
vm.store(preimageOracleAddress, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000000d";
value = hex"f9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a5";
vm.store(preimageOracleAddress, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000000e";
value = hex"f8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf892";
vm.store(preimageOracleAddress, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000000f";
value = hex"3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c";
vm.store(preimageOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000010";
value = hex"c1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb";
vm.store(preimageOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000011";
value = hex"5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc";
vm.store(preimageOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000012";
value = hex"da7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d2";
vm.store(preimageOracleAddress, slot, value);
vm.etch(mipsAddress, mipsCode);
vm.etch(anchorStateRegistryAddress, anchorStateRegistryCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(anchorStateRegistryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(anchorStateRegistryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(anchorStateRegistryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000003";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"000000000000000000000000bdd90485fcbcac869d5b5752179815a3103d8131";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000036";
value = hex"000000000000000000000000d31598c909d9c935a9e35ba70d9a3dd47d4d5865";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000037";
value = hex"0000000000000000000000008b71b41d4dbeb2b6821d44692d3facaaf77480bb";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000035";
value = hex"0000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d7080900";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000032";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000100000000000000000000000000000000000000003b9aca00";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000004";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"00000000000000000000000067866a5052e5302aad08e9f352331fd8622eb6dc";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
......@@ -317,17 +494,23 @@ contract DeploymentSummary is DeploymentSummaryCode {
value = hex"000000000000000000000000ff00000000000000000000000000000000000000";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580636";
value = hex"00000000000000000000000020a42a5a785622c6ba2576b2d6e924aa82bfa11d";
value = hex"0000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa6";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a7";
value = hex"000000000000000000000000def3bca8c80064589e6787477ffa7dd616b5574f";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6376";
value = hex"0000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa6";
value = hex"0000000000000000000000001c23a6d89f95ef3148bcda8e242cab145bf9c0e4";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"52322a25d9f59ea17656545543306b7aef62bc0cc53a0e65ccfa0c75b97aa906";
value = hex"000000000000000000000000c7b87b2b892ea5c3cff47168881fe168c00377fb";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ac";
value = hex"000000000000000000000000978e3286eb805934215a88694d80b09aded68d90";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"a04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320c";
value = hex"00000000000000000000000020a42a5a785622c6ba2576b2d6e924aa82bfa11d";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"a11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb19f";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(systemConfigProxyAddress, slot, value);
......@@ -338,13 +521,13 @@ contract DeploymentSummary is DeploymentSummaryCode {
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000004";
value = hex"0000000000000000000000000000000000000000000000000000000000000005";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"a8f0d50211ac8ff1a40793a899dff3ced4762e0466f69b0078ab7b00d037835c";
slot = hex"727598a658f6983be3a9f29beef55aaee89ef8a176baeeacbe7edf5ff94a781b";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(proxyAdminAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000006";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"000000000000000000000000b7900b27be8f0e0ff65d1c3a4671e1220437dd2b";
......@@ -359,10 +542,10 @@ contract DeploymentSummary is DeploymentSummaryCode {
value = hex"000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d70809";
vm.store(l1StandardBridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000001c23a6d89f95ef3148bcda8e242cab145bf9c0e4";
value = hex"0000000000000000000000008b71b41d4dbeb2b6821d44692d3facaaf77480bb";
vm.store(l1StandardBridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000003";
value = hex"00000000000000000000000020a42a5a785622c6ba2576b2d6e924aa82bfa11d";
value = hex"0000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa6";
vm.store(l1StandardBridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000004";
value = hex"0000000000000000000000004200000000000000000000000000000000000010";
......@@ -371,7 +554,7 @@ contract DeploymentSummary is DeploymentSummaryCode {
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l1StandardBridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000006";
value = hex"0000000000000000000000000000000000000000000000000000000000000007";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"0000000000000000000000005c4f5e749a61a9503c4aae8a9393e89609a0e804";
......@@ -386,7 +569,7 @@ contract DeploymentSummary is DeploymentSummaryCode {
value = hex"000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d70809";
vm.store(l1ERC721BridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"00000000000000000000000020a42a5a785622c6ba2576b2d6e924aa82bfa11d";
value = hex"0000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa6";
vm.store(l1ERC721BridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000002";
value = hex"0000000000000000000000004200000000000000000000000000000000000014";
......@@ -395,19 +578,37 @@ contract DeploymentSummary is DeploymentSummaryCode {
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l1ERC721BridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000007";
value = hex"0000000000000000000000000000000000000000000000000000000000000008";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"540cf4e2f45b866b44f44bde51e109474016dc46a0670fbe1684ad8eaf90fdc3";
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"00000000000000000000000039aea2dd53f2d01c15877acc2791af6bdd7ad567";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"0000000000000000000000001c23a6d89f95ef3148bcda8e242cab145bf9c0e4";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000009";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"a8f0d50211ac8ff1a40793a899dff3ced4762e0466f69b0078ab7b00d037835c";
value = hex"0000000000000000000000000000000000000000000000000000000000000002";
vm.store(proxyAdminAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000008";
value = hex"000000000000000000000000000000000000000000000000000000000000000a";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"17eb2365d570ef4d1cc4abe9e522ed8632b11233db9c15f3c2c8aa32407b981b";
slot = hex"7cda2d9a7dd1a58982b7fac9315bdc1ed8c92aeb9c22cd8555aaa54972f01ccb";
value = hex"4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000034";
vm.store(proxyAdminAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000009";
value = hex"000000000000000000000000000000000000000000000000000000000000000b";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"515216935740e67dfdda5cf8e248ea32b3277787818ab59153061ac875c9385e";
value = hex"000000000000000000000000094e6508ba9d9bf1ce421fff3de06ae56e67901b";
......@@ -425,7 +626,7 @@ contract DeploymentSummary is DeploymentSummaryCode {
value = hex"000000000000000000000000978e3286eb805934215a88694d80b09aded68d90";
vm.store(l1CrossDomainMessengerProxyAddress, slot, value);
slot = hex"00000000000000000000000000000000000000000000000000000000000000fd";
value = hex"0000000000000000000000001c23a6d89f95ef3148bcda8e242cab145bf9c0e4";
value = hex"0000000000000000000000008b71b41d4dbeb2b6821d44692d3facaaf77480bb";
vm.store(l1CrossDomainMessengerProxyAddress, slot, value);
slot = hex"00000000000000000000000000000000000000000000000000000000000000cc";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
......@@ -437,34 +638,129 @@ contract DeploymentSummary is DeploymentSummaryCode {
value = hex"0000000000000000000000010000000000000000000000000000000000000000";
vm.store(l1CrossDomainMessengerProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"000000000000000000000000000000000000000000000000000000000000000a";
value = hex"000000000000000000000000000000000000000000000000000000000000000c";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"000000000000000000000000bdd90485fcbcac869d5b5752179815a3103d8131";
vm.store(optimismPortalProxyAddress, slot, value);
value = hex"00000000000000000000000019652082f846171168daf378c4fd3ee85a0d4a60";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalProxyAddress, slot, value);
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000036";
value = hex"0000000000000000000000008b71b41d4dbeb2b6821d44692d3facaaf77480bb";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000037";
value = hex"0000000000000000000000001c23a6d89f95ef3148bcda8e242cab145bf9c0e4";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000035";
value = hex"0000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d7080900";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000032";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
vm.store(optimismPortalProxyAddress, slot, value);
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000004";
value = hex"0000000000000000000000000000000000000000000000000000000000000006";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000002";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000100000000000000000000000000000000000000003b9aca00";
vm.store(optimismPortalProxyAddress, slot, value);
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000002";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000007";
value = hex"00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000006";
value = hex"0000000000000000000000006925b8704ff96dee942623d6fb5e946ef5884b63";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000008";
value = hex"0000000000000000000000000000000000000000000000000000000000000024";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalProxyAddress, slot, value);
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"000000000000000000000000000000000000000000000000000000000000000d";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"00000000000000000000000020b168142354cee65a32f6d8cf3033e592299765";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000001804c8ab1f12e6bbf3894d4083f33e07309d1f38";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"000000000000000000000000000000000000000000000000000000000000000e";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"00000000000000000000000049bbff1629824a1e7993ab5c17afa45d24ab28c9";
vm.store(delayedWETHProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(delayedWETHProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(delayedWETHProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(delayedWETHProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000001804c8ab1f12e6bbf3894d4083f33e07309d1f38";
vm.store(delayedWETHProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000068";
value = hex"000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d70809";
vm.store(delayedWETHProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(delayedWETHProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"000000000000000000000000000000000000000000000000000000000000000f";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"000000000000000000000000610c37dd344e47d7848da075a90128472140e80f";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"a6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49";
value = hex"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"cc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f";
value = hex"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"24a9e90595537a4321bf3a8fd43f02c179fe79a94dde54a8c1a057e2967a4d0b";
value = hex"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"d9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f";
value = hex"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"1d32deecea32fd1365d10df47fc6666a05871102e61a115a5c569bca7e5de14d";
value = hex"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(anchorStateRegistryProxyAddress, slot, value);
vm.etch(acc32Address, acc32Code);
slot = hex"ffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b";
value = hex"000000000000000000000000ce8c32b1493db37767faf988dec9e80089f4f33c";
vm.store(disputeGameFactoryProxyAddress, slot, value);
vm.etch(acc33Address, acc33Code);
slot = hex"4d5a9bd2e41301728d41c8e705190becb4e74abe869f75bdb405b63716a35f9e";
value = hex"000000000000000000000000357a483a8923686e7fa454ee93bbc11afb114743";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000007ea964e5d864b95f6d7d2bd04da897f6e31084b3";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000007ea964e5d864b95f6d7d2bd04da897f6e31084b3";
vm.store(delayedWETHProxyAddress, slot, value);
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -13,19 +13,24 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
Vm private constant vm = Vm(VM_ADDRESS);
address internal constant addressManagerAddress = 0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3;
address internal constant anchorStateRegistryAddress = 0xF74482139D1564B826994875cF6632eB5b134b25;
address internal constant anchorStateRegistryProxyAddress = 0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4;
address internal constant anchorStateRegistryAddress = 0x610C37dd344e47D7848Da075a90128472140e80f;
address internal constant anchorStateRegistryProxyAddress = 0x39Af23E00F1e662025aA01b0cEdA19542B78DF99;
address internal constant delayedWETHAddress = 0x49BBFf1629824A1e7993Ab5c17AFa45D24AB28c9;
address internal constant delayedWETHProxyAddress = 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6;
address internal constant delayedWETHProxyAddress = 0x5207CfA0166E8de0FCdFd78B4d17b68587bE306d;
address internal constant disputeGameFactoryAddress = 0x20B168142354Cee65a32f6D8cf3033E592299765;
address internal constant disputeGameFactoryProxyAddress = 0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb;
address internal constant disputeGameFactoryProxyAddress = 0xc7B87b2b892EA5C3CfF47168881FE168C00377FB;
address internal constant l1CrossDomainMessengerAddress = 0x094e6508ba9d9bf1ce421fff3dE06aE56e67901b;
address internal constant l1CrossDomainMessengerProxyAddress = 0xc7B87b2b892EA5C3CfF47168881FE168C00377FB;
address internal constant l1CrossDomainMessengerProxyAddress = 0x0c8b5822b6e02CDa722174F19A1439A7495a3fA6;
address internal constant l1ERC721BridgeAddress = 0x5C4F5e749A61a9503c4AAE8a9393e89609a0e804;
address internal constant l1ERC721BridgeProxyAddress = 0xD31598c909d9C935a9e35bA70d9a3DD47d4D5865;
address internal constant l1ERC721BridgeProxyAddress = 0xDeF3bca8c80064589E6787477FFa7Dd616B5574F;
address internal constant l1StandardBridgeAddress = 0xb7900B27Be8f0E0fF65d1C3A4671e1220437dd2b;
address internal constant l1StandardBridgeProxyAddress = 0xDeF3bca8c80064589E6787477FFa7Dd616B5574F;
address internal constant l1StandardBridgeProxyAddress = 0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4;
address internal constant l2OutputOracleAddress = 0x19652082F846171168Daf378C4fD3ee85a0D4A60;
address internal constant l2OutputOracleProxyAddress = 0xD31598c909d9C935a9e35bA70d9a3DD47d4D5865;
address internal constant mipsAddress = 0xcdAdd729ca2319E8955240bDb61A6A6A956A7664;
address internal constant optimismMintableERC20FactoryAddress = 0x39Aea2Dd53f2d01c15877aCc2791af6BDD7aD567;
address internal constant optimismMintableERC20FactoryProxyAddress = 0x20A42a5a785622c6Ba2576B2D6e924aA82BFA11D;
address internal constant optimismPortalAddress = 0xbdD90485FCbcac869D5b5752179815a3103d8131;
address internal constant optimismPortal2Address = 0xfcbb237388CaF5b08175C9927a37aB6450acd535;
address internal constant optimismPortalProxyAddress = 0x978e3286EB805934215a88694d80b09aDed68D90;
address internal constant preimageOracleAddress = 0x3bd7E801E51d48c5d94Ea68e8B801DFFC275De75;
......@@ -37,10 +42,10 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
address internal constant superchainConfigAddress = 0x068E44eB31e111028c41598E4535be7468674D0A;
address internal constant superchainConfigProxyAddress = 0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809;
address internal constant systemConfigAddress = 0x67866A5052E5302aaD08e9f352331fd8622eB6DC;
address internal constant systemConfigProxyAddress = 0x20A42a5a785622c6Ba2576B2D6e924aA82BFA11D;
address internal constant systemConfigProxyAddress = 0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb;
address internal constant systemOwnerSafeAddress = 0x7EA964E5D864b95f6D7d2BD04dA897F6e31084b3;
address internal constant acc27Address = 0x12e721c390F5728200a26BBEf206A5F4F7E991f3;
address internal constant acc28Address = 0x2abb7CBB720020ee3C9ecf3915D14B6d1886A577;
address internal constant acc32Address = 0xcE8C32b1493DB37767fAF988dEC9E80089f4f33c;
address internal constant acc33Address = 0x357A483a8923686E7fA454Ee93bbc11aFB114743;
function recreateDeployment() public {
bytes32 slot;
......@@ -160,18 +165,6 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(optimismPortalProxyAddress, slot, value);
vm.etch(disputeGameFactoryProxyAddress, disputeGameFactoryProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(disputeGameFactoryProxyAddress, slot, value);
vm.etch(anchorStateRegistryProxyAddress, anchorStateRegistryProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(anchorStateRegistryProxyAddress, slot, value);
vm.etch(delayedWETHProxyAddress, delayedWETHProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(delayedWETHProxyAddress, slot, value);
vm.etch(systemConfigProxyAddress, systemConfigProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
......@@ -181,38 +174,39 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(l1StandardBridgeProxyAddress, slot, value);
vm.etch(l1CrossDomainMessengerProxyAddress, l1CrossDomainMessengerProxyCode);
slot = hex"f6cecbacbfeb99e6ab0f02c22fd8a103f8837deb80af03d481ac5bc8d5475f58";
slot = hex"a8f0d50211ac8ff1a40793a899dff3ced4762e0466f69b0078ab7b00d037835c";
value = hex"000000000000000000000000bb2180ebd78ce97360503434ed37fcf4a1df61c3";
vm.store(l1CrossDomainMessengerProxyAddress, slot, value);
slot = hex"ceb2ac3d439ba35adb9a3f2ba6c37d15a264e79156ee79334f5d4c00090812d2";
slot = hex"eae32376463217751b8fa4dea8c38ab253664fa3605de6d85d2e790aa970f2b8";
value = hex"4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000034";
vm.store(l1CrossDomainMessengerProxyAddress, slot, value);
vm.etch(optimismMintableERC20FactoryProxyAddress, optimismMintableERC20FactoryProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
vm.etch(l1ERC721BridgeProxyAddress, l1ERC721BridgeProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(l1ERC721BridgeProxyAddress, slot, value);
vm.etch(disputeGameFactoryProxyAddress, disputeGameFactoryProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(disputeGameFactoryProxyAddress, slot, value);
vm.etch(l2OutputOracleProxyAddress, l2OutputOracleProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(l2OutputOracleProxyAddress, slot, value);
vm.etch(delayedWETHProxyAddress, delayedWETHProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(delayedWETHProxyAddress, slot, value);
vm.etch(anchorStateRegistryProxyAddress, anchorStateRegistryProxyCode);
slot = hex"b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"000000000000000000000000db8cff278adccf9e9b5da745b44e754fc4ee3c76";
vm.store(addressManagerAddress, slot, value);
vm.etch(optimismPortal2Address, optimismPortal2Code);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000032";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
vm.store(optimismPortal2Address, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000003b";
value = hex"0000000000000000000000000000000000000000000000000000000100000000";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000100000000000000000000000000000000000000003b9aca00";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortal2Address, slot, value);
vm.etch(l1CrossDomainMessengerAddress, l1CrossDomainMessengerCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000010000000000000000000000000000000000000000";
......@@ -229,6 +223,16 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000010000000000000000000000000000000000000000";
vm.store(l1CrossDomainMessengerAddress, slot, value);
vm.etch(optimismMintableERC20FactoryAddress, optimismMintableERC20FactoryCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismMintableERC20FactoryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismMintableERC20FactoryAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismMintableERC20FactoryAddress, slot, value);
vm.etch(systemConfigAddress, systemConfigCode);
slot = hex"a11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb19f";
value = hex"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
......@@ -283,6 +287,57 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l1ERC721BridgeAddress, slot, value);
vm.etch(optimismPortalAddress, optimismPortalCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000032";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000100000000000000000000000000000000000000003b9aca00";
vm.store(optimismPortalAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalAddress, slot, value);
vm.etch(l2OutputOracleAddress, l2OutputOracleCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(l2OutputOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000004";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleAddress, slot, value);
vm.etch(optimismPortal2Address, optimismPortal2Code);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000032";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
vm.store(optimismPortal2Address, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000003b";
value = hex"0000000000000000000000000000000000000000000000000000000100000000";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000100000000000000000000000000000000000000003b9aca00";
vm.store(optimismPortal2Address, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortal2Address, slot, value);
vm.etch(disputeGameFactoryAddress, disputeGameFactoryCode);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
......@@ -376,6 +431,39 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"0000000000000000000000000000000000000000000000000000000000000003";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"000000000000000000000000fcbb237388caf5b08175c9927a37ab6450acd535";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000038";
value = hex"000000000000000000000000c7b87b2b892ea5c3cff47168881fe168c00377fb";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000037";
value = hex"0000000000000000000000008b71b41d4dbeb2b6821d44692d3facaaf77480bb";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000035";
value = hex"0000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d7080900";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000032";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000003b";
value = hex"0000000000000000000000000000000000000000000000000000000100000000";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000100000000000000000000000000000000000000003b9aca00";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000004";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"00000000000000000000000067866a5052e5302aad08e9f352331fd8622eb6dc";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
......@@ -409,20 +497,23 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"000000000000000000000000ff00000000000000000000000000000000000000";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"383f291819e6d54073bc9a648251d97421076bdd101933c0c022219ce9580636";
value = hex"000000000000000000000000c7b87b2b892ea5c3cff47168881fe168c00377fb";
value = hex"0000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa6";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"46adcbebc6be8ce551740c29c47c8798210f23f7f4086c41752944352568d5a7";
value = hex"000000000000000000000000d31598c909d9c935a9e35ba70d9a3dd47d4d5865";
value = hex"000000000000000000000000def3bca8c80064589e6787477ffa7dd616b5574f";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"9904ba90dde5696cda05c9e0dab5cbaa0fea005ace4d11218a02ac668dad6376";
value = hex"000000000000000000000000def3bca8c80064589e6787477ffa7dd616b5574f";
value = hex"0000000000000000000000001c23a6d89f95ef3148bcda8e242cab145bf9c0e4";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"52322a25d9f59ea17656545543306b7aef62bc0cc53a0e65ccfa0c75b97aa906";
value = hex"0000000000000000000000008b71b41d4dbeb2b6821d44692d3facaaf77480bb";
value = hex"000000000000000000000000c7b87b2b892ea5c3cff47168881fe168c00377fb";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"4b6c74f9e688cb39801f2112c14a8c57232a3fc5202e1444126d4bce86eb19ac";
value = hex"000000000000000000000000978e3286eb805934215a88694d80b09aded68d90";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"a04c5bb938ca6fc46d95553abf0a76345ce3e722a30bf4f74928b8e7d852320c";
value = hex"00000000000000000000000020a42a5a785622c6ba2576b2d6e924aa82bfa11d";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"a11ee3ab75b40e88a0105e935d17cd36c8faee0138320d776c411291bdbbb19f";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(systemConfigProxyAddress, slot, value);
......@@ -433,13 +524,13 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(systemConfigProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000004";
value = hex"0000000000000000000000000000000000000000000000000000000000000005";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"191cda7b5a8219e0cc3bb6c2b45be830e3ba520f78e119446a476c4147fcc284";
slot = hex"727598a658f6983be3a9f29beef55aaee89ef8a176baeeacbe7edf5ff94a781b";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(proxyAdminAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000006";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"000000000000000000000000b7900b27be8f0e0ff65d1c3a4671e1220437dd2b";
......@@ -454,10 +545,10 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d70809";
vm.store(l1StandardBridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"00000000000000000000000020a42a5a785622c6ba2576b2d6e924aa82bfa11d";
value = hex"0000000000000000000000008b71b41d4dbeb2b6821d44692d3facaaf77480bb";
vm.store(l1StandardBridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000003";
value = hex"000000000000000000000000c7b87b2b892ea5c3cff47168881fe168c00377fb";
value = hex"0000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa6";
vm.store(l1StandardBridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000004";
value = hex"0000000000000000000000004200000000000000000000000000000000000010";
......@@ -466,7 +557,7 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l1StandardBridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000006";
value = hex"0000000000000000000000000000000000000000000000000000000000000007";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"0000000000000000000000005c4f5e749a61a9503c4aae8a9393e89609a0e804";
......@@ -481,7 +572,7 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"000000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d70809";
vm.store(l1ERC721BridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000000000000c7b87b2b892ea5c3cff47168881fe168c00377fb";
value = hex"0000000000000000000000000c8b5822b6e02cda722174f19a1439a7495a3fa6";
vm.store(l1ERC721BridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000002";
value = hex"0000000000000000000000004200000000000000000000000000000000000014";
......@@ -490,19 +581,37 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l1ERC721BridgeProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000007";
value = hex"0000000000000000000000000000000000000000000000000000000000000008";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"00000000000000000000000039aea2dd53f2d01c15877acc2791af6bdd7ad567";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"0000000000000000000000001c23a6d89f95ef3148bcda8e242cab145bf9c0e4";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismMintableERC20FactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000009";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"f6cecbacbfeb99e6ab0f02c22fd8a103f8837deb80af03d481ac5bc8d5475f58";
slot = hex"a8f0d50211ac8ff1a40793a899dff3ced4762e0466f69b0078ab7b00d037835c";
value = hex"0000000000000000000000000000000000000000000000000000000000000002";
vm.store(proxyAdminAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000008";
value = hex"000000000000000000000000000000000000000000000000000000000000000a";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"63c92109b91ecf3318ee316da9fdb1378fd8d900f912b2029945ff91daa463bf";
slot = hex"7cda2d9a7dd1a58982b7fac9315bdc1ed8c92aeb9c22cd8555aaa54972f01ccb";
value = hex"4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000034";
vm.store(proxyAdminAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000009";
value = hex"000000000000000000000000000000000000000000000000000000000000000b";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"515216935740e67dfdda5cf8e248ea32b3277787818ab59153061ac875c9385e";
value = hex"000000000000000000000000094e6508ba9d9bf1ce421fff3de06ae56e67901b";
......@@ -520,7 +629,7 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"000000000000000000000000978e3286eb805934215a88694d80b09aded68d90";
vm.store(l1CrossDomainMessengerProxyAddress, slot, value);
slot = hex"00000000000000000000000000000000000000000000000000000000000000fd";
value = hex"00000000000000000000000020a42a5a785622c6ba2576b2d6e924aa82bfa11d";
value = hex"0000000000000000000000008b71b41d4dbeb2b6821d44692d3facaaf77480bb";
vm.store(l1CrossDomainMessengerProxyAddress, slot, value);
slot = hex"00000000000000000000000000000000000000000000000000000000000000cc";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
......@@ -532,7 +641,43 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"0000000000000000000000010000000000000000000000000000000000000000";
vm.store(l1CrossDomainMessengerProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"000000000000000000000000000000000000000000000000000000000000000a";
value = hex"000000000000000000000000000000000000000000000000000000000000000c";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"00000000000000000000000019652082f846171168daf378c4fd3ee85a0d4a60";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000004";
value = hex"0000000000000000000000000000000000000000000000000000000000000006";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"0000000000000000000000000000000000000000000000000000000000000002";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000002";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000007";
value = hex"00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000006";
value = hex"0000000000000000000000006925b8704ff96dee942623d6fb5e946ef5884b63";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000008";
value = hex"0000000000000000000000000000000000000000000000000000000000000024";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(l2OutputOracleProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"000000000000000000000000000000000000000000000000000000000000000d";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"00000000000000000000000020b168142354cee65a32f6d8cf3033e592299765";
......@@ -553,7 +698,7 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"000000000000000000000000000000000000000000000000000000000000000b";
value = hex"000000000000000000000000000000000000000000000000000000000000000e";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"00000000000000000000000049bbff1629824a1e7993ab5c17afa45d24ab28c9";
......@@ -577,10 +722,10 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(delayedWETHProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"000000000000000000000000000000000000000000000000000000000000000c";
value = hex"000000000000000000000000000000000000000000000000000000000000000f";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"000000000000000000000000f74482139d1564b826994875cf6632eb5b134b25";
value = hex"000000000000000000000000610c37dd344e47d7848da075a90128472140e80f";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
......@@ -606,46 +751,19 @@ contract DeploymentSummaryFaultProofs is DeploymentSummaryFaultProofsCode {
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(anchorStateRegistryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000005";
value = hex"000000000000000000000000000000000000000000000000000000000000000d";
vm.store(systemOwnerSafeAddress, slot, value);
slot = hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
value = hex"000000000000000000000000fcbb237388caf5b08175c9927a37ab6450acd535";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000101";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000038";
value = hex"0000000000000000000000008b71b41d4dbeb2b6821d44692d3facaaf77480bb";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000037";
value = hex"00000000000000000000000020a42a5a785622c6ba2576b2d6e924aa82bfa11d";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000035";
value = hex"0000000000000000000000deb1e9a6be7baf84208bb6e10ac9f9bbe1d7080900";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000032";
value = hex"000000000000000000000000000000000000000000000000000000000000dead";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"000000000000000000000000000000000000000000000000000000000000003b";
value = hex"0000000000000000000000000000000000000000000000000000000100000000";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000001";
value = hex"000000000000000100000000000000000000000000000000000000003b9aca00";
vm.store(optimismPortalProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000000";
value = hex"0000000000000000000000000000000000000000000000000000000000000001";
vm.store(optimismPortalProxyAddress, slot, value);
vm.etch(acc27Address, acc27Code);
vm.etch(acc32Address, acc32Code);
slot = hex"ffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b";
value = hex"00000000000000000000000012e721c390f5728200a26bbef206a5f4f7e991f3";
value = hex"000000000000000000000000ce8c32b1493db37767faf988dec9e80089f4f33c";
vm.store(disputeGameFactoryProxyAddress, slot, value);
vm.etch(acc28Address, acc28Code);
vm.etch(acc33Address, acc33Code);
slot = hex"4d5a9bd2e41301728d41c8e705190becb4e74abe869f75bdb405b63716a35f9e";
value = hex"0000000000000000000000002abb7cbb720020ee3c9ecf3915d14b6d1886a577";
value = hex"000000000000000000000000357a483a8923686e7fa454ee93bbc11afb114743";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000007ea964e5d864b95f6d7d2bd04da897f6e31084b3";
vm.store(disputeGameFactoryProxyAddress, slot, value);
slot = hex"0000000000000000000000000000000000000000000000000000000000000033";
value = hex"0000000000000000000000007ea964e5d864b95f6d7d2bd04da897f6e31084b3";
vm.store(delayedWETHProxyAddress, slot, value);
}
}
......@@ -21,12 +21,6 @@ fi
cleanup() {
trap
# Restore the original script from the backup
if [ -f "$DEPLOY_SCRIPT.bak" ]; then
cp "$DEPLOY_SCRIPT.bak" "$DEPLOY_SCRIPT"
rm "$DEPLOY_SCRIPT.bak"
fi
if [ -f "snapshots/state-diff/Deploy.json" ]; then
rm "snapshots/state-diff/Deploy.json"
fi
......@@ -53,18 +47,8 @@ if [ ! -f "snapshots/state-diff/Deploy.json" ]; then
touch snapshots/state-diff/Deploy.json;
fi
DEPLOY_SCRIPT="./scripts/deploy/Deploy.s.sol"
conditionally_start_docker
# Create a backup
cp $DEPLOY_SCRIPT $DEPLOY_SCRIPT.bak
# Replace mustGetAddress by getAddress in Deploy.s.sol
# This is needed because the Kontrol deployment is only a partial
# version of the full Optimism deployment. Since not all the components
# of the system are deployed, we'd get some reverts on the `mustGetAddress` functions
awk '{gsub(/mustGetAddress/, "getAddress")}1' $DEPLOY_SCRIPT > temp && mv temp $DEPLOY_SCRIPT
CONTRACT_NAMES=deployments/kontrol.json
SCRIPT_SIG="runKontrolDeployment()"
if [ "$KONTROL_FP_DEPLOYMENT" = true ]; then
......
......@@ -34,10 +34,9 @@ kontrol_prove() {
$bug_report \
$break_on_calls \
$break_every_step \
$auto_abstract \
$tests \
$use_booster \
--init-node-from $state_diff \
--kore-rpc-command 'kore-rpc-booster --equation-max-recursion 100' \
--xml-test-report
}
......@@ -167,17 +166,13 @@ else
fi
reinit=--reinit
reinit=
break_on_calls=--no-break-on-calls
# break_on_calls=
break_on_calls=--break-on-calls
break_on_calls=
break_every_step=--break-every-step
break_every_step=
auto_abstract=--auto-abstract-gas
auto_abstract=
bug_report=--bug-report
bug_report=
use_booster=--use-booster
# use_booster=
state_diff="./snapshots/state-diff/Kontrol-Deploy.json"
state_diff="./snapshots/state-diff/Kontrol-31337.json"
#############
# RUN TESTS #
......
......@@ -4,5 +4,5 @@
"geth": "v1.13.14",
"nvm": "v20.9.0",
"slither": "0.10.2",
"kontrol": "0.1.247"
"kontrol": "0.1.316"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment