light_sdk/
utils.rs

1use solana_pubkey::Pubkey;
2
3#[allow(unused_imports)]
4use crate::constants::CPI_AUTHORITY_PDA_SEED;
5#[macro_export]
6macro_rules! find_cpi_signer_macro {
7    ($program_id:expr) => {
8        Pubkey::find_program_address([CPI_AUTHORITY_PDA_SEED].as_slice(), $program_id)
9    };
10}
11
12pub fn get_light_cpi_signer_seeds(program_id: &Pubkey) -> ([Vec<u8>; 2], Pubkey) {
13    let seeds = &[CPI_AUTHORITY_PDA_SEED];
14
15    let (pda, bump) = solana_pubkey::Pubkey::find_program_address(seeds, program_id);
16
17    let signer_seeds_bump = bump;
18
19    let signer_seeds: [Vec<u8>; 2] = [CPI_AUTHORITY_PDA_SEED.to_vec(), vec![signer_seeds_bump]];
20    (signer_seeds, pda)
21}