use crate::Jungle;
use anchor_lang::prelude::*;
#[derive(Accounts)]
pub struct UpdateRewardToken<'info> {
#[account(
mut,
)]
pub jungle: Account<'info, Jungle>,
pub mint: AccountInfo<'info>,
pub owner: Signer<'info>,
}
pub fn handler(ctx: Context<UpdateRewardToken>, decimals: u8, value: u64) -> Result<()> {
msg!("Update reward token");
let mint = &ctx.accounts.mint;
let jungle = &mut ctx.accounts.jungle;
let found = jungle
.reward_tokens
.iter()
.position(|x| x.mint == mint.key());
if let Some(index) = found {
jungle.reward_tokens[index].decimals = decimals;
jungle.reward_tokens[index].value = value;
msg!("Reward token updated!");
} else {
msg!("Mint not found!");
}
Ok(())
}