Skip to content

Commit

Permalink
fix: tests
Browse files Browse the repository at this point in the history
  • Loading branch information
excaliborr committed Nov 27, 2023
1 parent a16bd0f commit 2d4bf7d
Show file tree
Hide file tree
Showing 17 changed files with 135 additions and 86 deletions.
12 changes: 4 additions & 8 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
# For anvil to fork from
MAINNET_RPC=
GOERLI_RPC=
OPTIMISM_RPC=
OPTIMISM_GOERLI_RPC=

# Deployer address for the E2E Tests
MAINNET_DEPlOYER_ADDR=
# Safe owner address for the E2E Tests
MAINNET_SAFE_OWNER_ADDR=
# Deployer private key for the E2E Tests
MAINNET_DEPLOYER_PK=
# Safe owner private key for the E2E Tests
MAINNET_SAFE_OWNER_PK=
# Searcher PK for E2E Tests
SEARCHER_PK=

# Mainnet rpc for the E2E Tests, should be the anvil url
MAINNET_E2E_RPC=
# Optimism rpc for the E2E Tests, should be the anvil url
Expand All @@ -24,4 +20,4 @@ DEPLOYER_OPTIMISM_PRIVATE_KEY=
DEPLOYER_OPTIMISM_GOERLI_PRIVATE_KEY=
STORAGE_MIRROR_ADDRESS=

