Skip to main content

kvault_interface/state/
global_config.rs

1use bytemuck::{Pod, Zeroable};
2use solana_pubkey::Pubkey;
3use spl_discriminator::SplDiscriminate;
4
5/// System-wide vault configuration.
6#[derive(Debug, Clone, Copy, Pod, Zeroable, SplDiscriminate)]
7#[discriminator_hash_input("account:GlobalConfig")]
8#[repr(C)]
9pub struct GlobalConfig {
10    /// System-wide admin wallet.
11    pub global_admin: Pubkey,
12    /// Wallet nominated as the next global admin (two-step transfer).
13    pub pending_admin: Pubkey,
14
15    /// Default flat withdrawal penalty in lamports, applied to all vaults.
16    pub withdrawal_penalty_lamports: u64,
17    /// Default withdrawal penalty in basis points, applied to all vaults.
18    pub withdrawal_penalty_bps: u64,
19
20    /// Reserved for future use.
21    pub padding: [u8; 944],
22}
23
24const _: () = assert!(core::mem::size_of::<GlobalConfig>() == 1024);