solana_workflow/instructions/
funcs.rs

1use anchor_lang::{prelude::*, system_program::CreateAccount};
2
3pub fn create_account<'info>(
4    system_program: AccountInfo<'info>,
5    from: AccountInfo<'info>,
6    to: AccountInfo<'info>,
7    seeds: &[&[u8]],
8    bump: u8,
9    space: usize,
10    owner: &Pubkey,
11) -> Result<()> {
12    let seeds_signer = &mut seeds.to_vec();
13    let binding = [bump];
14    seeds_signer.push(&binding);
15
16    // signer seeds must equal seeds of to address
17    anchor_lang::system_program::create_account(
18        CpiContext::new(system_program, CreateAccount { from, to }).with_signer(&[seeds_signer]),
19        Rent::get()?.minimum_balance(space),
20        space.try_into().unwrap(),
21        owner,
22    )
23}