diff --git a/evm_loader/lib/src/commands/emulate.rs b/evm_loader/lib/src/commands/emulate.rs
index e37ea8b46..796ed225f 100644
--- a/evm_loader/lib/src/commands/emulate.rs
+++ b/evm_loader/lib/src/commands/emulate.rs
@@ -438,6 +438,7 @@ async fn emulate_trx_multiple_steps<'rpc, T: Tracer>(
}
if execution_step.is_reset {
+ tracer_result = evm.take_tracer();
drop(evm);
drop(backend);
drop(storage);
diff --git a/evm_loader/lib/src/rpc/mod.rs b/evm_loader/lib/src/rpc/mod.rs
index 5bac8d306..bd147b3d6 100644
--- a/evm_loader/lib/src/rpc/mod.rs
+++ b/evm_loader/lib/src/rpc/mod.rs
@@ -4,19 +4,24 @@ mod validator_client;
use crate::commands::get_config::GetConfigResponse;
pub use db_call_client::CallDbClient;
+use tracing::trace;
pub use validator_client::CloneRpcClient;
use crate::commands::get_config::{BuildConfigSimulator, ConfigSimulator};
use crate::{NeonError, NeonResult};
use async_trait::async_trait;
+
+use bincode::deserialize;
use enum_dispatch::enum_dispatch;
use evm_loader::solana_program::bpf_loader_upgradeable::UpgradeableLoaderState;
pub use solana_account_decoder::UiDataSliceConfig as SliceConfig;
use solana_cli::cli::CliError;
use solana_client::client_error::{ClientErrorKind, Result as ClientResult};
use solana_sdk::{
- account::Account, message::Message, native_token::lamports_to_sol, pubkey::Pubkey,
+ account::Account, bpf_loader, bpf_loader_upgradeable, message::Message,
+ native_token::lamports_to_sol, pubkey::Pubkey,
};
+use std::cmp::max;
#[async_trait(?Send)]
#[enum_dispatch]
@@ -28,14 +33,43 @@ pub trait Rpc {
) -> ClientResult