banksea-oracle-client 0.4.0

Banksea oracle access library
Documentation
use borsh::{ BorshDeserialize };
use solana_program::{
    account_info::{ AccountInfo },
    program_error::ProgramError,
    pubkey::Pubkey,
    borsh::try_from_slice_unchecked,
};
// use std::str::FromStr;

#[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)
}