Approve- und Revoke-Anweisungen
Approve erteilt einem Delegierten die Berechtigung, eine bestimmte Menge an Token im Namen des Kontoinhabers zu übertragen. Dies ermöglicht programmgesteuerte Token-Übertragungen, ohne die vollständige Kontrolle über das Konto zu gewähren.
Revoke entzieht dem aktuellen Delegierten die Berechtigung über das Konto und gibt die vollständige Kontrolle an den Kontoinhaber zurück.
Bevor wir ein Token-Konto delegieren oder widerrufen können, müssen wir bereits Folgendes haben:
Ein initialisiertes
MintKonto.Ein initialisiertes
TokenKonto oderAssociated TokenKonto, über das wir die Kontrolle übernehmen wollen
So sieht der CPI zur approve() Anweisung aus:
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,
)?;Und so sieht der CPI zur revoke() Anweisung aus:
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(),
},
),
)?;