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

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

Returns true if Canyon is active at the given timestamp.

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

Returns true if Ecotone is active at the given timestamp.

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

Returns true if Granite is active at the given timestamp.

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

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

Returns the max sequencer drift for the given timestamp.

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

Returns the channel timeout for the given timestamp.

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>

Returns the RollupConfig for the given L2 chain ID.

Trait Implementations§

§

impl Clone for RollupConfig

§

fn clone(&self) -> RollupConfig

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for RollupConfig

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for RollupConfig

§

fn default() -> RollupConfig

Returns the “default value” for a type. Read more
§

impl<'de> Deserialize<'de> for RollupConfig

§

fn deserialize<__D>( __deserializer: __D, ) -> Result<RollupConfig, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl PartialEq for RollupConfig

§

fn eq(&self, other: &RollupConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Serialize for RollupConfig

§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl TryFrom<u64> for RollupConfig

§

type Error = &'static str

The type returned in the event of a conversion error.
§

fn try_from(chain_id: u64) -> Result<RollupConfig, &'static str>

Performs the conversion.
§

impl Eq for RollupConfig

§

impl StructuralPartialEq for RollupConfig

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit #126799)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows 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) -> R
where R: 'a,

Mutably borrows 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
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeDebug for T
where T: Debug,

§

impl<T> MaybeSend for T
where T: Send,

§

impl<T> MaybeSendSync for T

§

impl<T> NippyJarHeader for T
where T: Send + Sync + Serialize + for<'b> Deserialize<'b> + Debug + 'static,

§

impl<T> RpcObject for T
where T: RpcParam + RpcReturn,

§

impl<T> RpcParam for T
where T: Serialize + Clone + Debug + Send + Sync + Unpin,

§

impl<T> RpcReturn for T
where T: DeserializeOwned + Debug + Send + Sync + Unpin + 'static,

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