carbon_wavebreak_decoder/types/
whirlpool.rs1use {crate::types::WhirlpoolRewardInfo, solana_pubkey::Pubkey};
3#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
4#[derive(Debug, Clone, borsh::BorshSerialize, borsh::BorshDeserialize, PartialEq)]
5pub struct Whirlpool {
6 pub discriminator: [u8; 8],
7 pub whirlpool_config: Pubkey,
8 pub whirlpool_bump: u8,
9 pub tick_spacing: u16,
10 pub fee_tier_index: u16,
11 pub fee_rate: u16,
12 pub protocol_fee_rate: u16,
13 pub liquidity: u128,
14 pub sqrt_price: u128,
15 pub tick_current_index: i32,
16 pub protocol_fee_owed_a: u64,
17 pub protocol_fee_owed_b: u64,
18 pub token_a_mint: Pubkey,
19 pub token_a_vault: Pubkey,
20 pub fee_growth_global_a: u128,
21 pub token_b_mint: Pubkey,
22 pub token_b_vault: Pubkey,
23 pub fee_growth_global_b: u128,
24 pub reward_last_updated_timestamp: u64,
25 pub reward_infos: [WhirlpoolRewardInfo; 3],
26}