solana_workflow/instructions/
change_variable.rs

1use anchor_lang::prelude::*;
2
3use crate::pda::{ Mission, Variable};
4
5#[derive(Accounts)]
6#[instruction(_variable_id: u8)]
7pub struct CreateVariable<'info> {
8    #[account(mut)]
9    pub user: Signer<'info>,
10
11    #[account(mut)]
12    pub mission: Account<'info, Mission>,
13
14    #[account(
15        init_if_needed,        
16        payer = user, 
17        space=1000, 
18        seeds=[
19        b"variable", mission.key().as_ref(), &[_variable_id]], 
20        bump
21    )]
22    pub variable: Account<'info, Variable>,
23
24    pub system_program: Program<'info, System>,
25}
26
27pub fn change_variable(ctx: Context<CreateVariable>, value: Vec<u8>, _variable_id: u8) -> Result<()> {
28    let variable = &mut ctx.accounts.variable;
29
30    variable.value = value;
31
32    Ok(())
33}