Struct reth_node_core::rpc::types::optimism::RollupConfig
pub struct RollupConfig {Show 24 fields
pub genesis: ChainGenesis,
pub block_time: u64,
pub max_sequencer_drift: u64,
pub seq_window_size: u64,
pub channel_timeout: u64,
pub granite_channel_timeout: u64,
pub l1_chain_id: u64,
pub l2_chain_id: u64,
pub base_fee_params: BaseFeeParams,
pub canyon_base_fee_params: BaseFeeParams,
pub regolith_time: Option<u64>,
pub canyon_time: Option<u64>,
pub delta_time: Option<u64>,
pub ecotone_time: Option<u64>,
pub fjord_time: Option<u64>,
pub granite_time: Option<u64>,
pub holocene_time: Option<u64>,
pub batch_inbox_address: Address,
pub deposit_contract_address: Address,
pub l1_system_config_address: Address,
pub protocol_versions_address: Address,
pub superchain_config_address: Option<Address>,
pub blobs_enabled_l1_timestamp: Option<u64>,
pub da_challenge_address: Option<Address>,
}
Expand description
The Rollup configuration.
Fields§
§genesis: ChainGenesis
The genesis state of the rollup.
block_time: u64
The block time of the L2, in seconds.
max_sequencer_drift: u64
Sequencer batches may not be more than MaxSequencerDrift seconds after the L1 timestamp of the sequencing window end.
Note: When L1 has many 1 second consecutive blocks, and L2 grows at fixed 2 seconds, the L2 time may still grow beyond this difference.
Note: After the Fjord hardfork, this value becomes a constant of 1800
.
seq_window_size: u64
The sequencer window size.
channel_timeout: u64
Number of L1 blocks between when a channel can be opened and when it can be closed.
granite_channel_timeout: u64
The channel timeout after the Granite hardfork.
l1_chain_id: u64
The L1 chain ID
l2_chain_id: u64
The L2 chain ID
base_fee_params: BaseFeeParams
Base Fee Params
canyon_base_fee_params: BaseFeeParams
Base fee params post-canyon hardfork
regolith_time: Option<u64>
regolith_time
sets the activation time of the Regolith network-upgrade:
a pre-mainnet Bedrock change that addresses findings of the Sherlock contest related to
deposit attributes. “Regolith” is the loose deposited rock that sits on top of Bedrock.
Active if regolith_time != None && L2 block timestamp >= Some(regolith_time), inactive
otherwise.
canyon_time: Option<u64>
canyon_time
sets the activation time of the Canyon network upgrade.
Active if canyon_time
!= None && L2 block timestamp >= Some(canyon_time), inactive
otherwise.
delta_time: Option<u64>
delta_time
sets the activation time of the Delta network upgrade.
Active if delta_time
!= None && L2 block timestamp >= Some(delta_time), inactive
otherwise.
ecotone_time: Option<u64>
ecotone_time
sets the activation time of the Ecotone network upgrade.
Active if ecotone_time
!= None && L2 block timestamp >= Some(ecotone_time), inactive
otherwise.
fjord_time: Option<u64>
fjord_time
sets the activation time of the Fjord network upgrade.
Active if fjord_time
!= None && L2 block timestamp >= Some(fjord_time), inactive
otherwise.
granite_time: Option<u64>
granite_time
sets the activation time for the Granite network upgrade.
Active if granite_time
!= None && L2 block timestamp >= Some(granite_time), inactive
otherwise.
holocene_time: Option<u64>
holocene_time
sets the activation time for the Holocene network upgrade.
Active if holocene_time
!= None && L2 block timestamp >= Some(holocene_time), inactive
otherwise.
batch_inbox_address: Address
batch_inbox_address
is the L1 address that batches are sent to.
deposit_contract_address: Address
deposit_contract_address
is the L1 address that deposits are sent to.
l1_system_config_address: Address
l1_system_config_address
is the L1 address that the system config is stored at.
protocol_versions_address: Address
protocol_versions_address
is the L1 address that the protocol versions are stored at.
superchain_config_address: Option<Address>
The superchain config address.
blobs_enabled_l1_timestamp: Option<u64>
blobs_enabled_l1_timestamp
is the timestamp to start reading blobs as a batch data
source. Optional.
da_challenge_address: Option<Address>
da_challenge_address
is the L1 address that the data availability challenge contract is
stored at.
Implementations§
§impl RollupConfig
impl RollupConfig
pub fn is_regolith_active(&self, timestamp: u64) -> bool
pub fn is_regolith_active(&self, timestamp: u64) -> bool
Returns true if Regolith is active at the given timestamp.
pub fn is_canyon_active(&self, timestamp: u64) -> bool
pub fn is_canyon_active(&self, timestamp: u64) -> bool
Returns true if Canyon is active at the given timestamp.
pub fn is_delta_active(&self, timestamp: u64) -> bool
pub fn is_delta_active(&self, timestamp: u64) -> bool
Returns true if Delta is active at the given timestamp.
pub fn is_ecotone_active(&self, timestamp: u64) -> bool
pub fn is_ecotone_active(&self, timestamp: u64) -> bool
Returns true if Ecotone is active at the given timestamp.
pub fn is_fjord_active(&self, timestamp: u64) -> bool
pub fn is_fjord_active(&self, timestamp: u64) -> bool
Returns true if Fjord is active at the given timestamp.
pub fn is_granite_active(&self, timestamp: u64) -> bool
pub fn is_granite_active(&self, timestamp: u64) -> bool
Returns true if Granite is active at the given timestamp.
pub fn is_holocene_active(&self, timestamp: u64) -> bool
pub fn is_holocene_active(&self, timestamp: u64) -> bool
Returns true if Holocene is active at the given timestamp.
pub fn is_alt_da_enabled(&self) -> bool
pub fn is_alt_da_enabled(&self) -> bool
Returns true if a DA Challenge proxy Address is provided in the rollup config and the address is not zero.
pub fn max_sequencer_drift(&self, timestamp: u64) -> u64
pub fn max_sequencer_drift(&self, timestamp: u64) -> u64
Returns the max sequencer drift for the given timestamp.
pub fn max_rlp_bytes_per_channel(&self, timestamp: u64) -> u64
pub fn max_rlp_bytes_per_channel(&self, timestamp: u64) -> u64
Returns the max rlp bytes per channel for the given timestamp.
pub fn channel_timeout(&self, timestamp: u64) -> u64
pub fn channel_timeout(&self, timestamp: u64) -> u64
Returns the channel timeout for the given timestamp.
pub fn check_ecotone_l1_system_config_scalar(
scalar: [u8; 32],
) -> Result<(), &'static str>
pub fn check_ecotone_l1_system_config_scalar( scalar: [u8; 32], ) -> Result<(), &'static str>
Checks the scalar value in Ecotone.
pub const fn from_l2_chain_id(l2_chain_id: u64) -> Option<RollupConfig>
pub const fn from_l2_chain_id(l2_chain_id: u64) -> Option<RollupConfig>
Returns the RollupConfig for the given L2 chain ID.
Trait Implementations§
§impl Clone for RollupConfig
impl Clone for RollupConfig
§fn clone(&self) -> RollupConfig
fn clone(&self) -> RollupConfig
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for RollupConfig
impl Debug for RollupConfig
§impl Default for RollupConfig
impl Default for RollupConfig
§fn default() -> RollupConfig
fn default() -> RollupConfig
§impl<'de> Deserialize<'de> for RollupConfig
impl<'de> Deserialize<'de> for RollupConfig
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<RollupConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<RollupConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl PartialEq for RollupConfig
impl PartialEq for RollupConfig
§impl Serialize for RollupConfig
impl Serialize for RollupConfig
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
§impl TryFrom<u64> for RollupConfig
impl TryFrom<u64> for RollupConfig
impl Eq for RollupConfig
impl StructuralPartialEq for RollupConfig
Auto Trait Implementations§
impl Freeze for RollupConfig
impl RefUnwindSafe for RollupConfig
impl Send for RollupConfig
impl Sync for RollupConfig
impl Unpin for RollupConfig
impl UnwindSafe for RollupConfig
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSendSync for T
impl<T> NippyJarHeader for T
impl<T> RpcObject for Twhere
T: RpcParam + RpcReturn,
impl<T> RpcParam for T
impl<T> RpcReturn for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 592 bytes