Instruções de Freeze e Thaw
Freeze impede todas as operações de token em uma conta até que ela seja descongelada (thaw). Apenas a autoridade de freeze da mint pode realizar essa operação.
Thaw reabilita as operações de token em uma conta previamente congelada. Apenas a autoridade de freeze da mint pode descongelar contas.
Antes de podermos congelar ou descongelar qualquer conta de token, precisaremos já ter:
Inicializado uma conta
Mintda qual detemos afreezeAuthorityInicializado uma conta
TokenouAssociated Tokenque desejamos congelar ou descongelar
Veja como fica a CPI para a instrução freeze_account():
rust
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(),
},
),
)?;E veja como fica a CPI para a instrução thaw_account():
rust
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(),
},
),
)?;