Vault
The Vault
is the main account for a token pair and granularity. The Vault
account is a PDA composed of the following seeds:
seeds = [
b"drip-v1".as_ref(),
token_a_mint.key().as_ref(),
token_b_mint.key().as_ref(),
vault_proto_config.key().as_ref(),
],
The Vault
combined with the Vault Period
is responsible for making sure that user funds are kept track of correctly on deposits and withdraws. The Vault
also performs the the Drips
in every period.
pub struct Vault {
// Account relations
pub proto_config: Pubkey, // 32
pub token_a_mint: Pubkey, // 32
pub token_b_mint: Pubkey, // 32
pub token_a_account: Pubkey, // 32
pub token_b_account: Pubkey, // 32
pub treasury_token_b_account: Pubkey, // 32
pub whitelisted_swaps: [Pubkey; VAULT_SWAP_WHITELIST_SIZE], // 32*5
// Data
// 1 to N
pub last_drip_period: u64, // 8
pub drip_amount: u64, // 8
pub drip_activation_timestamp: i64, // 8
pub bump: u8, // 1
pub limit_swaps: bool, // 1
pub max_slippage_bps: u16, // 2
}
Last updated
Was this helpful?