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_pubkey::Pubkey,
11 solana_transaction_context::TransactionReturnData,
12 solana_transaction_error::TransactionResult,
13 std::{collections::HashMap, sync::Arc},
14};
15
16#[derive(Debug, Default, Clone, PartialEq)]
17pub struct TransactionLoadedAccountsStats {
18 pub loaded_accounts_data_size: u32,
19 pub loaded_accounts_count: usize,
20}
21
22#[derive(Debug, Clone)]
23pub struct ExecutedTransaction {
24 pub loaded_transaction: LoadedTransaction,
25 pub execution_details: TransactionExecutionDetails,
26 pub programs_modified_by_tx: HashMap<Pubkey, Arc<ProgramCacheEntry>>,
27}
28
29impl ExecutedTransaction {
30 pub fn was_successful(&self) -> bool {
31 self.execution_details.was_successful()
32 }
33}
34
35#[derive(Clone, Debug, Eq, PartialEq)]
36pub struct TransactionExecutionDetails {
37 pub status: TransactionResult<()>,
38 pub log_messages: Option<Vec<String>>,
39 pub inner_instructions: Option<InnerInstructionsList>,
40 pub return_data: Option<TransactionReturnData>,
41 pub executed_units: u64,
42 pub accounts_data_len_delta: i64,
45}
46
47impl TransactionExecutionDetails {
48 pub fn was_successful(&self) -> bool {
49 self.status.is_ok()
50 }
51}