triad_protocol/instructions/stake/
update_stake_vault_status.rs1use crate::{ constraints::is_admin, state::UpdateStakeVaultStatusArgs, StakeVault };
2use anchor_lang::prelude::*;
3
4#[derive(Accounts)]
5#[instruction(args: UpdateStakeVaultStatusArgs)]
6pub struct UpdateStakeVaultStatus<'info> {
7 #[account(mut, constraint = is_admin(&signer)?)]
8 pub signer: Signer<'info>,
9
10 #[account(mut, constraint = is_admin(&signer)?)]
11 pub stake_vault: Box<Account<'info, StakeVault>>,
12
13 pub system_program: Program<'info, System>,
14}
15
16pub fn update_stake_vault_status(
17 ctx: Context<UpdateStakeVaultStatus>,
18 args: UpdateStakeVaultStatusArgs
19) -> Result<()> {
20 let stake_vault = &mut ctx.accounts.stake_vault;
21
22 stake_vault.is_locked = args.is_locked;
23 stake_vault.init_ts = args.init_ts;
24 stake_vault.slots = args.slots;
25
26 Ok(())
27}