#[cfg(target_os = "solana")]
use crate::constants::{EDITION_SEED_PREFIX, METADATA_SEED_PREFIX, MPL_TOKEN_METADATA_PROGRAM_ID};
use hopper_runtime::address::Address;
#[cfg(target_os = "solana")]
pub fn metadata_pda(mint: &Address) -> (Address, u8) {
let seeds: [&[u8]; 3] = [
METADATA_SEED_PREFIX,
MPL_TOKEN_METADATA_PROGRAM_ID.as_array(),
mint.as_array(),
];
hopper_runtime::pda::find_program_address(&seeds, &MPL_TOKEN_METADATA_PROGRAM_ID)
}
#[cfg(target_os = "solana")]
pub fn master_edition_pda(mint: &Address) -> (Address, u8) {
let seeds: [&[u8]; 4] = [
METADATA_SEED_PREFIX,
MPL_TOKEN_METADATA_PROGRAM_ID.as_array(),
mint.as_array(),
EDITION_SEED_PREFIX,
];
hopper_runtime::pda::find_program_address(&seeds, &MPL_TOKEN_METADATA_PROGRAM_ID)
}
#[cfg(target_os = "solana")]
pub fn metadata_pda_with_bump(
mint: &Address,
bump: u8,
) -> Result<Address, hopper_runtime::error::ProgramError> {
let seeds: [&[u8]; 4] = [
METADATA_SEED_PREFIX,
MPL_TOKEN_METADATA_PROGRAM_ID.as_array(),
mint.as_array(),
&[bump],
];
hopper_runtime::pda::create_program_address(&seeds, &MPL_TOKEN_METADATA_PROGRAM_ID)
}
#[cfg(target_os = "solana")]
pub fn master_edition_pda_with_bump(
mint: &Address,
bump: u8,
) -> Result<Address, hopper_runtime::error::ProgramError> {
let seeds: [&[u8]; 5] = [
METADATA_SEED_PREFIX,
MPL_TOKEN_METADATA_PROGRAM_ID.as_array(),
mint.as_array(),
EDITION_SEED_PREFIX,
&[bump],
];
hopper_runtime::pda::create_program_address(&seeds, &MPL_TOKEN_METADATA_PROGRAM_ID)
}
#[cfg(not(target_os = "solana"))]
pub fn metadata_pda(_mint: &Address) -> (Address, u8) {
(Address::new_from_array([0u8; 32]), 0)
}
#[cfg(not(target_os = "solana"))]
pub fn master_edition_pda(_mint: &Address) -> (Address, u8) {
(Address::new_from_array([0u8; 32]), 0)
}
#[cfg(not(target_os = "solana"))]
pub fn metadata_pda_with_bump(
_mint: &Address,
_bump: u8,
) -> Result<Address, hopper_runtime::error::ProgramError> {
Ok(Address::new_from_array([0u8; 32]))
}
#[cfg(not(target_os = "solana"))]
pub fn master_edition_pda_with_bump(
_mint: &Address,
_bump: u8,
) -> Result<Address, hopper_runtime::error::ProgramError> {
Ok(Address::new_from_array([0u8; 32]))
}