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}