1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use solana_program::{account_info::AccountInfo, entrypoint::ProgramResult, pubkey::Pubkey};
#[derive(Clone, Debug)]
pub struct TransferAccounts<'a> {
pub authority: AccountInfo<'a>,
pub new_recipient: AccountInfo<'a>,
pub new_recipient_tokens: AccountInfo<'a>,
pub metadata: AccountInfo<'a>,
pub mint: AccountInfo<'a>,
pub rent: AccountInfo<'a>,
pub token_program: AccountInfo<'a>,
pub associated_token_program: AccountInfo<'a>,
pub system_program: AccountInfo<'a>,
}
pub trait TransferStream {
fn transfer_recipient(pid: &Pubkey, acc: TransferAccounts) -> ProgramResult;
}