maili_rpc/attributes.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
//! Optimism Payload attributes that reference the parent L2 block.
use maili_protocol::L2BlockInfo;
use op_alloy_rpc_types_engine::OpPayloadAttributes;
/// Optimism Payload Attributes with parent block reference.
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct OpAttributesWithParent {
/// The payload attributes.
pub attributes: OpPayloadAttributes,
/// The parent block reference.
pub parent: L2BlockInfo,
/// Whether the current batch is the last in its span.
pub is_last_in_span: bool,
}
impl OpAttributesWithParent {
/// Create a new [OpAttributesWithParent] instance.
pub const fn new(
attributes: OpPayloadAttributes,
parent: L2BlockInfo,
is_last_in_span: bool,
) -> Self {
Self { attributes, parent, is_last_in_span }
}
/// Returns the payload attributes.
pub const fn attributes(&self) -> &OpPayloadAttributes {
&self.attributes
}
/// Returns the parent block reference.
pub const fn parent(&self) -> &L2BlockInfo {
&self.parent
}
/// Returns whether the current batch is the last in its span.
pub const fn is_last_in_span(&self) -> bool {
self.is_last_in_span
}
}