Struct L1OriginSelector

Source
pub struct L1OriginSelector<P: L1OriginSelectorProvider> { /* private fields */ }
Expand description

The L1OriginSelector is responsible for selecting the L1 origin block based on the current L2 unsafe head’s sequence epoch.

Implementations§

Source§

impl<P: L1OriginSelectorProvider> L1OriginSelector<P>

Source

pub const fn new(cfg: Arc<RollupConfig>, l1: P) -> Self

Creates a new L1OriginSelector.

Source

pub const fn current(&self) -> Option<&BlockInfo>

Returns the current L1 origin.

Source

pub const fn next(&self) -> Option<&BlockInfo>

Returns the next L1 origin.

Source

pub async fn next_l1_origin( &mut self, unsafe_head: L2BlockInfo, is_recovery_mode: bool, ) -> Result<BlockInfo, L1OriginSelectorError>

Determines what the next L1 origin block should be, based off of the L2BlockInfo unsafe head.

The L1 origin is selected based off of the sequencing epoch, determined by the next L2 block’s timestamp in relation to the current L1 origin’s timestamp. If the next L2 block’s timestamp is greater than the L2 unsafe head’s L1 origin timestamp, the L1 origin is the block following the current L1 origin.

Trait Implementations§

Source§

impl<P: Debug + L1OriginSelectorProvider> Debug for L1OriginSelector<P>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<P> Freeze for L1OriginSelector<P>
where P: Freeze,

§

impl<P> RefUnwindSafe for L1OriginSelector<P>
where P: RefUnwindSafe,

§

impl<P> Send for L1OriginSelector<P>
where P: Send,

§

impl<P> Sync for L1OriginSelector<P>
where P: Sync,

§

impl<P> Unpin for L1OriginSelector<P>
where P: Unpin,

§

impl<P> UnwindSafe for L1OriginSelector<P>
where P: UnwindSafe,

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

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

Source§

fn vzip(self) -> V

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> ErasedDestructor for T
where T: 'static,

Source§

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