You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We must implement a ChainSpec and HardForks for scroll and also scroll sepolia testnet.
Hardfork
The Hardfork is used to determine the block number and timestamp at which features / functionality is changed. An example of a Hardfork implementation for Optimism can be found here. It should be noted that there is an expectation for hardforks to be mixed with ethereum hardforks as stated here:
We should review the hardforks introduce in scrolls fork of revm which are feature gated in the link provided. We should then implement a pattern similar to optimism by creating a crate to define these in reth for scroll. These will then be subsequently integrated with the revm hardfork type as seen below in the optimism example (this is outside of the scope of this issue and should be handled in #5):
The ChainSpec defines the core primitives of the chain such as the chain id, state genesis data, hardforks and other properties relating to the chain. A comprehensive view of the ChainSpec can be seen by observing the data structure:
/// The active hard forks and their activation conditions
pubhardforks:ChainHardforks,
/// The deposit contract deployed for `PoS`
pubdeposit_contract:Option<DepositContract>,
/// The parameters that configure how a block's base fee is computed
pubbase_fee_params:BaseFeeParamsKind,
/// The maximum gas limit
pubmax_gas_limit:u64,
/// The delete limit for pruner, per run.
pubprune_delete_limit:usize,
}
We should follow a similar pattern as Optimism and implement a crate for scrolls ChainSpec associated types. The Optimism example can be found here. We should implement a spec for both scroll mainnet and scroll sepolia.
The text was updated successfully, but these errors were encountered:
Should we add the fee_vault_address as part of the ScrollChainSpec?
This would follow the pattern used in l2geth and allow us to introduce ScrollEvmConfig and implement ConfigureEvmEnv, where we can set the coinbase for the block to the vault address.
Overview
We must implement a
ChainSpec
andHardForks
for scroll and also scroll sepolia testnet.Hardfork
The
Hardfork
is used to determine the block number and timestamp at which features / functionality is changed. An example of aHardfork
implementation forOptimism
can be found here. It should be noted that there is an expectation for hardforks to be mixed with ethereum hardforks as stated here:reth/crates/optimism/hardforks/src/hardfork.rs
Lines 17 to 36 in 9c9d82c
We should review the hardforks introduce in scrolls fork of revm which are feature gated in the link provided. We should then implement a pattern similar to optimism by creating a crate to define these in reth for scroll. These will then be subsequently integrated with the revm hardfork type as seen below in the optimism example (this is outside of the scope of this issue and should be handled in #5):
reth/crates/optimism/evm/src/config.rs
Lines 5 to 30 in 9c9d82c
ChainSpec
The
ChainSpec
defines the core primitives of the chain such as the chain id, state genesis data, hardforks and other properties relating to the chain. A comprehensive view of theChainSpec
can be seen by observing the data structure:reth/crates/chainspec/src/spec.rs
Lines 171 to 216 in 9c9d82c
We should follow a similar pattern as
Optimism
and implement a crate for scrollsChainSpec
associated types. TheOptimism
example can be found here. We should implement a spec for both scroll mainnet and scroll sepolia.The text was updated successfully, but these errors were encountered: