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 tempo_consensus;
17pub mod util;
18
19pub use api::EthApi;
20
21pub(crate) fn preserve_simulation_request_fields(
22    request: SimulatePayload,
23) -> SimulatePayload<WithOtherFields<TransactionRequest>> {
24    SimulatePayload {
25        block_state_calls: request
26            .block_state_calls
27            .into_iter()
28            .map(|block| SimBlock {
29                block_overrides: block.block_overrides,
30                state_overrides: block.state_overrides,
31                calls: block.calls.into_iter().map(WithOtherFields::new).collect(),
32            })
33            .collect(),
34        trace_transfers: request.trace_transfers,
35        validation: request.validation,
36        return_full_transactions: request.return_full_transactions,
37    }
38}