冻结和解冻说明
冻结会阻止账户上的所有代币操作,直到账户被解冻。只有代币的冻结权限持有者才能执行此操作。
解冻会重新启用之前被冻结账户上的代币操作。只有代币的冻结权限持有者才能解冻账户。
在我们冻结或解冻任何代币账户之前,我们需要已经完成以下操作:
- 初始化了一个我们持有
freezeAuthority
的Mint
账户 - 初始化了一个我们想要冻结或解冻的
Token
账户或Associated Token
账户
以下是 CPI 到 freeze_account()
指令的示例:
freeze_account(
CpiContext::new(
ctx.accounts.token_program.to_account_info(),
FreezeAccount {
account: ctx.accounts.token_account.to_account_info(),
mint: ctx.accounts.mint.to_account_info(),,
authority: ctx.accounts.authority.to_account_info(),
},
),
)?;
以下是 CPI 到 thaw_account()
指令的示例:
thaw_account(
CpiContext::new(
ctx.accounts.token_program.to_account_info(),
ThawAccount {
account: ctx.accounts.token_account.to_account_info(),
mint: ctx.accounts.mint.to_account_info(),,
authority: ctx.accounts.authority.to_account_info(),
},
),
)?;