triad_protocol/instructions/stake/
update_stake_vault_status.rs

1use 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}