1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use borsh::BorshDeserialize;
use solana_client::rpc_client::RpcClient;
use solana_program::pubkey::Pubkey;
use tabled::Tabled;

#[derive(BorshDeserialize, Tabled)]
pub struct FeeTier {
    pub fee_rate: u16,
    pub tick_spacing: u16,
    pub bump: u8,
}

impl FeeTier {
    pub fn get_info(rpc_client: &RpcClient, pubkey: &Pubkey) -> Self {
        let data_slice = &rpc_client.get_account_data(pubkey).unwrap()[8..];
        FeeTier::try_from_slice(data_slice).unwrap()
    }
}