mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 19:09:54 +00:00
feat(rpc-testing-utils) : enhanced tansaction replay (#5275)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
committed by
GitHub
parent
2412cc4823
commit
e11b371770
@ -1,7 +1,8 @@
|
||||
use futures::StreamExt;
|
||||
use jsonrpsee::http_client::HttpClientBuilder;
|
||||
use reth_rpc_api_testing_util::{trace::TraceApiExt, utils::parse_env_url};
|
||||
use std::time::Instant;
|
||||
|
||||
use reth_rpc_types::trace::parity::TraceType;
|
||||
use std::{collections::HashSet, time::Instant};
|
||||
/// This is intended to be run locally against a running node.
|
||||
///
|
||||
/// This is a noop of env var `RETH_RPC_TEST_NODE_URL` is not set.
|
||||
@ -21,3 +22,26 @@ async fn trace_many_blocks() {
|
||||
}
|
||||
println!("Traced all blocks in {:?}", now.elapsed());
|
||||
}
|
||||
|
||||
/// Tests the replaying of transactions on a local Ethereum node.
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
#[ignore]
|
||||
async fn replay_transactions() {
|
||||
let url = parse_env_url("RETH_RPC_TEST_NODE_URL").unwrap();
|
||||
let client = HttpClientBuilder::default().build(url).unwrap();
|
||||
|
||||
let tx_hashes = vec![
|
||||
"0x4e08fe36db723a338e852f89f613e606b0c9a17e649b18b01251f86236a2cef3".parse().unwrap(),
|
||||
"0xea2817f1aeeb587b82f4ab87a6dbd3560fc35ed28de1be280cb40b2a24ab48bb".parse().unwrap(),
|
||||
];
|
||||
|
||||
let trace_types = HashSet::from([TraceType::StateDiff, TraceType::VmTrace]);
|
||||
|
||||
let mut stream = client.replay_transactions(tx_hashes, trace_types);
|
||||
let now = Instant::now();
|
||||
while let Some(replay_txs) = stream.next().await {
|
||||
println!("Transaction: {:?}", replay_txs);
|
||||
println!("Replayed transactions in {:?}", now.elapsed());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user