ETHERSCAN_API_KEY=
ETHERSCAN_API_KEY=
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,20 @@
"build": "forge build",
"build:optimized": "FOUNDRY_PROFILE=optimized forge build",
"coverage": "forge coverage --match-contract Unit",
"deploy:e2e": "forge script solidity/scripts/DeployE2E.s.sol:DeployE2E --broadcast",
"deploy:goerli": "bash -c 'source .env && forge script -vv --rpc-url $GOERLI_RPC --slow --broadcast --private-key $DEPLOYER_GOERLI_PRIVATE_KEY solidity/scripts/DeployGoerli.s.sol:DeployGoerli'",
"deploy:mainnet": "bash -c 'source .env && forge script -vv --rpc-url $MAINNET_E2E_RPC --slow --broadcast --private-key $DEPLOYER_MAINNNET_PRIVATE_KEY solidity/scripts/DeployMainnet.s.sol:DeployMainnet'",
"deploy:optimism": "bash -c 'source .env && forge script -vv --rpc-url $OPTIMISM_E2E_RPC --slow --broadcast --private-key $DEPLOYER_OPTIMISM_PRIVATE_KEY solidity/scripts/DeployOptimism.s.sol:DeployOptimism'",
"deploy:mainnet": "bash -c 'source .env && forge script -vv --rpc-url $MAINNET_RPC --slow --broadcast --private-key $DEPLOYER_MAINNNET_PRIVATE_KEY solidity/scripts/DeployMainnet.s.sol:DeployMainnet'",
"deploy:optimism": "bash -c 'source .env && forge script -vv --rpc-url $OPTIMISM_RPC --slow --broadcast --private-key $DEPLOYER_OPTIMISM_PRIVATE_KEY solidity/scripts/DeployOptimism.s.sol:DeployOptimism'",
"deploy:optimismGoerli": "bash -c 'source .env && forge script -vv --rpc-url $OPTIMISM_GOERLI_RPC --slow --broadcast --private-key $DEPLOYER_OPTIMISM_GOERLI_PRIVATE_KEY solidity/scripts/DeployOptimismGoerli.s.sol:DeployOptimismGoerli'",
"ganache:mainnet": "ganache --port 8545 --mnemonic 'chapter polar wool ethics pudding undo slide social second put segment chair'",
"ganache:optimism": "ganache --port 9545 --mnemonic 'chapter polar wool ethics pudding undo slide social second put segment chair'",
"lint:check": "yarn lint:sol-tests && yarn lint:sol-logic && forge fmt check",
"lint:fix": "sort-package-json && forge fmt && yarn lint:sol-tests --fix && yarn lint:sol-logic --fix",
"lint:sol-logic": "solhint -c .solhint.json 'solidity/contracts/**/*.sol' 'solidity/interfaces/**/*.sol'",
"lint:sol-tests": "solhint 'solidity/test/**/*.sol'",
"prepare": "husky install",
"proof": "python3 proofs/generate_proof.py",
"test": "forge test --ffi -vvv",
"test:e2e": "forge test --ffi --match-contract E2E -vvv",
"test:e2e": "yarn deploy:e2e && forge test --ffi --match-contract E2E -vvv",
"test:unit": "forge test --match-contract Unit -vvv",
"test:unit:deep": "FOUNDRY_FUZZ_RUNS=5000 yarn test:unit"
},
Expand Down
8 changes: 4 additions & 4 deletions proofs/proof.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"blockNumber": 36,
"blockHeader": "f901f5a0f39983753ddfc18c23a4b39f747294f130da825e5dffb40a3b5f60035a4ec57ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bb207649ed9410038954b38b4255b74cafc1f42d3009c140b65559da5fbe4d27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000248401c9c3800084656108ab80a087319fde05bca7b338486f083acd366a7a0b5d611e30824a130dd3265599b348880000000000000000",
"accountProof": "f90344f90211a08612f63b7f9a11408e2f23f321e5136d332dd57790ed36735777b23957310993a016ef7dfdd5a2499becbb81956a38788bfc057f9d52dd5c576ebcb85de995040ea0fe6b255e122c54ba054bccdaf3852e3ec34465f640e4b73aa726874bd5469f96a02c97aa6929b910f31d98eb3d0f476cb6fe1ec36a5928fe6229e720d31e996317a0de26cb1b4fd99c4d3ed75d4a67931e3c252605c7d68e0148d5327f341bfd5283a05be23df6da58dc30280666f326ffe2195cb7dfa9ce4a84ba717037122fae8038a0f06b89db96623466bc5ea383fb27224ef44444881917a22bc0f1c62ab2eae315a0138ee0184f6efe0e45598b6464db22cb9223675716aceb3c140c1851c6ca410ca0ea85562bb917489f2aa6151418d9c34428721c7d8e3ebd8fb07404a1ef5217fba0650baffbb20b2e9ff377c5518cf910c01caeeb7bc32907c60cda835edb70dff1a07ea03eb36e3087a210f9e1fb8e56dc0ccb528b59e1637443139e5a18312c238da06edfd510f74c19fcd730f511b0299da90d8bc6728c6881b8fb85377201965d5fa0838811f973bc4b33943c91dcf89cbe3a880bc8b54546341fb5f1fa718771c27ea092ce65498a7c2b08b130753f4473761c6d90ef094119a66cc482b622f4116bb0a093b6bc9719692906bfc192f9e4b738a809a0c3ef0daabe08b4ad055c66130bfba0efc69d2819d03c1d5c708bf8f59905a501ed8d23ef08fb1270cfb345221f28da80f871808080808080a02bac582e860fd49c3f34de2a6f9fa706ea1ad70f4193a1a9823addd0d92b065b8080a0d81b357ccc2c72f765a68c399c9b05a8583067fd455a628068ed0f8b58306dfa80a08a0d76872abbc84b8b8ebad07baec7e6d30439fc2f62882638966a0f2b7307e28080808080f8518080808080808080808080a05115ad990b35e082788c4c3623594518d365075459aa656a4cc82db67d243c8da02ff07d5c68978593cd1e03533f1a14fda2e6828680ee2241e7616cec87f4f83580808080f8689f3fca9caaefa3f5b6ed8c22b6c44aa2bada0e861d7ab419ae9a05e03df85357b846f8440180a0110b0f4e2d6d23319a04333093205f8d1159ecd7a04317afcd47b41024d1ab8da0fd79d9f0b0ab6ee2f4166bb9632d934d81e28cd5fdb396e3f3e06ef9580cfd32",
"storageProof": "f846f844a120ccf9afdf934e310256e17a4e9d00f805abdf656335d78ac9a72ed7beac729e12a1a0a362927a7b493db164d1728c370827794def1c9f44b655434ab20f05d39e7478"
"blockNumber": 75,
"blockHeader": "f901f5a0b38807b0b6d95a278aa1a3bdb79e4beb096cbeec9b9350e468cbc3eb231e60c9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f3788291713e1e56cac33d5185f773e3035ad49c3e1cf1a4eae708b218d9018fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004b8401c9c38000846564ab0980a01e6455db3f746d0c7fff5156a770be14fedd9f49b3cc0141e2b88d597f09fa59880000000000000000",
"accountProof": "f902f2f901f1a0b0766a6f781779592ae8ac6b11b53335c22dea1a4c7c6902f8e5981bce1b5390a040a955246ca6bc3fde5fdb6d3b4edde7f866bd17be78b534c0198f6626467b1ba0077f3e7adaf4ce220c9137887e1b7d72efa41d6e39315ec888a06dddfb868f02a0940621cedd58ffbea8e606d02008c9751d8a02108975b51df4d0b4a3e13febe5a0de26cb1b4fd99c4d3ed75d4a67931e3c252605c7d68e0148d5327f341bfd5283a06a93a775321bfc10ca1e3a37bdc42cffecf293b0a54e942e0cf8e84841e8c45ea0a08a102666f164574bad62c5bb44bdd86dcea3997f246626fb9939c79732c76880a04ba2a12c11def3cbb0592f78ddd4b39dae8658918b6a03c8c246a5bef03f6ab5a011e09f521d44fb2be23dc1d8b30038ac0362419c41cc6b2b064cd31741ddaa00a0217cfd6fab4d184d34f3cdb7207bed10099ce85d6a1389ce270ccfc1fde61f33a03559b772b80d6634b8e38b087fdbc01c75d2eb18097c179e8d3f69afb2691049a0ebd4120e1862a4ac1ea3f48e9e21bce5fa57cc52488cdea089fe33a3f5a63372a0a5ac64bb99d260ef6b13a4f2040ed48a4936664ec13d400238b5004841a4d888a0e4af86d4d6cbf25a781328ebca27253778b3a6b1055dc07f11e992cc99f10201a004f072a9dea3340c9c0a5da6a15016e434ee39094bd7c8211362207e8909230380f89180808080a0f214960e1b14ada5019b3d7efc13555de9ba5238e37995db7d753e5ae53b9064a0708f688ca0569984b055dc5be7bf9179dfb3d14e57668861bcaf125e7724a29ba08ec1d440481f9371946628c66d917f0201446ad95d904780a045c75ded50710e80808080808080a04efc265da0b9f1e2e4e997f618e8b623973729e121329e96b413f2551e808c788080f869a020923d38c4a11df1d1ea4c328f62fd92ae6270c791965c46c322b78dc0d31824b846f8440180a07a2a455db51fd00a2e2abe5f70503fedd069d304e2ecf4e82d64f60413ea68c6a0fd79d9f0b0ab6ee2f4166bb9632d934d81e28cd5fdb396e3f3e06ef9580cfd32",
"storageProof": "f846f844a1206f11a317eaba4365326405b953416f97a927af83bcc78a17a4d25016c4a0ff8ea1a0a362927a7b493db164d1728c370827794def1c9f44b655434ab20f05d39e7478"
}
1 change: 1 addition & 0 deletions proofs/proof_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ def request_block_header(rpc_endpoint, block_number):
block_dict = get_json_rpc_result(r)
block_number = normalize_int(block_dict["number"])
block_header_fields = [normalize_bytes(block_dict[f]) for f in BLOCK_HEADER_FIELDS]


