2022-07-24 21:46:38 +00:00
|
|
|
use ethers::prelude::*;
|
|
|
|
use eyre::Result;
|
2022-07-26 15:25:43 +00:00
|
|
|
use std::str::FromStr;
|
2022-07-24 21:46:38 +00:00
|
|
|
|
2022-07-26 15:25:43 +00:00
|
|
|
/// use `debug_traceTransaction` to fetch traces
|
|
|
|
/// requires, a valid endpoint in `RPC_URL` env var that supports `debug_traceTransaction`
|
2022-07-24 21:46:38 +00:00
|
|
|
#[tokio::main]
|
|
|
|
async fn main() -> Result<()> {
|
2022-07-26 15:25:43 +00:00
|
|
|
if let Ok(url) = std::env::var("RPC_URL") {
|
|
|
|
let client = Provider::<Http>::try_from(url)?;
|
|
|
|
let tx_hash = "0x97a02abf405d36939e5b232a5d4ef5206980c5a6661845436058f30600c52df7";
|
|
|
|
let h: H256 = H256::from_str(tx_hash)?;
|
|
|
|
let options: GethDebugTracingOptions = GethDebugTracingOptions::default();
|
|
|
|
let traces = client.debug_trace_transaction(h, options).await?;
|
2022-11-07 23:43:11 +00:00
|
|
|
println!("{traces:?}");
|
2022-07-26 15:25:43 +00:00
|
|
|
}
|
2022-07-24 21:46:38 +00:00
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|