mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
chore: add example for sending tx hashes (#14094)
This commit is contained in:
@ -171,3 +171,6 @@ pub use transactions::{FilterAnnouncement, MessageFilter, ValidateTx68};
|
||||
|
||||
/// re-export p2p interfaces
|
||||
pub use reth_network_p2p as p2p;
|
||||
|
||||
/// re-export types crate
|
||||
pub use reth_eth_wire_types as types;
|
||||
|
||||
@ -14,8 +14,9 @@ use futures::StreamExt;
|
||||
use reth_chainspec::DEV;
|
||||
use reth_network::{
|
||||
config::rng_secret_key, eth_requests::IncomingEthRequest, p2p::HeadersClient,
|
||||
transactions::NetworkTransactionEvent, BlockDownloaderProvider, FetchClient, NetworkConfig,
|
||||
NetworkEventListenerProvider, NetworkHandle, NetworkInfo, NetworkManager, Peers,
|
||||
transactions::NetworkTransactionEvent, types::NewPooledTransactionHashes68,
|
||||
BlockDownloaderProvider, FetchClient, NetworkConfig, NetworkEventListenerProvider,
|
||||
NetworkHandle, NetworkInfo, NetworkManager, Peers,
|
||||
};
|
||||
|
||||
#[tokio::main]
|
||||
@ -67,7 +68,7 @@ async fn main() -> eyre::Result<()> {
|
||||
let Some(eth_request) = eth_request else {break};
|
||||
match eth_request {
|
||||
IncomingEthRequest::GetBlockHeaders { peer_id, request, response } => {
|
||||
println!("Received block headers request: {:?}, {:?}", peer_id, request);
|
||||
println!("Received block headers request: {peer_id:?}, {request:?}");
|
||||
response.send(Ok(vec![DEV.genesis_header().clone()].into())).unwrap();
|
||||
}
|
||||
IncomingEthRequest::GetBlockBodies { .. } => {}
|
||||
@ -79,7 +80,9 @@ async fn main() -> eyre::Result<()> {
|
||||
let Some(transaction_message) = transaction_message else {break};
|
||||
match transaction_message {
|
||||
NetworkTransactionEvent::IncomingTransactions { .. } => {}
|
||||
NetworkTransactionEvent::IncomingPooledTransactionHashes{ .. } => {}
|
||||
NetworkTransactionEvent::IncomingPooledTransactionHashes { peer_id, msg } => {
|
||||
println!("Received incoming tx hashes broadcast: {peer_id:?}, {msg:?}");
|
||||
}
|
||||
NetworkTransactionEvent::GetPooledTransactions { .. } => {}
|
||||
NetworkTransactionEvent::GetTransactionsHandle(_) => {}
|
||||
}
|
||||
@ -111,5 +114,13 @@ async fn run_peer(handle: NetworkHandle) -> eyre::Result<()> {
|
||||
let header = client.get_header(0.into()).await.unwrap();
|
||||
println!("Got header: {:?}", header);
|
||||
|
||||
// send a (bogus) hashes message
|
||||
let hashes = NewPooledTransactionHashes68 {
|
||||
types: vec![1],
|
||||
sizes: vec![2],
|
||||
hashes: vec![Default::default()],
|
||||
};
|
||||
peer.send_transactions_hashes(*handle.peer_id(), hashes.into());
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user