#[non_exhaustive]pub struct SystemAccountMetaConfig {
pub self_program: Option<Pubkey>,
pub sol_compression_recipient: Option<Pubkey>,
pub sol_pool_pda: Option<Pubkey>,
}Expand description
Configuration for Light system program accounts when building instructions.
This struct specifies which system accounts to include when using
PackedAccounts::add_system_accounts()
or PackedAccounts::add_system_accounts_v2().
§Required Fields
self_program: Your program’s ID (the one calling the Light system program). Used to derive the CPI signer PDA.
§Optional Fields
-
cpi_context: CPI context account for batched operations (v2 only). Required when using CPI context for multi-step compressed account operations. -
sol_compression_recipient: Account to receive decompressed SOL. Required when decompressing SOL from compressed accounts. -
sol_pool_pda: SOL pool PDA for SOL compression/decompression. Required when compressing or decompressing SOL.
§Examples
Basic usage (no SOL operations):
let program_id = Pubkey::new_unique();
let config = SystemAccountMetaConfig::new(program_id);With CPI context (v2 batched operations):
let program_id = Pubkey::new_unique();
let cpi_context_account = Pubkey::new_unique();
let config = SystemAccountMetaConfig::new_with_cpi_context(program_id, cpi_context_account);With SOL compression:
let program_id = Pubkey::new_unique();
let sol_pool_pda = Pubkey::new_unique();
let recipient = Pubkey::new_unique();
let mut config = SystemAccountMetaConfig::new(program_id);
config.sol_pool_pda = Some(sol_pool_pda);
config.sol_compression_recipient = Some(recipient);Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.self_program: Option<Pubkey>Your program’s ID (optional). Used to derive the CPI signer PDA. When None, the CPI signer is not included (for registry CPI flow).
sol_compression_recipient: Option<Pubkey>Optional account to receive decompressed SOL.
sol_pool_pda: Option<Pubkey>Optional SOL pool PDA for SOL compression/decompression.
Implementations§
Trait Implementations§
Source§impl Clone for SystemAccountMetaConfig
impl Clone for SystemAccountMetaConfig
Source§fn clone(&self) -> SystemAccountMetaConfig
fn clone(&self) -> SystemAccountMetaConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more