clockwork_scheduler/instructions/
task_update.rs1use {
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_QUEUE,
16 queue.authority.as_ref(),
17 queue.name.as_bytes(),
18 ],
19 bump,
20 has_one = authority,
21 constraint = queue.status == QueueStatus::Pending || queue.status == QueueStatus::Paused
22 )]
23 pub queue: Account<'info, Queue>,
24
25 #[account(
26 mut,
27 seeds = [
28 SEED_TASK,
29 task.queue.as_ref(),
30 task.id.to_be_bytes().as_ref(),
31 ],
32 bump,
33 )]
34 pub task: Account<'info, Task>,
35}
36
37pub fn handler(
38 ctx: Context<TaskUpdate>,
39 ixs: Vec<InstructionData>,
40) -> Result<()> {
41 let task = &mut ctx.accounts.task;
42
43 task.ixs = ixs;
46
47 Ok(())
48}