Commit 095a07e8 authored by clabby's avatar clabby

@maurelian review

parent a6181251
......@@ -36,21 +36,33 @@ library ChainAssertions {
ResourceMetering.ResourceConfig memory dflt = Constants.DEFAULT_RESOURCE_CONFIG();
require(keccak256(abi.encode(rcfg)) == keccak256(abi.encode(dflt)));
checkSystemConfig(_prox, _cfg, true);
checkSystemConfig({
_contracts: _prox,
_cfg: _cfg,
_isProxy: true
});
checkL1CrossDomainMessenger(_prox, _vm);
checkL1StandardBridge(_prox);
checkL2OutputOracle(_prox, _cfg, _l2OutputOracleStartingTimestamp, _l2OutputOracleStartingBlockNumber);
checkOptimismMintableERC20Factory(_prox);
checkL1ERC721Bridge(_prox);
checkOptimismPortal(_prox, _cfg, false);
checkProtocolVersions(_prox, _cfg, true);
checkOptimismPortal({
_contracts: _prox,
_cfg: _cfg,
_isPaused: false
});
checkProtocolVersions({
_contracts: _prox,
_cfg: _cfg,
_isProxy: true
});
}
/// @notice Asserts that the SystemConfig is setup correctly
function checkSystemConfig(Types.ContractSet memory _contracts, DeployConfig _cfg, bool _proxy) internal view {
function checkSystemConfig(Types.ContractSet memory _contracts, DeployConfig _cfg, bool _isProxy) internal view {
ISystemConfigV0 config = ISystemConfigV0(_contracts.SystemConfig);
if (_proxy) {
if (_isProxy) {
require(config.owner() == _cfg.finalSystemOwner());
require(config.overhead() == _cfg.gasPriceOracleOverhead());
require(config.scalar() == _cfg.gasPriceOracleScalar());
......@@ -159,9 +171,9 @@ library ChainAssertions {
}
/// @notice Asserts that the ProtocolVersions is setup correctly
function checkProtocolVersions(Types.ContractSet memory _proxies, DeployConfig _cfg, bool _proxy) internal view {
ProtocolVersions versions = ProtocolVersions(_proxies.ProtocolVersions);
if (_proxy) {
function checkProtocolVersions(Types.ContractSet memory _contracts, DeployConfig _cfg, bool _isProxy) internal view {
ProtocolVersions versions = ProtocolVersions(_contracts.ProtocolVersions);
if (_isProxy) {
require(versions.owner() == _cfg.finalSystemOwner());
require(ProtocolVersion.unwrap(versions.required()) == _cfg.requiredProtocolVersion());
require(ProtocolVersion.unwrap(versions.recommended()) == _cfg.recommendedProtocolVersion());
......
......@@ -426,7 +426,11 @@ contract Deploy is Deployer {
Types.ContractSet memory contracts = _proxiesUnstrict();
contracts.OptimismPortal = address(portal);
ChainAssertions.checkOptimismPortal(contracts, cfg, true);
ChainAssertions.checkOptimismPortal({
_contracts: contracts,
_cfg: cfg,
_isPaused: true
});
require(loadInitializedSlot("OptimismPortal", false) == 1, "OptimismPortal is not initialized");
......@@ -499,7 +503,11 @@ contract Deploy is Deployer {
Types.ContractSet memory contracts = _proxiesUnstrict();
contracts.ProtocolVersions = address(versions);
ChainAssertions.checkProtocolVersions(contracts, cfg, false);
ChainAssertions.checkProtocolVersions({
_contracts: contracts,
_cfg: cfg,
_isProxy: false
});
require(loadInitializedSlot("ProtocolVersions", false) == 1, "ProtocolVersions is not initialized");
......@@ -543,7 +551,11 @@ contract Deploy is Deployer {
Types.ContractSet memory contracts = _proxiesUnstrict();
contracts.SystemConfig = address(config);
ChainAssertions.checkSystemConfig(contracts, cfg, false);
ChainAssertions.checkSystemConfig({
_contracts: contracts,
_cfg: cfg,
_isProxy: false
});
require(loadInitializedSlot("SystemConfig", false) == 1, "SystemConfig is not initialized");
......@@ -646,7 +658,11 @@ contract Deploy is Deployer {
string memory version = config.version();
console.log("SystemConfig version: %s", version);
ChainAssertions.checkSystemConfig(_proxies(), cfg, true);
ChainAssertions.checkSystemConfig({
_contracts: _proxies(),
_cfg: cfg,
_isProxy: true
});
require(loadInitializedSlot("SystemConfig", true) == 1, "SystemConfigProxy is not initialized");
}
......@@ -799,7 +815,11 @@ contract Deploy is Deployer {
string memory version = portal.version();
console.log("OptimismPortal version: %s", version);
ChainAssertions.checkOptimismPortal(_proxies(), cfg, false);
ChainAssertions.checkOptimismPortal({
_contracts: _proxies(),
_cfg: cfg,
_isPaused: false
});
require(loadInitializedSlot("OptimismPortal", true) == 1, "OptimismPortalProxy is not initialized");
}
......@@ -829,7 +849,11 @@ contract Deploy is Deployer {
string memory version = versions.version();
console.log("ProtocolVersions version: %s", version);
ChainAssertions.checkProtocolVersions(_proxies(), cfg, true);
ChainAssertions.checkProtocolVersions({
_contracts: _proxies(),
_cfg: cfg,
_isProxy: true
});
require(loadInitializedSlot("ProtocolVersions", true) == 1, "ProtocolVersionsProxy is not initialized");
}
......
......@@ -459,9 +459,9 @@ abstract contract Deployer is Script {
}
/// @dev Returns the value of the internal `_initialized` storage slot for a given contract.
function loadInitializedSlot(string memory _contractName, bool _proxy) internal returns (uint8 initialized_) {
function loadInitializedSlot(string memory _contractName, bool _isProxy) internal returns (uint8 initialized_) {
StorageSlot memory slot = getInitializedSlot(_contractName);
if (_proxy) {
if (_isProxy) {
_contractName = string.concat(_contractName, "Proxy");
}
bytes32 slotVal = vm.load(mustGetAddress(_contractName), bytes32(vm.parseUint(slot.slot)));
......
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