use super::*;
use carbon_core::{borsh, CarbonDeserialize};
#[derive(
CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
)]
pub struct Whirlpool {
pub discriminator: [u8; 8],
pub whirlpool_config: solana_pubkey::Pubkey,
pub whirlpool_bump: u8,
pub tick_spacing: u16,
pub fee_tier_index: u16,
pub fee_rate: u16,
pub protocol_fee_rate: u16,
pub liquidity: u128,
pub sqrt_price: u128,
pub tick_current_index: i32,
pub protocol_fee_owed_a: u64,
pub protocol_fee_owed_b: u64,
pub token_mint_a: solana_pubkey::Pubkey,
pub token_vault_a: solana_pubkey::Pubkey,
pub fee_growth_global_a: u128,
pub token_mint_b: solana_pubkey::Pubkey,
pub token_vault_b: solana_pubkey::Pubkey,
pub fee_growth_global_b: u128,
pub reward_last_updated_timestamp: u64,
pub reward_infos: [WhirlpoolRewardInfo; 3],
}