pub struct BlobCount(/* private fields */);Expand description
Represents the number of EIP-4844 blobs in a transaction
EIP-4844 introduced blob-carrying transactions that can include “blob versioned hashes” referencing data blobs stored separately. Each blob is 128KB and costs a fixed amount of blob gas.
§Examples
use semioscan::BlobCount;
let count = BlobCount::new(2);
assert_eq!(count.as_usize(), 2);Implementations§
Source§impl BlobCount
impl BlobCount
Sourcepub const fn new(count: usize) -> Self
pub const fn new(count: usize) -> Self
Create a new blob count (unchecked)
For validation against EIP-4844 limits, use BlobCount::new_checked.
Sourcepub fn new_checked(count: usize) -> Option<Self>
pub fn new_checked(count: usize) -> Option<Self>
Create a new blob count with validation
Returns None if count exceeds MAX_BLOBS_PER_BLOCK_DENCUN (6 blobs).
Per EIP-4844 Dencun upgrade, transactions can include 1-6 blobs.
§Examples
use semioscan::BlobCount;
assert!(BlobCount::new_checked(3).is_some()); // Valid
assert!(BlobCount::new_checked(6).is_some()); // Valid (max)
assert!(BlobCount::new_checked(7).is_none()); // Invalid (exceeds max)Sourcepub fn to_blob_gas_amount(&self) -> BlobGasAmount
pub fn to_blob_gas_amount(&self) -> BlobGasAmount
Calculate the blob gas amount for this blob count
Uses the EIP-4844 constant DATA_GAS_PER_BLOB (131,072 gas per blob).
§Examples
use alloy_primitives::U256;
use semioscan::BlobCount;
let count = BlobCount::new(2);
let gas = count.to_blob_gas_amount();
assert_eq!(gas.as_u256(), U256::from(262_144)); // 2 * 131_072Trait Implementations§
impl Copy for BlobCount
Source§impl<'de> Deserialize<'de> for BlobCount
impl<'de> Deserialize<'de> for BlobCount
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for BlobCount
Source§impl Ord for BlobCount
impl Ord for BlobCount
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialOrd for BlobCount
impl PartialOrd for BlobCount
impl StructuralPartialEq for BlobCount
Auto Trait Implementations§
impl Freeze for BlobCount
impl RefUnwindSafe for BlobCount
impl Send for BlobCount
impl Sync for BlobCount
impl Unpin for BlobCount
impl UnsafeUnpin for BlobCount
impl UnwindSafe for BlobCount
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<'de, T> BorrowedRpcObject<'de> for T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
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
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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