Instruksi Approve dan Revoke
Approve memberikan delegasi wewenang untuk mentransfer sejumlah token tertentu atas nama pemilik akun. Ini memungkinkan transfer token secara terprogram tanpa memberikan kontrol penuh atas akun.
Revoke menghapus wewenang delegasi saat ini atas akun, mengembalikan kontrol penuh kepada pemilik akun.
Sebelum kita dapat mendelegasikan atau mencabut akun token apa pun, kita perlu sudah memiliki:
Akun
Mintyang sudah diinisialisasi.Akun
Tokenatau akunAssociated Tokenyang sudah diinisialisasi yang akan kita kendalikan
Beginilah tampilan CPI untuk instruksi 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,
)?;Dan beginilah tampilan CPI untuk instruksi 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(),
},
),
)?;