Commit 8b0cbf3b authored by Roberto Bayardo's avatar Roberto Bayardo Committed by GitHub

Holocene: SystemConfig contract changes for updating EIP-1559 params (#12498)

* eip-1559 sysconfig contract changes

* tests: add SystemConfig tests

---------
Co-authored-by: default avatarMark Tyneway <mark.tyneway@gmail.com>
parent 574aba77
...@@ -4,14 +4,14 @@ GasBenchMark_L1BlockInterop_SetValuesInterop:test_setL1BlockValuesInterop_benchm ...@@ -4,14 +4,14 @@ GasBenchMark_L1BlockInterop_SetValuesInterop:test_setL1BlockValuesInterop_benchm
GasBenchMark_L1BlockInterop_SetValuesInterop_Warm:test_setL1BlockValuesInterop_benchmark() (gas: 5099) GasBenchMark_L1BlockInterop_SetValuesInterop_Warm:test_setL1BlockValuesInterop_benchmark() (gas: 5099)
GasBenchMark_L1Block_SetValuesEcotone:test_setL1BlockValuesEcotone_benchmark() (gas: 158531) GasBenchMark_L1Block_SetValuesEcotone:test_setL1BlockValuesEcotone_benchmark() (gas: 158531)
GasBenchMark_L1Block_SetValuesEcotone_Warm:test_setL1BlockValuesEcotone_benchmark() (gas: 7597) GasBenchMark_L1Block_SetValuesEcotone_Warm:test_setL1BlockValuesEcotone_benchmark() (gas: 7597)
GasBenchMark_L1CrossDomainMessenger:test_sendMessage_benchmark_0() (gas: 369344) GasBenchMark_L1CrossDomainMessenger:test_sendMessage_benchmark_0() (gas: 369280)
GasBenchMark_L1CrossDomainMessenger:test_sendMessage_benchmark_1() (gas: 2967484) GasBenchMark_L1CrossDomainMessenger:test_sendMessage_benchmark_1() (gas: 2967420)
GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_0() (gas: 564462) GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_0() (gas: 564398)
GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_1() (gas: 4076505) GasBenchMark_L1StandardBridge_Deposit:test_depositERC20_benchmark_1() (gas: 4076613)
GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_0() (gas: 466947) GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_0() (gas: 467098)
GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_1() (gas: 3512651) GasBenchMark_L1StandardBridge_Deposit:test_depositETH_benchmark_1() (gas: 3512802)
GasBenchMark_L1StandardBridge_Finalize:test_finalizeETHWithdrawal_benchmark() (gas: 72621) GasBenchMark_L1StandardBridge_Finalize:test_finalizeETHWithdrawal_benchmark() (gas: 72664)
GasBenchMark_L2OutputOracle:test_proposeL2Output_benchmark() (gas: 92973) GasBenchMark_L2OutputOracle:test_proposeL2Output_benchmark() (gas: 92973)
GasBenchMark_OptimismPortal:test_depositTransaction_benchmark() (gas: 68357) GasBenchMark_OptimismPortal:test_depositTransaction_benchmark() (gas: 68422)
GasBenchMark_OptimismPortal:test_depositTransaction_benchmark_1() (gas: 68921) GasBenchMark_OptimismPortal:test_depositTransaction_benchmark_1() (gas: 68986)
GasBenchMark_OptimismPortal:test_proveWithdrawalTransaction_benchmark() (gas: 155610) GasBenchMark_OptimismPortal:test_proveWithdrawalTransaction_benchmark() (gas: 155610)
\ No newline at end of file
...@@ -48,12 +48,12 @@ ...@@ -48,12 +48,12 @@
"sourceCodeHash": "0x39489a85bc3a5c8560f82d41b31bf7fe22f5b648f4ed538f61695a73092ea9eb" "sourceCodeHash": "0x39489a85bc3a5c8560f82d41b31bf7fe22f5b648f4ed538f61695a73092ea9eb"
}, },
"src/L1/SystemConfig.sol": { "src/L1/SystemConfig.sol": {
"initCodeHash": "0xbe40fde9ebea4cd0820dc7f1b1a5c8c1f5ace448baacdafb3068d16d55218180", "initCodeHash": "0x429058f75d97fa7a7d0166b59830909bc722324feefc40f2b41419d6335d3f37",
"sourceCodeHash": "0x7c0366afeb116516d2de0d29456efea82ccdf643b1fcea215e3585d109c314a7" "sourceCodeHash": "0x5ca776041a4ddc0d28ec55db7012d669481cd4601b0e71dbd3493a67b8a7e5a5"
}, },
"src/L1/SystemConfigInterop.sol": { "src/L1/SystemConfigInterop.sol": {
"initCodeHash": "0x9fe11f6086be055e9abfc6d38037ba2af5a9644b4a4b3fd66a6cbdb55f17c1e1", "initCodeHash": "0x277a61dcabed81a15739a8e9ed50615252bcc687cebea852e00191d0a1fbe11f",
"sourceCodeHash": "0x53de72f7057d459da79207f560b3bf1d057e901ec38f515ea7d29d7e323063e1" "sourceCodeHash": "0x38361a4f70a19e1b7819e933932a0c9fd2bcebaaebcbc7942f5c00dfaa2c28df"
}, },
"src/L2/BaseFeeVault.sol": { "src/L2/BaseFeeVault.sol": {
"initCodeHash": "0xbf49824cf37e201181484a8a423fcad8f504dc925921a2b28e83398197858dec", "initCodeHash": "0xbf49824cf37e201181484a8a423fcad8f504dc925921a2b28e83398197858dec",
......
...@@ -199,6 +199,32 @@ ...@@ -199,6 +199,32 @@
"stateMutability": "view", "stateMutability": "view",
"type": "function" "type": "function"
}, },
{
"inputs": [],
"name": "eip1559Denominator",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "eip1559Elasticity",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{ {
"inputs": [], "inputs": [],
"name": "gasLimit", "name": "gasLimit",
...@@ -586,6 +612,24 @@ ...@@ -586,6 +612,24 @@
"stateMutability": "nonpayable", "stateMutability": "nonpayable",
"type": "function" "type": "function"
}, },
{
"inputs": [
{
"internalType": "uint32",
"name": "_denominator",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "_elasticity",
"type": "uint32"
}
],
"name": "setEIP1559Params",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{ {
"inputs": [ "inputs": [
{ {
......
...@@ -220,6 +220,32 @@ ...@@ -220,6 +220,32 @@
"stateMutability": "view", "stateMutability": "view",
"type": "function" "type": "function"
}, },
{
"inputs": [],
"name": "eip1559Denominator",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "eip1559Elasticity",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{ {
"inputs": [], "inputs": [],
"name": "gasLimit", "name": "gasLimit",
...@@ -747,6 +773,24 @@ ...@@ -747,6 +773,24 @@
"stateMutability": "nonpayable", "stateMutability": "nonpayable",
"type": "function" "type": "function"
}, },
{
"inputs": [
{
"internalType": "uint32",
"name": "_denominator",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "_elasticity",
"type": "uint32"
}
],
"name": "setEIP1559Params",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{ {
"inputs": [ "inputs": [
{ {
......
...@@ -82,5 +82,19 @@ ...@@ -82,5 +82,19 @@
"offset": 0, "offset": 0,
"slot": "105", "slot": "105",
"type": "struct IResourceMetering.ResourceConfig" "type": "struct IResourceMetering.ResourceConfig"
},
{
"bytes": "4",
"label": "eip1559Denominator",
"offset": 0,
"slot": "106",
"type": "uint32"
},
{
"bytes": "4",
"label": "eip1559Elasticity",
"offset": 4,
"slot": "106",
"type": "uint32"
} }
] ]
\ No newline at end of file
...@@ -82,5 +82,19 @@ ...@@ -82,5 +82,19 @@
"offset": 0, "offset": 0,
"slot": "105", "slot": "105",
"type": "struct IResourceMetering.ResourceConfig" "type": "struct IResourceMetering.ResourceConfig"
},
{
"bytes": "4",
"label": "eip1559Denominator",
"offset": 0,
"slot": "106",
"type": "uint32"
},
{
"bytes": "4",
"label": "eip1559Elasticity",
"offset": 4,
"slot": "106",
"type": "uint32"
} }
] ]
\ No newline at end of file
...@@ -31,7 +31,8 @@ contract SystemConfig is OwnableUpgradeable, ISemver, IGasToken { ...@@ -31,7 +31,8 @@ contract SystemConfig is OwnableUpgradeable, ISemver, IGasToken {
BATCHER, BATCHER,
FEE_SCALARS, FEE_SCALARS,
GAS_LIMIT, GAS_LIMIT,
UNSAFE_BLOCK_SIGNER UNSAFE_BLOCK_SIGNER,
EIP_1559_PARAMS
} }
/// @notice Struct representing the addresses of L1 system contracts. These should be the /// @notice Struct representing the addresses of L1 system contracts. These should be the
...@@ -123,6 +124,12 @@ contract SystemConfig is OwnableUpgradeable, ISemver, IGasToken { ...@@ -123,6 +124,12 @@ contract SystemConfig is OwnableUpgradeable, ISemver, IGasToken {
/// Set as internal with a getter so that the struct is returned instead of a tuple. /// Set as internal with a getter so that the struct is returned instead of a tuple.
IResourceMetering.ResourceConfig internal _resourceConfig; IResourceMetering.ResourceConfig internal _resourceConfig;
/// @notice The EIP-1559 base fee max change denominator.
uint32 public eip1559Denominator;
/// @notice The EIP-1559 elasticity multiplier.
uint32 public eip1559Elasticity;
/// @notice Emitted when configuration is updated. /// @notice Emitted when configuration is updated.
/// @param version SystemConfig version. /// @param version SystemConfig version.
/// @param updateType Type of update. /// @param updateType Type of update.
...@@ -130,9 +137,9 @@ contract SystemConfig is OwnableUpgradeable, ISemver, IGasToken { ...@@ -130,9 +137,9 @@ contract SystemConfig is OwnableUpgradeable, ISemver, IGasToken {
event ConfigUpdate(uint256 indexed version, UpdateType indexed updateType, bytes data); event ConfigUpdate(uint256 indexed version, UpdateType indexed updateType, bytes data);
/// @notice Semantic version. /// @notice Semantic version.
/// @custom:semver 2.3.0-beta.4 /// @custom:semver 2.3.0-beta.5
function version() public pure virtual returns (string memory) { function version() public pure virtual returns (string memory) {
return "2.3.0-beta.4"; return "2.3.0-beta.5";
} }
/// @notice Constructs the SystemConfig contract. Cannot set /// @notice Constructs the SystemConfig contract. Cannot set
...@@ -420,6 +427,25 @@ contract SystemConfig is OwnableUpgradeable, ISemver, IGasToken { ...@@ -420,6 +427,25 @@ contract SystemConfig is OwnableUpgradeable, ISemver, IGasToken {
emit ConfigUpdate(VERSION, UpdateType.GAS_LIMIT, data); emit ConfigUpdate(VERSION, UpdateType.GAS_LIMIT, data);
} }
/// @notice Updates the EIP-1559 parameters of the chain. Can only be called by the owner.
/// @param _denominator EIP-1559 base fee max change denominator.
/// @param _elasticity EIP-1559 elasticity multiplier.
function setEIP1559Params(uint32 _denominator, uint32 _elasticity) external onlyOwner {
_setEIP1559Params(_denominator, _elasticity);
}
/// @notice Internal function for updating the EIP-1559 parameters.
function _setEIP1559Params(uint32 _denominator, uint32 _elasticity) internal {
// require the parameters have sane values:
require(_denominator >= 1, "SystemConfig: denominator must be >= 1");
require(_elasticity >= 1, "SystemConfig: elasticity must be >= 1");
eip1559Denominator = _denominator;
eip1559Elasticity = _elasticity;
bytes memory data = abi.encode(uint256(_denominator) << 32 | uint64(_elasticity));
emit ConfigUpdate(VERSION, UpdateType.EIP_1559_PARAMS, data);
}
/// @notice Sets the start block in a backwards compatible way. Proxies /// @notice Sets the start block in a backwards compatible way. Proxies
/// that were initialized before the startBlock existed in storage /// that were initialized before the startBlock existed in storage
/// can have their start block set by a user provided override. /// can have their start block set by a user provided override.
......
...@@ -68,9 +68,9 @@ contract SystemConfigInterop is SystemConfig { ...@@ -68,9 +68,9 @@ contract SystemConfigInterop is SystemConfig {
Storage.setAddress(DEPENDENCY_MANAGER_SLOT, _dependencyManager); Storage.setAddress(DEPENDENCY_MANAGER_SLOT, _dependencyManager);
} }
/// @custom:semver +interop-beta.2 /// @custom:semver +interop-beta.3
function version() public pure override returns (string memory) { function version() public pure override returns (string memory) {
return string.concat(super.version(), "+interop-beta.2"); return string.concat(super.version(), "+interop-beta.3");
} }
/// @notice Internal setter for the gas paying token address, includes validation. /// @notice Internal setter for the gas paying token address, includes validation.
......
...@@ -9,7 +9,8 @@ interface ISystemConfig { ...@@ -9,7 +9,8 @@ interface ISystemConfig {
BATCHER, BATCHER,
FEE_SCALARS, FEE_SCALARS,
GAS_LIMIT, GAS_LIMIT,
UNSAFE_BLOCK_SIGNER UNSAFE_BLOCK_SIGNER,
EIP_1559_PARAMS
} }
struct Addresses { struct Addresses {
...@@ -42,6 +43,8 @@ interface ISystemConfig { ...@@ -42,6 +43,8 @@ interface ISystemConfig {
function blobbasefeeScalar() external view returns (uint32); function blobbasefeeScalar() external view returns (uint32);
function disputeGameFactory() external view returns (address addr_); function disputeGameFactory() external view returns (address addr_);
function gasLimit() external view returns (uint64); function gasLimit() external view returns (uint64);
function eip1559Denominator() external view returns (uint32);
function eip1559Elasticity() external view returns (uint32);
function gasPayingToken() external view returns (address addr_, uint8 decimals_); function gasPayingToken() external view returns (address addr_, uint8 decimals_);
function gasPayingTokenName() external view returns (string memory name_); function gasPayingTokenName() external view returns (string memory name_);
function gasPayingTokenSymbol() external view returns (string memory symbol_); function gasPayingTokenSymbol() external view returns (string memory symbol_);
...@@ -75,6 +78,7 @@ interface ISystemConfig { ...@@ -75,6 +78,7 @@ interface ISystemConfig {
function setGasConfigEcotone(uint32 _basefeeScalar, uint32 _blobbasefeeScalar) external; function setGasConfigEcotone(uint32 _basefeeScalar, uint32 _blobbasefeeScalar) external;
function setGasLimit(uint64 _gasLimit) external; function setGasLimit(uint64 _gasLimit) external;
function setUnsafeBlockSigner(address _unsafeBlockSigner) external; function setUnsafeBlockSigner(address _unsafeBlockSigner) external;
function setEIP1559Params(uint32 _denominator, uint32 _elasticity) external;
function startBlock() external view returns (uint256 startBlock_); function startBlock() external view returns (uint256 startBlock_);
function transferOwnership(address newOwner) external; // nosemgrep function transferOwnership(address newOwner) external; // nosemgrep
function unsafeBlockSigner() external view returns (address addr_); function unsafeBlockSigner() external view returns (address addr_);
......
...@@ -25,6 +25,8 @@ interface ISystemConfigInterop { ...@@ -25,6 +25,8 @@ interface ISystemConfigInterop {
function blobbasefeeScalar() external view returns (uint32); function blobbasefeeScalar() external view returns (uint32);
function disputeGameFactory() external view returns (address addr_); function disputeGameFactory() external view returns (address addr_);
function gasLimit() external view returns (uint64); function gasLimit() external view returns (uint64);
function eip1559Denominator() external view returns (uint32);
function eip1559Elasticity() external view returns (uint32);
function gasPayingToken() external view returns (address addr_, uint8 decimals_); function gasPayingToken() external view returns (address addr_, uint8 decimals_);
function gasPayingTokenName() external view returns (string memory name_); function gasPayingTokenName() external view returns (string memory name_);
function gasPayingTokenSymbol() external view returns (string memory symbol_); function gasPayingTokenSymbol() external view returns (string memory symbol_);
...@@ -46,6 +48,7 @@ interface ISystemConfigInterop { ...@@ -46,6 +48,7 @@ interface ISystemConfigInterop {
function setGasConfigEcotone(uint32 _basefeeScalar, uint32 _blobbasefeeScalar) external; function setGasConfigEcotone(uint32 _basefeeScalar, uint32 _blobbasefeeScalar) external;
function setGasLimit(uint64 _gasLimit) external; function setGasLimit(uint64 _gasLimit) external;
function setUnsafeBlockSigner(address _unsafeBlockSigner) external; function setUnsafeBlockSigner(address _unsafeBlockSigner) external;
function setEIP1559Params(uint32 _denominator, uint32 _elasticity) external;
function startBlock() external view returns (uint256 startBlock_); function startBlock() external view returns (uint256 startBlock_);
function transferOwnership(address newOwner) external; // nosemgrep function transferOwnership(address newOwner) external; // nosemgrep
function unsafeBlockSigner() external view returns (address addr_); function unsafeBlockSigner() external view returns (address addr_);
......
...@@ -526,6 +526,27 @@ contract SystemConfig_Setters_TestFail is SystemConfig_Init { ...@@ -526,6 +526,27 @@ contract SystemConfig_Setters_TestFail is SystemConfig_Init {
vm.expectRevert("SystemConfig: gas limit too high"); vm.expectRevert("SystemConfig: gas limit too high");
systemConfig.setGasLimit(maximumGasLimit + 1); systemConfig.setGasLimit(maximumGasLimit + 1);
} }
/// @dev Tests that `setEIP1559Params` reverts if the caller is not the owner.
function test_setEIP1559Params_notOwner_reverts(uint32 _denominator, uint32 _elasticity) external {
vm.expectRevert("Ownable: caller is not the owner");
systemConfig.setEIP1559Params({ _denominator: _denominator, _elasticity: _elasticity });
}
/// @dev Tests that `setEIP1559Params` reverts if the denominator is zero.
function test_setEIP1559Params_zeroDenominator_reverts(uint32 _elasticity) external {
vm.prank(systemConfig.owner());
vm.expectRevert("SystemConfig: denominator must be >= 1");
systemConfig.setEIP1559Params({ _denominator: 0, _elasticity: _elasticity });
}
/// @dev Tests that `setEIP1559Params` reverts if the elasticity is zero.
function test_setEIP1559Params_zeroElasticity_reverts(uint32 _denominator) external {
vm.assume(_denominator >= 1);
vm.prank(systemConfig.owner());
vm.expectRevert("SystemConfig: elasticity must be >= 1");
systemConfig.setEIP1559Params({ _denominator: _denominator, _elasticity: 0 });
}
} }
contract SystemConfig_Setters_Test is SystemConfig_Init { contract SystemConfig_Setters_Test is SystemConfig_Init {
...@@ -593,4 +614,20 @@ contract SystemConfig_Setters_Test is SystemConfig_Init { ...@@ -593,4 +614,20 @@ contract SystemConfig_Setters_Test is SystemConfig_Init {
systemConfig.setUnsafeBlockSigner(newUnsafeSigner); systemConfig.setUnsafeBlockSigner(newUnsafeSigner);
assertEq(systemConfig.unsafeBlockSigner(), newUnsafeSigner); assertEq(systemConfig.unsafeBlockSigner(), newUnsafeSigner);
} }
/// @dev Tests that `setEIP1559Params` updates the EIP1559 parameters successfully.
function testFuzz_setEIP1559Params_succeeds(uint32 _denominator, uint32 _elasticity) external {
vm.assume(_denominator > 1);
vm.assume(_elasticity > 1);
vm.expectEmit(address(systemConfig));
emit ConfigUpdate(
0, ISystemConfig.UpdateType.EIP_1559_PARAMS, abi.encode(uint256(_denominator) << 32 | uint64(_elasticity))
);
vm.prank(systemConfig.owner());
systemConfig.setEIP1559Params(_denominator, _elasticity);
assertEq(systemConfig.eip1559Denominator(), _denominator);
assertEq(systemConfig.eip1559Elasticity(), _elasticity);
}
} }
...@@ -430,6 +430,8 @@ contract Specification_Test is CommonTest { ...@@ -430,6 +430,8 @@ contract Specification_Test is CommonTest {
_addSpec({ _name: "SystemConfig", _sel: _getSel("VERSION()") }); _addSpec({ _name: "SystemConfig", _sel: _getSel("VERSION()") });
_addSpec({ _name: "SystemConfig", _sel: _getSel("batcherHash()") }); _addSpec({ _name: "SystemConfig", _sel: _getSel("batcherHash()") });
_addSpec({ _name: "SystemConfig", _sel: _getSel("gasLimit()") }); _addSpec({ _name: "SystemConfig", _sel: _getSel("gasLimit()") });
_addSpec({ _name: "SystemConfig", _sel: _getSel("eip1559Denominator()") });
_addSpec({ _name: "SystemConfig", _sel: _getSel("eip1559Elasticity()") });
_addSpec({ _name: "SystemConfig", _sel: ISystemConfig.initialize.selector }); _addSpec({ _name: "SystemConfig", _sel: ISystemConfig.initialize.selector });
_addSpec({ _name: "SystemConfig", _sel: ISystemConfig.minimumGasLimit.selector }); _addSpec({ _name: "SystemConfig", _sel: ISystemConfig.minimumGasLimit.selector });
_addSpec({ _name: "SystemConfig", _sel: _getSel("overhead()") }); _addSpec({ _name: "SystemConfig", _sel: _getSel("overhead()") });
...@@ -440,6 +442,7 @@ contract Specification_Test is CommonTest { ...@@ -440,6 +442,7 @@ contract Specification_Test is CommonTest {
_addSpec({ _name: "SystemConfig", _sel: ISystemConfig.setBatcherHash.selector, _auth: Role.SYSTEMCONFIGOWNER }); _addSpec({ _name: "SystemConfig", _sel: ISystemConfig.setBatcherHash.selector, _auth: Role.SYSTEMCONFIGOWNER });
_addSpec({ _name: "SystemConfig", _sel: ISystemConfig.setGasConfig.selector, _auth: Role.SYSTEMCONFIGOWNER }); _addSpec({ _name: "SystemConfig", _sel: ISystemConfig.setGasConfig.selector, _auth: Role.SYSTEMCONFIGOWNER });
_addSpec({ _name: "SystemConfig", _sel: ISystemConfig.setGasLimit.selector, _auth: Role.SYSTEMCONFIGOWNER }); _addSpec({ _name: "SystemConfig", _sel: ISystemConfig.setGasLimit.selector, _auth: Role.SYSTEMCONFIGOWNER });
_addSpec({ _name: "SystemConfig", _sel: ISystemConfig.setEIP1559Params.selector, _auth: Role.SYSTEMCONFIGOWNER });
_addSpec({ _addSpec({
_name: "SystemConfig", _name: "SystemConfig",
_sel: ISystemConfig.setUnsafeBlockSigner.selector, _sel: ISystemConfig.setUnsafeBlockSigner.selector,
...@@ -482,6 +485,8 @@ contract Specification_Test is CommonTest { ...@@ -482,6 +485,8 @@ contract Specification_Test is CommonTest {
_addSpec({ _name: "SystemConfigInterop", _sel: _getSel("VERSION()") }); _addSpec({ _name: "SystemConfigInterop", _sel: _getSel("VERSION()") });
_addSpec({ _name: "SystemConfigInterop", _sel: _getSel("batcherHash()") }); _addSpec({ _name: "SystemConfigInterop", _sel: _getSel("batcherHash()") });
_addSpec({ _name: "SystemConfigInterop", _sel: _getSel("gasLimit()") }); _addSpec({ _name: "SystemConfigInterop", _sel: _getSel("gasLimit()") });
_addSpec({ _name: "SystemConfigInterop", _sel: _getSel("eip1559Denominator()") });
_addSpec({ _name: "SystemConfigInterop", _sel: _getSel("eip1559Elasticity()") });
_addSpec({ _name: "SystemConfigInterop", _sel: ISystemConfig.initialize.selector }); _addSpec({ _name: "SystemConfigInterop", _sel: ISystemConfig.initialize.selector });
_addSpec({ _name: "SystemConfigInterop", _sel: ISystemConfig.minimumGasLimit.selector }); _addSpec({ _name: "SystemConfigInterop", _sel: ISystemConfig.minimumGasLimit.selector });
_addSpec({ _name: "SystemConfigInterop", _sel: _getSel("overhead()") }); _addSpec({ _name: "SystemConfigInterop", _sel: _getSel("overhead()") });
...@@ -504,6 +509,11 @@ contract Specification_Test is CommonTest { ...@@ -504,6 +509,11 @@ contract Specification_Test is CommonTest {
_sel: ISystemConfig.setGasLimit.selector, _sel: ISystemConfig.setGasLimit.selector,
_auth: Role.SYSTEMCONFIGOWNER _auth: Role.SYSTEMCONFIGOWNER
}); });
_addSpec({
_name: "SystemConfigInterop",
_sel: ISystemConfig.setEIP1559Params.selector,
_auth: Role.SYSTEMCONFIGOWNER
});
_addSpec({ _addSpec({
_name: "SystemConfigInterop", _name: "SystemConfigInterop",
_sel: ISystemConfig.setUnsafeBlockSigner.selector, _sel: ISystemConfig.setUnsafeBlockSigner.selector,
......
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