use alloy::primitives::{B256, BlockNumber};
#[derive(Debug, Clone, Copy)]
pub enum HeaderSpecifier {
Number(BlockNumber),
Hash(B256),
}
impl From<BlockNumber> for HeaderSpecifier {
fn from(number: BlockNumber) -> Self {
Self::Number(number)
}
}
impl From<B256> for HeaderSpecifier {
fn from(hash: B256) -> Self {
Self::Hash(hash)
}
}
#[derive(Debug, Clone, Copy)]
pub enum TransactionSpecifier {
Hash(B256),
BlockAndIndex {
block: BlockNumber,
index: u64,
},
BlockHashAndIndex {
block_hash: B256,
index: u64,
},
}
impl From<B256> for TransactionSpecifier {
fn from(hash: B256) -> Self {
Self::Hash(hash)
}
}
#[derive(Debug, Clone, Copy)]
pub enum ReceiptSpecifier {
TxHash(B256),
BlockAndIndex {
block: BlockNumber,
index: u64,
},
}
impl From<B256> for ReceiptSpecifier {
fn from(tx_hash: B256) -> Self {
Self::TxHash(tx_hash)
}
}
#[derive(Debug, Clone, Copy)]
pub enum SignetEventsSpecifier {
Block(BlockNumber),
BlockRange {
start: BlockNumber,
end: BlockNumber,
},
}
impl From<BlockNumber> for SignetEventsSpecifier {
fn from(block: BlockNumber) -> Self {
Self::Block(block)
}
}
#[derive(Debug, Clone, Copy)]
pub enum ZenithHeaderSpecifier {
Number(BlockNumber),
Range {
start: BlockNumber,
end: BlockNumber,
},
}
impl From<BlockNumber> for ZenithHeaderSpecifier {
fn from(number: BlockNumber) -> Self {
Self::Number(number)
}
}