Instruções de Approve e Revoke
Approve concede a um delegate a autoridade para transferir uma quantidade específica de tokens em nome do proprietário da conta. Isso permite transferências programáticas de tokens sem dar controle total da conta.
Revoke remove a autoridade do delegate atual sobre a conta, devolvendo o controle total ao proprietário da conta.
Antes de podermos delegar ou revogar qualquer conta de token, precisaremos já ter:
Inicializado uma conta
Mint.Inicializado uma conta
TokenouAssociated Tokenda qual vamos assumir o controle
Veja como fica a CPI para a instrução approve():
rust
approve(
CpiContext::new(
ctx.accounts.token_program.to_account_info(),
Approve {
to: ctx.accounts.token_account.to_account_info(),
delegate: ctx.accounts.delegate.to_account_info(),
authority: ctx.accounts.authority.to_account_info(),
},
),
&1_000_000,
)?;E veja como fica a CPI para a instrução revoke():
rust
revoke(
CpiContext::new(
ctx.accounts.token_program.to_account_info(),
Revoke {
pub source: ctx.accounts.token_account.to_account_info(),
authority: ctx.accounts.authority.to_account_info(),
},
),
)?;