From 37b1ec7a4540fa6c948544d8471f92e421cfb7c6 Mon Sep 17 00:00:00 2001 From: refcell Date: Sun, 28 Apr 2024 09:52:16 -0700 Subject: [PATCH] feat(derive): return the concrete online attributes queue type from the online stack constructor --- crates/derive/src/online/mod.rs | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/crates/derive/src/online/mod.rs b/crates/derive/src/online/mod.rs index 5c4fdc90c4..03cc0dead5 100644 --- a/crates/derive/src/online/mod.rs +++ b/crates/derive/src/online/mod.rs @@ -3,15 +3,35 @@ use crate::{ stages::{ AttributesQueue, BatchQueue, ChannelBank, ChannelReader, FrameQueue, L1Retrieval, - L1Traversal, NextAttributes, StatefulAttributesBuilder, + L1Traversal, StatefulAttributesBuilder, }, - traits::{DataAvailabilityProvider, ResettableStage}, + traits::DataAvailabilityProvider, types::RollupConfig, }; use alloc::sync::Arc; use alloy_provider::ReqwestProvider; use core::fmt::Debug; +/// An `online` payload attributes builder for the `AttributesQueue` stage of the derivation +/// pipeline. +pub type OnlineAttributesBuilder = StatefulAttributesBuilder< + AlloyChainProvider, + AlloyL2ChainProvider, +>; + +/// An `online` attributes queue for the derivation pipeline. +pub type OnlineAttributesQueue = AttributesQueue< + BatchQueue< + ChannelReader< + ChannelBank< + FrameQueue>>>, + >, + >, + AlloyL2ChainProvider, + >, + OnlineAttributesBuilder, +>; + /// Creates a new online stack. #[cfg(feature = "online")] pub fn new_online_stack( @@ -19,11 +39,8 @@ pub fn new_online_stack( chain_provider: AlloyChainProvider, dap_source: DAP, fetcher: AlloyL2ChainProvider, - builder: StatefulAttributesBuilder< - AlloyChainProvider, - AlloyL2ChainProvider, - >, -) -> impl NextAttributes + ResettableStage + Debug + Send + builder: OnlineAttributesBuilder, +) -> OnlineAttributesQueue where DAP: DataAvailabilityProvider + Debug + Send, {