solana_svm/
transaction_processing_callback.rs1use solana_sdk::{account::AccountSharedData, pubkey::Pubkey};
2
3pub trait TransactionProcessingCallback {
5 fn account_matches_owners(&self, account: &Pubkey, owners: &[Pubkey]) -> Option<usize>;
6
7 fn get_account_shared_data(&self, pubkey: &Pubkey) -> Option<AccountSharedData>;
8
9 fn add_builtin_account(&self, _name: &str, _program_id: &Pubkey) {}
10
11 fn inspect_account(&self, _address: &Pubkey, _account_state: AccountState, _is_writable: bool) {
12 }
13}
14
15#[derive(Debug)]
17pub enum AccountState<'a> {
18 Dead,
20 Alive(&'a AccountSharedData),
22}