kabu_types_events/
node.rs1use crate::Message;
2use alloy_consensus::BlockHeader;
3use alloy_primitives::TxHash;
4use kabu_types_blockchain::{GethStateUpdateVec, MempoolTx};
5use reth_ethereum_primitives::EthPrimitives;
6use reth_node_types::NodePrimitives;
7
8#[derive(Clone, Debug)]
9pub struct NodeMempoolDataUpdate<N: NodePrimitives> {
10 pub tx_hash: TxHash,
11 pub mempool_tx: MempoolTx<N>,
12}
13
14#[derive(Clone, Debug)]
15pub struct BlockUpdate<N: NodePrimitives = EthPrimitives> {
16 pub block: N::Block,
17}
18
19#[derive(Clone, Debug)]
20pub struct BlockStateUpdate<N: NodePrimitives = EthPrimitives> {
21 pub block_header: N::BlockHeader,
22 pub state_update: GethStateUpdateVec,
23}
24
25#[derive(Clone, Debug)]
26pub struct BlockHeaderEventData<N: NodePrimitives = EthPrimitives> {
27 pub header: N::BlockHeader,
28 pub next_block_number: u64,
29 pub next_block_timestamp: u64,
30}
31
32pub type MessageMempoolDataUpdate<N> = Message<NodeMempoolDataUpdate<N>>;
33
34pub type MessageBlockHeader<N = EthPrimitives> = Message<BlockHeaderEventData<N>>;
35pub type MessageBlock<N = EthPrimitives> = Message<BlockUpdate<N>>;
36pub type MessageBlockStateUpdate<N = EthPrimitives> = Message<BlockStateUpdate<N>>;
37
38impl<N: NodePrimitives> BlockHeaderEventData<N>
39where
40 N::BlockHeader: BlockHeader,
41{
42 pub fn new(header: N::BlockHeader) -> Self {
43 let next_block_number = header.number() + 1;
44 let next_block_timestamp = header.timestamp() + 12;
45 Self { header, next_block_number, next_block_timestamp }
46 }
47}