use crate::generated::programs::VORTEX_ID;
use fogo_sessions_sdk::token::PROGRAM_SIGNER_SEED;
use solana_program::program_error::ProgramError;
use solana_program::pubkey::Pubkey;
pub fn get_program_signer_address() -> Result<(Pubkey, u8), ProgramError> {
let seeds = &[PROGRAM_SIGNER_SEED];
Pubkey::try_find_program_address(seeds, &VORTEX_ID).ok_or(ProgramError::InvalidSeeds)
}
#[cfg(test)]
mod tests {
use super::*;
use std::str::FromStr;
#[test]
fn test_get_program_signer_address() {
let program_signer =
Pubkey::from_str("3Kdtda8zcXjuC6n69xfuXtyZt2kEwLE6ghvubGbKfsFv").unwrap();
let (address, _) = get_program_signer_address().unwrap();
assert_eq!(address, program_signer);
}
#[test]
fn test_program_signer_seed_constant() {
assert_eq!(PROGRAM_SIGNER_SEED, b"fogo_session_program_signer");
}
}