cronos_scheduler/instructions/
task_update.rs

1use {
2    crate::state::*,
3    anchor_lang::prelude::*,
4};
5
6
7#[derive(Accounts)]
8#[instruction(ixs: Vec<InstructionData>)]
9pub struct TaskUpdate<'info> {
10    #[account()]
11    pub authority: Signer<'info>,
12
13    #[account(
14        seeds = [
15            SEED_MANAGER, 
16            manager.authority.as_ref()
17        ],
18        bump,
19        has_one = authority,
20    )]
21    pub manager: Account<'info, Manager>,
22
23    #[account(
24        seeds = [
25            SEED_QUEUE, 
26            queue.manager.as_ref(),
27            queue.id.to_be_bytes().as_ref(),
28        ],
29        bump,
30        has_one = manager,
31    )]
32    pub queue: Account<'info, Queue>,
33
34    #[account(
35        mut,
36        seeds = [
37            SEED_TASK, 
38            task.queue.as_ref(),
39            task.id.to_be_bytes().as_ref(),
40        ],
41        bump,
42    )]
43    pub task: Account<'info, Task>,
44}
45
46pub fn handler(
47    ctx: Context<TaskUpdate>,
48    ixs: Vec<InstructionData>,
49) -> Result<()> {
50    let task = &mut ctx.accounts.task;
51
52    // TODO verify ixs
53    task.ixs = ixs;
54
55    Ok(())
56}