use solana_pubkey::Pubkey;
use super::super::{base58::decode_base58_to_fixed_array, IndexerError};
#[derive(Clone, Default, Debug, PartialEq)]
pub struct TokenBalance {
pub balance: u64,
pub mint: Pubkey,
}
impl TryFrom<&photon_api::types::TokenBalance> for TokenBalance {
type Error = IndexerError;
fn try_from(token_balance: &photon_api::types::TokenBalance) -> Result<Self, Self::Error> {
Ok(TokenBalance {
balance: *token_balance.balance,
mint: Pubkey::new_from_array(decode_base58_to_fixed_array(&token_balance.mint)?),
})
}
}
#[derive(Debug, Clone, PartialEq, Default)]
pub struct OwnerBalance {
pub balance: u64,
pub owner: Pubkey,
}
impl TryFrom<&photon_api::types::OwnerBalance> for OwnerBalance {
type Error = IndexerError;
fn try_from(owner_balance: &photon_api::types::OwnerBalance) -> Result<Self, Self::Error> {
Ok(OwnerBalance {
balance: *owner_balance.balance,
owner: Pubkey::new_from_array(decode_base58_to_fixed_array(&owner_balance.owner)?),
})
}
}