clockwork_http/instructions/
admin_fee_claim.rs1use {
2 crate::state::{Config, Fee, FeeAccount, SEED_CONFIG, SEED_FEE},
3 anchor_lang::prelude::*,
4};
5
6#[derive(Accounts)]
7#[instruction(amount: u64)]
8pub struct AdminFeeClaim<'info> {
9 #[account(mut)]
10 pub admin: Signer<'info>,
11
12 #[account(seeds = [SEED_CONFIG], bump, has_one = admin)]
13 pub config: Account<'info, Config>,
14
15 #[account(mut)]
16 pub pay_to: SystemAccount<'info>,
17
18 #[account(
19 mut,
20 seeds = [
21 SEED_FEE,
22 fee.authority.as_ref(),
23 ],
24 bump,
25 )]
26 pub fee: Account<'info, Fee>,
27}
28
29pub fn handler<'info>(ctx: Context<AdminFeeClaim>, amount: u64) -> Result<()> {
30 let pay_to = &mut ctx.accounts.pay_to;
32 let fee = &mut ctx.accounts.fee;
33
34 fee.claim_admin_balance(amount, pay_to)?;
36
37 Ok(())
38}