kona_derive::stages

Struct AttributesQueue

Source
pub struct AttributesQueue<P, AB>{ /* private fields */ }
Expand description

AttributesQueue accepts batches from the BatchQueue stage and transforms them into OpPayloadAttributes.

The outputted payload attributes cannot be buffered because each batch->attributes transformation pulls in data about the current L2 safe head.

AttributesQueue also buffers batches that have been output because multiple batches can be created at once.

This stage can be reset by clearing its batch buffer. This stage does not need to retain any references to L1 blocks.

Implementations§

Source§

impl<P, AB> AttributesQueue<P, AB>

Source

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

Create a new AttributesQueue stage.

Source

pub async fn load_batch( &mut self, parent: L2BlockInfo, ) -> PipelineResult<SingleBatch>

Loads a SingleBatch from the AttributesProvider if needed.

Source

pub async fn next_attributes( &mut self, parent: L2BlockInfo, ) -> PipelineResult<OpAttributesWithParent>

Returns the next OpAttributesWithParent from the current batch.

Source

pub async fn create_next_attributes( &mut self, batch: SingleBatch, parent: L2BlockInfo, ) -> PipelineResult<OpPayloadAttributes>

Creates the next attributes, transforming a SingleBatch into OpPayloadAttributes. This sets no_tx_pool and appends the batched txs to the attributes tx list.

Trait Implementations§

Source§

impl<P, AB> Debug for AttributesQueue<P, AB>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<P, AB> NextAttributes for AttributesQueue<P, AB>

Source§

fn next_attributes<'life0, 'async_trait>( &'life0 mut self, parent: L2BlockInfo, ) -> Pin<Box<dyn Future<Output = PipelineResult<OpAttributesWithParent>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Returns the next OpAttributesWithParent from the current batch.
Source§

impl<P, AB> OriginAdvancer for AttributesQueue<P, AB>

Source§

fn advance_origin<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = PipelineResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Advances the internal state of the lowest stage to the next l1 origin. This method is the equivalent of the reference implementation advance_l1_block.
Source§

impl<P, AB> OriginProvider for AttributesQueue<P, AB>

Source§

fn origin(&self) -> Option<BlockInfo>

Returns the optional L1 BlockInfo origin.
Source§

impl<P, AB> SignalReceiver for AttributesQueue<P, AB>

Source§

fn signal<'life0, 'async_trait>( &'life0 mut self, signal: Signal, ) -> Pin<Box<dyn Future<Output = PipelineResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Receives a signal from the driver.

Auto Trait Implementations§

§

impl<P, AB> Freeze for AttributesQueue<P, AB>
where P: Freeze, AB: Freeze,

§

impl<P, AB> RefUnwindSafe for AttributesQueue<P, AB>

§

impl<P, AB> Send for AttributesQueue<P, AB>
where P: Send, AB: Send,

§

impl<P, AB> Sync for AttributesQueue<P, AB>
where P: Sync, AB: Sync,

§

impl<P, AB> Unpin for AttributesQueue<P, AB>
where P: Unpin, AB: Unpin,

§

impl<P, AB> UnwindSafe for AttributesQueue<P, AB>
where P: UnwindSafe, AB: 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> 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<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