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
MintInitialisé un compte de
TokenouAssociated Tokenque 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(),
},
),
)?;