solana_svm/
transaction_execution_result.rs1#[deprecated(
3 since = "1.18.0",
4 note = "Please use `solana_sdk::inner_instruction` types instead"
5)]
6pub use solana_sdk::inner_instruction::{InnerInstruction, InnerInstructionsList};
7use {
8 crate::account_loader::LoadedTransaction,
9 solana_program_runtime::loaded_programs::ProgramCacheEntry,
10 solana_sdk::{pubkey::Pubkey, transaction, transaction_context::TransactionReturnData},
11 std::{collections::HashMap, sync::Arc},
12};
13
14#[derive(Debug, Default, Clone, PartialEq)]
15pub struct TransactionLoadedAccountsStats {
16 pub loaded_accounts_data_size: u32,
17 pub loaded_accounts_count: usize,
18}
19
20#[derive(Debug, Clone)]
21pub struct ExecutedTransaction {
22 pub loaded_transaction: LoadedTransaction,
23 pub execution_details: TransactionExecutionDetails,
24 pub programs_modified_by_tx: HashMap<Pubkey, Arc<ProgramCacheEntry>>,
25}
26
27impl ExecutedTransaction {
28 pub fn was_successful(&self) -> bool {
29 self.execution_details.was_successful()
30 }
31}
32
33#[derive(Clone, Debug, Eq, PartialEq)]
34pub struct TransactionExecutionDetails {
35 pub status: transaction::Result<()>,
36 pub log_messages: Option<Vec<String>>,
37 pub inner_instructions: Option<InnerInstructionsList>,
38 pub return_data: Option<TransactionReturnData>,
39 pub executed_units: u64,
40 pub accounts_data_len_delta: i64,
43}
44
45impl TransactionExecutionDetails {
46 pub fn was_successful(&self) -> bool {
47 self.status.is_ok()
48 }
49}