mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 19:09:54 +00:00
feat: bound NetworkPrimitives types by proper traits (#13196)
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
//! Abstraction over primitive types in network messages.
|
||||
|
||||
use alloy_rlp::{Decodable, Encodable};
|
||||
use reth_primitives_traits::{Block, BlockHeader, SignedTransaction};
|
||||
use reth_primitives_traits::{Block, BlockBody, BlockHeader, SignedTransaction};
|
||||
use std::fmt::Debug;
|
||||
|
||||
/// Abstraction over primitive types which might appear in network messages. See
|
||||
@ -10,56 +10,21 @@ pub trait NetworkPrimitives:
|
||||
Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static
|
||||
{
|
||||
/// The block header type.
|
||||
type BlockHeader: BlockHeader
|
||||
+ Encodable
|
||||
+ Decodable
|
||||
+ Send
|
||||
+ Sync
|
||||
+ Unpin
|
||||
+ Clone
|
||||
+ Debug
|
||||
+ PartialEq
|
||||
+ Eq
|
||||
+ 'static;
|
||||
type BlockHeader: BlockHeader + 'static;
|
||||
|
||||
/// The block body type.
|
||||
type BlockBody: Encodable
|
||||
+ Decodable
|
||||
+ Send
|
||||
+ Sync
|
||||
+ Unpin
|
||||
+ Clone
|
||||
+ Debug
|
||||
+ PartialEq
|
||||
+ Eq
|
||||
+ 'static;
|
||||
type BlockBody: BlockBody + 'static;
|
||||
|
||||
/// Full block type.
|
||||
type Block: Block<Header = Self::BlockHeader, Body = Self::BlockBody>
|
||||
+ Encodable
|
||||
+ Decodable
|
||||
+ Send
|
||||
+ Sync
|
||||
+ Unpin
|
||||
+ Clone
|
||||
+ Debug
|
||||
+ PartialEq
|
||||
+ Eq
|
||||
+ 'static;
|
||||
|
||||
/// The transaction type which peers announce in `Transactions` messages. It is different from
|
||||
/// `PooledTransactions` to account for Ethereum case where EIP-4844 transactions are not being
|
||||
/// announced and can only be explicitly requested from peers.
|
||||
type BroadcastedTransaction: Encodable
|
||||
+ Decodable
|
||||
+ Send
|
||||
+ Sync
|
||||
+ Unpin
|
||||
+ Clone
|
||||
+ Debug
|
||||
+ PartialEq
|
||||
+ Eq
|
||||
+ 'static;
|
||||
type BroadcastedTransaction: SignedTransaction + 'static;
|
||||
|
||||
/// The transaction type which peers return in `PooledTransactions` messages.
|
||||
type PooledTransaction: SignedTransaction + TryFrom<Self::BroadcastedTransaction> + 'static;
|
||||
|
||||
Reference in New Issue
Block a user