return (block_number, block_header_fields)

Expand Down
1 change: 1 addition & 0 deletions solidity/contracts/BlockHeaderOracle.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
pragma solidity =0.8.19;

import {IBlockHeaderOracle} from 'interfaces/IBlockHeaderOracle.sol';
import {StateVerifier} from 'libraries/StateVerifier.sol';

/**
* @title BlockHeaderOracle
Expand Down
2 changes: 1 addition & 1 deletion solidity/contracts/StorageMirrorRootRegistry.sol
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ contract StorageMirrorRootRegistry is IStorageMirrorRootRegistry {
bytes memory _blockHeader = _queryL1BlockHeader();

(bytes32 _latestVerifiedStorageMirrorStorageRoot, uint256 _blockNumber) =
VERIFIER_MODULE.extractStorageMirrorStorageRoot(_blockHeader, _accountProof);
VERIFIER_MODULE.extractStorageMirrorStorageRoot(_accountProof, _blockHeader);

latestVerifiedStorageMirrorStorageRoot = _latestVerifiedStorageMirrorStorageRoot;
latestVerifiedBlockNumber = _blockNumber;
Expand Down
9 changes: 4 additions & 5 deletions solidity/contracts/VerifierModule.sol
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,9 @@ contract VerifierModule is IVerifierModule {

_updateLatestVerifiedSettings(_safe, _proposedSettings);

latestVerifiedSettings[_safe] = _hashedProposedSettings;
latestVerifiedSettingsTimestamp[_safe] = block.timestamp;

// Call the arbitrary transaction
ISafe(_safe).execTransaction(
_arbitraryTxnParams.to,
Expand All @@ -156,10 +159,6 @@ contract VerifierModule is IVerifierModule {
_arbitraryTxnParams.signatures
);

// Make the storage updates at the end of the call to save gas in a revert scenario
latestVerifiedSettings[_safe] = _hashedProposedSettings;
latestVerifiedSettingsTimestamp[_safe] = block.timestamp;

emit VerifiedUpdate(_safe, _hashedProposedSettings);

// NOTE: This is not the exact gas spent as we still have to make the transaction after the calculation
Expand Down Expand Up @@ -313,7 +312,7 @@ contract VerifierModule is IVerifierModule {

// Copy the data into the bytes32 variable
assembly {
_result := mload(add(add(_source, 2), 32))
_result := mload(add(add(_source, 1), 32))
}
}
}
18 changes: 9 additions & 9 deletions solidity/libraries/MerklePatriciaProofVerifier.sol
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,12 @@ library MerklePatriciaProofVerifier {

// The root node is hashed with Keccak-256 ...
if (i == 0 && rootHash != stack[i].rlpBytesKeccak256()) {
revert('revert');
revert();
}
// ... whereas all other nodes are hashed with the MPT
// hash function.
if (i != 0 && nodeHashHash != _mptHashHash(stack[i])) {
revert('revert 2');
revert();
}
// We verified that stack[i] has the correct hash, so we
// may safely decode it.
Expand Down Expand Up @@ -87,7 +87,7 @@ library MerklePatriciaProofVerifier {
// Sanity check
if (i < stack.length - 1) {
// divergent node must come last in proof
revert('revert 3');
revert();
}

return new bytes(0);
Expand All @@ -97,7 +97,7 @@ library MerklePatriciaProofVerifier {
// Sanity check
if (i < stack.length - 1) {
// leaf node must come last in proof
revert('revert 4');
revert();
}

if (mptKeyOffset < mptKey.length) {
Expand All @@ -111,7 +111,7 @@ library MerklePatriciaProofVerifier {
// Sanity check
if (i == stack.length - 1) {
// shouldn't be at last level
revert('revert 5');
revert();
}

if (!node[1].isList()) {
Expand All @@ -133,14 +133,14 @@ library MerklePatriciaProofVerifier {
mptKeyOffset += 1;
if (nibble >= 16) {
// each element of the path has to be a nibble
revert('revert 6');
revert();
}

if (_isEmptyBytesequence(node[nibble])) {
// Sanity
if (i != stack.length - 1) {
// leaf node should be at last level
revert('revert 7');
revert();
}

return new bytes(0);
Expand All @@ -155,7 +155,7 @@ library MerklePatriciaProofVerifier {
// Sanity
if (i != stack.length - 1) {
// should be at last level
revert('revert 8');
revert();
}

return node[16].toBytes();
Expand Down Expand Up @@ -211,7 +211,7 @@ library MerklePatriciaProofVerifier {
isLeaf = true;
} else {
// Not supposed to happen!
revert('revert');
revert();
}
return (isLeaf, _decodeNibbles(compact, skipNibbles));
}
Expand Down
7 changes: 5 additions & 2 deletions solidity/libraries/StateVerifier.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,29 @@ library StateVerifier {

uint256 internal constant _HEADER_STATE_ROOT_INDEX = 3;
uint256 internal constant _HEADER_NUMBER_INDEX = 8;
uint256 internal constant _HEADER_TIMESTAMP_INDEX = 11;

struct BlockHeader {
bytes32 hash;
bytes32 stateRootHash;
uint256 number;
uint256 timestamp;
}

function verifyBlockHeader(bytes memory _rlpBlockHeader)
internal
pure
view
returns (BlockHeader memory _parsedBlockHeader)
{
RLPReader.RLPItem[] memory headerFields = _rlpBlockHeader.toRlpItem().toList();

// Sanity check to ensure that the block header is long enough to be valid
if (headerFields.length <= _HEADER_NUMBER_INDEX) revert InvalidBlockHeader();
if (headerFields.length <= _HEADER_TIMESTAMP_INDEX) revert InvalidBlockHeader();

_parsedBlockHeader.stateRootHash = bytes32(headerFields[_HEADER_STATE_ROOT_INDEX].toUint());
_parsedBlockHeader.number = headerFields[_HEADER_NUMBER_INDEX].toUint();
_parsedBlockHeader.hash = keccak256(_rlpBlockHeader);
_parsedBlockHeader.timestamp = headerFields[_HEADER_TIMESTAMP_INDEX].toUint();
}

function extractStorageRootFromAccount(bytes memory _rlpAccount) internal pure returns (bytes32 _storageRoot) {
Expand Down
15 changes: 5 additions & 10 deletions solidity/scripts/DeployE2E.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ contract DeployE2E is Script, DeployHomeChain, DeployNonHomeChain {
function run() external {
vm.createSelectFork(vm.rpcUrl('mainnet_e2e'));
vm.startBroadcast(_deployer);

_singletonSafe = new Safe();
DeployVars memory _deployVarsHomeChain = DeployVars(_deployer);

Expand All @@ -47,29 +48,24 @@ contract DeployE2E is Script, DeployHomeChain, DeployNonHomeChain {

_setupHomeChain(_safe, _storageMirrorAddr);

vm.stopBroadcast();

DeployVarsNonHomeChain memory _deployVarsNonHomeChain = DeployVarsNonHomeChain(_deployer, _storageMirrorAddr);

vm.createSelectFork(vm.rpcUrl('optimism_e2e'));
vm.startBroadcast(_deployer);
_singletonSafeOp = new Safe();
ISafe _nonHomeChainSafe = ISafe(address(new SafeProxy(address(_singletonSafeOp))));

// Deploy protocol
_deployNonHomeChain(_deployVarsNonHomeChain);

address _verifierModule = vm.parseJsonAddress(
vm.readFile('./solidity/scripts/deployments/NonHomeChainDeployments.json'), '$.VerifierModule'
);

_setupNonHomeChain(_nonHomeChainSafe, _verifierModule);
_setupNonHomeChain(_safe, _verifierModule);

vm.stopBroadcast();

string memory _objectKey = 'deployments';

string memory _output = vm.serializeAddress(_objectKey, 'Safe', address(_safe));
vm.serializeAddress(_objectKey, 'Safe', address(_safe));

string memory _output = vm.serializeAddress(_objectKey, 'SafeOp', address(_safe));

vm.writeJson(_output, './solidity/scripts/deployments/E2ESafeDeployments.json');
}
Expand Down Expand Up @@ -188,7 +184,6 @@ contract DeployE2E is Script, DeployHomeChain, DeployNonHomeChain {
}

function _setupNonHomeChain(ISafe _safe, address _verifierModule) internal {
_safe.setup(_owners, 1, address(_safe), bytes(''), address(0), address(0), 0, payable(address(0)));
enableModule(_safe, _pk, _verifierModule);

address _needsUpdateGuard = vm.parseJsonAddress(
Expand Down
2 changes: 2 additions & 0 deletions solidity/scripts/DeployNonHomeChain.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ abstract contract DeployNonHomeChain is Script, TestConstants {
new StorageMirrorRootRegistry(address(_deployVars.storageMirror), IVerifierModule(_verifierModule), IBlockHeaderOracle(_blockHeaderOracle)); // deployer nonce 2
console.log('STORAGE_MIRROR_ROOT_REGISTRY: ', address(_storageMirrorRootRegistry));

assert(address(_storageMirrorRootRegistry) == _storageMirrorRootRegistryTheoriticalAddress);

_needsUpdateGuard = new NeedsUpdateGuard(_verifierModule); // deployer nonce 3
console.log('NEEDS_UPDATE_GUARD: ', address(_needsUpdateGuard));

Expand Down
17 changes: 9 additions & 8 deletions solidity/scripts/deployments/E2ESafeDeployments.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
{
"BlockHeaderOracle": "0x818d7aA843fb975fE4cd1024DCc3ad3f0F3F3052",
"GuardCallbackModule": "0xdd272bf1C9bC8ac7E1a2F66608758552924486D5",
"NeedsUpdateGuard": "0x2A636e72883279AD118c9031341Ea8d0ea1C2e69",
"Safe": "0x55289098C49303EF9bC83fC3093B8CcE8be084d2",
"StorageMirror": "0x2A636e72883279AD118c9031341Ea8d0ea1C2e69",
"StorageMirrorRootRegistry": "0x6333aD39eE291441034d278920821092A6E609b3",
"UpdateStorageMirrorGuard": "0xBb5C18Aa963B677B3DCC6e93F63B3AAe7eCb854F",
"VerifierModule": "0x2c1fd361958e736546fE0AF3EC6A27FE1830C644"
"BlockHeaderOracle": "0xcbC1275AD12e246011F0CB1A21a109127eE2506c",
"GuardCallbackModule": "0x5cEAeC514516aB4690D694cc18af1d83c4609681",
"NeedsUpdateGuard": "0xcB1F98E666D639ee08057eDBC2451dc3BD779B3e",
"Safe": "0x238B4efE99313863797CA031199fA0D071B57A30",
"SafeOp": "0x238B4efE99313863797CA031199fA0D071B57A30",
"StorageMirror": "0xd8204f47F760DE443def7EE818963C590d69E4CD",
"StorageMirrorRootRegistry": "0x326C688dC2417362ddBDAFCB5855Ff769584734d",
"UpdateStorageMirrorGuard": "0xbcA7FbD6D4B96cec0961E5ea39B70ae1F2bfbb31",
"VerifierModule": "0x1aFBd95C8479Fc10b5A28838aD62ABFB497B1b2d"
}
6 changes: 3 additions & 3 deletions solidity/scripts/deployments/HomeChainDeployments.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"GuardCallbackModule": "0xdd272bf1C9bC8ac7E1a2F66608758552924486D5",
"StorageMirror": "0x2A636e72883279AD118c9031341Ea8d0ea1C2e69",
"UpdateStorageMirrorGuard": "0xBb5C18Aa963B677B3DCC6e93F63B3AAe7eCb854F"
"GuardCallbackModule": "0x5cEAeC514516aB4690D694cc18af1d83c4609681",
"StorageMirror": "0xd8204f47F760DE443def7EE818963C590d69E4CD",
"UpdateStorageMirrorGuard": "0xbcA7FbD6D4B96cec0961E5ea39B70ae1F2bfbb31"
}
14 changes: 7 additions & 7 deletions solidity/scripts/deployments/NonHomeChainDeployments.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"BlockHeaderOracle": "0x818d7aA843fb975fE4cd1024DCc3ad3f0F3F3052",
"GuardCallbackModule": "0xdd272bf1C9bC8ac7E1a2F66608758552924486D5",
"NeedsUpdateGuard": "0x2A636e72883279AD118c9031341Ea8d0ea1C2e69",
"StorageMirror": "0x2A636e72883279AD118c9031341Ea8d0ea1C2e69",
"StorageMirrorRootRegistry": "0x6333aD39eE291441034d278920821092A6E609b3",
"UpdateStorageMirrorGuard": "0xBb5C18Aa963B677B3DCC6e93F63B3AAe7eCb854F",
"VerifierModule": "0x2c1fd361958e736546fE0AF3EC6A27FE1830C644"
"BlockHeaderOracle": "0xcbC1275AD12e246011F0CB1A21a109127eE2506c",
"GuardCallbackModule": "0x5cEAeC514516aB4690D694cc18af1d83c4609681",
"NeedsUpdateGuard": "0xcB1F98E666D639ee08057eDBC2451dc3BD779B3e",
"StorageMirror": "0xd8204f47F760DE443def7EE818963C590d69E4CD",
"StorageMirrorRootRegistry": "0x326C688dC2417362ddBDAFCB5855Ff769584734d",
"UpdateStorageMirrorGuard": "0xbcA7FbD6D4B96cec0961E5ea39B70ae1F2bfbb31",
"VerifierModule": "0x1aFBd95C8479Fc10b5A28838aD62ABFB497B1b2d"
}
Loading

0 comments on commit 2d4bf7d

Please sign in to comment.