spl: Add thaw_account token utility (#867)

This commit is contained in:
jpbogle 2021-10-10 17:18:17 -07:00 committed by GitHub
parent 5e9cede699
commit 8e52242b8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 28 additions and 0 deletions

View File

@ -170,6 +170,27 @@ pub fn freeze_account<'a, 'b, 'c, 'info>(
)
}
pub fn thaw_account<'a, 'b, 'c, 'info>(
ctx: CpiContext<'a, 'b, 'c, 'info, ThawAccount<'info>>,
) -> ProgramResult {
let ix = spl_token::instruction::thaw_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,
@ -273,6 +294,13 @@ pub struct FreezeAccount<'info> {
pub authority: AccountInfo<'info>,
}
#[derive(Accounts)]
pub struct ThawAccount<'info> {
pub account: AccountInfo<'info>,
pub mint: AccountInfo<'info>,
pub authority: AccountInfo<'info>,
}
#[derive(Accounts)]
pub struct InitializeMint<'info> {
pub mint: AccountInfo<'info>,