Instructions Approve et Revoke
Approve
accorde à un délégué le pouvoir de transférer un montant spécifique de jetons au nom du propriétaire du compte. Cela permet d'effectuer des transferts de jetons de manière programmatique sans donner le contrôle total du compte.
Revoke
supprime le pouvoir du délégué actuel sur le compte, redonnant ainsi le contrôle total au propriétaire du compte.
Avant de pouvoir déléguer ou révoquer un compte de jetons, nous devons déjà avoir :
- Initialisé un compte de
Mint
- Initialisé un compte de
Token
ouAssociated Token
que nous allons prendre le contrôle
Voici à quoi ressemble le CPI à l'instruction 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,
)?;
Et voici à quoi ressemble le CPI à l'instruction 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(),
},
),
)?;