Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
095a07e8
Commit
095a07e8
authored
Nov 22, 2023
by
clabby
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
@maurelian review
parent
a6181251
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
52 additions
and
16 deletions
+52
-16
ChainAssertions.sol
packages/contracts-bedrock/scripts/ChainAssertions.sol
+20
-8
Deploy.s.sol
packages/contracts-bedrock/scripts/Deploy.s.sol
+30
-6
Deployer.sol
packages/contracts-bedrock/scripts/Deployer.sol
+2
-2
No files found.
packages/contracts-bedrock/scripts/ChainAssertions.sol
View file @
095a07e8
...
...
@@ -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 _
p
roxy) internal view {
function checkSystemConfig(Types.ContractSet memory _contracts, DeployConfig _cfg, bool _
isP
roxy) internal view {
ISystemConfigV0 config = ISystemConfigV0(_contracts.SystemConfig);
if (_
p
roxy) {
if (_
isP
roxy) {
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 _p
roxy) internal view {
ProtocolVersions versions = ProtocolVersions(_
proxie
s.ProtocolVersions);
if (_
p
roxy) {
function checkProtocolVersions(Types.ContractSet memory _
contracts, DeployConfig _cfg, bool _isP
roxy) internal view {
ProtocolVersions versions = ProtocolVersions(_
contract
s.ProtocolVersions);
if (_
isP
roxy) {
require(versions.owner() == _cfg.finalSystemOwner());
require(ProtocolVersion.unwrap(versions.required()) == _cfg.requiredProtocolVersion());
require(ProtocolVersion.unwrap(versions.recommended()) == _cfg.recommendedProtocolVersion());
...
...
packages/contracts-bedrock/scripts/Deploy.s.sol
View file @
095a07e8
...
...
@@ -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");
}
...
...
packages/contracts-bedrock/scripts/Deployer.sol
View file @
095a07e8
...
...
@@ -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 _
p
roxy) internal returns (uint8 initialized_) {
function loadInitializedSlot(string memory _contractName, bool _
isP
roxy) internal returns (uint8 initialized_) {
StorageSlot memory slot = getInitializedSlot(_contractName);
if (_
p
roxy) {
if (_
isP
roxy) {
_contractName = string.concat(_contractName, "Proxy");
}
bytes32 slotVal = vm.load(mustGetAddress(_contractName), bytes32(vm.parseUint(slot.slot)));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment