Skip to content

Commit

Permalink
spl: Add freeze_account token utility (#865)
Browse files Browse the repository at this point in the history
  • Loading branch information
jpbogle authored Oct 10, 2021
1 parent ee19059 commit 5e9cede
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions spl/src/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,27 @@ pub fn close_account<'a, 'b, 'c, 'info>(
)
}

pub fn freeze_account<'a, 'b, 'c, 'info>(
ctx: CpiContext<'a, 'b, 'c, 'info, FreezeAccount<'info>>,
) -> ProgramResult {
let ix = spl_token::instruction::freeze_account(
&spl_token::ID,
ctx.accounts.account.key,
ctx.accounts.mint.key,
ctx.accounts.authority.key,
&[], // TODO: Support multisig signers.
)?;
solana_program::program::invoke_signed(
&ix,
&[
ctx.accounts.account.clone(),
ctx.accounts.mint.clone(),
ctx.accounts.authority.clone(),
],
ctx.signer_seeds,
)
}

pub fn initialize_mint<'a, 'b, 'c, 'info>(
ctx: CpiContext<'a, 'b, 'c, 'info, InitializeMint<'info>>,
decimals: u8,
Expand Down Expand Up @@ -245,6 +266,13 @@ pub struct CloseAccount<'info> {
pub authority: AccountInfo<'info>,
}

#[derive(Accounts)]
pub struct FreezeAccount<'info> {
pub account: AccountInfo<'info>,
pub mint: AccountInfo<'info>,
pub authority: AccountInfo<'info>,
}

#[derive(Accounts)]
pub struct InitializeMint<'info> {
pub mint: AccountInfo<'info>,
Expand Down

0 comments on commit 5e9cede

Please sign in to comment.