clockwork_scheduler/instructions/
queue_close.rs

1use {
2    crate::state::*,
3    anchor_lang::prelude::*,
4};
5
6
7#[derive(Accounts)]
8pub struct QueueClose<'info> {
9    #[account()]
10    pub authority: Signer<'info>,
11
12    #[account(mut)]
13    pub close_to: SystemAccount<'info>,
14
15    #[account(
16        mut,
17        seeds = [
18            SEED_QUEUE, 
19            queue.authority.as_ref(),
20            queue.name.as_bytes(),
21        ],
22        bump,
23        has_one = authority,
24        constraint = queue.status == QueueStatus::Pending || queue.status == QueueStatus::Paused,
25        constraint = queue.task_count == 0,
26        close = close_to
27    )]
28    pub queue: Account<'info, Queue>,
29}
30
31pub fn handler(_ctx: Context<QueueClose>) -> Result<()> {
32    Ok(())
33}