use borsh::{ BorshDeserialize };
use solana_program::{
account_info::{ AccountInfo },
program_error::ProgramError,
pubkey::Pubkey,
borsh::try_from_slice_unchecked,
};
#[derive(BorshDeserialize)]
pub struct FeedAccount {
pub magic: u64,
pub info: FeedInfo,
}
#[derive(BorshDeserialize)]
pub struct FeedInfo {
pub oracle: Pubkey,
pub subscriber: Pubkey,
pub code: String,
pub unit: String,
pub decimals: u64,
pub aggregate_time: u64,
pub aggregate_node_count: u64,
pub floor_price: u64,
pub ai_floor_price: u64,
pub avg_price: u64,
}
pub fn get_feed_info(account_info: &AccountInfo) -> Result<FeedInfo, ProgramError> {
let feed_account: FeedAccount = try_from_slice_unchecked(&account_info.data.borrow())?;
Ok(feed_account.info)
}