use crate::token::{
self, is_initialized_account, is_initialized_mint, GenericTokenAccount, GenericTokenMint,
SPL_TOKEN_ACCOUNT_LENGTH,
};
solana_pubkey::declare_id!("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb");
pub const ACCOUNTTYPE_ACCOUNT: u8 = 2;
const SPL_TOKEN_MULTISIG_LENGTH: usize = 355;
pub struct Account;
impl GenericTokenAccount for Account {
fn valid_account_data(account_data: &[u8]) -> bool {
token::Account::valid_account_data(account_data)
|| (account_data.len() > SPL_TOKEN_ACCOUNT_LENGTH
&& account_data.len() != SPL_TOKEN_MULTISIG_LENGTH
&& ACCOUNTTYPE_ACCOUNT == account_data[SPL_TOKEN_ACCOUNT_LENGTH]
&& is_initialized_account(account_data))
}
}
const ACCOUNTTYPE_MINT: u8 = 1;
pub struct Mint;
impl GenericTokenMint for Mint {
fn valid_account_data(account_data: &[u8]) -> bool {
token::Mint::valid_account_data(account_data)
|| (account_data.len() > SPL_TOKEN_ACCOUNT_LENGTH
&& account_data.len() != SPL_TOKEN_MULTISIG_LENGTH
&& ACCOUNTTYPE_MINT == account_data[SPL_TOKEN_ACCOUNT_LENGTH]
&& is_initialized_mint(account_data))
}
}