Skip to main content

anvil/eth/
mod.rs

1use alloy_rpc_types::{
2    TransactionRequest,
3    simulate::{SimBlock, SimulatePayload},
4};
5use alloy_serde::WithOtherFields;
6
7pub mod api;
8pub mod backend;
9pub mod error;
10pub mod fees;
11pub(crate) mod macros;
12pub mod miner;
13pub mod otterscan;
14pub mod pool;
15pub mod sign;
16pub mod util;
17
18pub use api::EthApi;
19
20pub(crate) fn preserve_simulation_request_fields(
21    request: SimulatePayload,
22) -> SimulatePayload<WithOtherFields<TransactionRequest>> {
23    SimulatePayload {
24        block_state_calls: request
25            .block_state_calls
26            .into_iter()
27            .map(|block| SimBlock {
28                block_overrides: block.block_overrides,
29                state_overrides: block.state_overrides,
30                calls: block.calls.into_iter().map(WithOtherFields::new).collect(),
31            })
32            .collect(),
33        trace_transfers: request.trace_transfers,
34        validation: request.validation,
35        return_full_transactions: request.return_full_transactions,
36    }
37}