Anchor
SPL токен з Anchor

SPL токен з Anchor

Інструкції затвердження та скасування

Затвердження (Approve) надає делегату право переказувати певну кількість токенів від імені власника рахунку. Це дозволяє програмні перекази токенів без надання повного контролю над рахунком.

Ми встановлюємо "затверджену" кількість, і делегат може переказувати лише до цієї суми

Скасування (Revoke) видаляє поточні повноваження делегата над рахунком, повертаючи повний контроль власнику рахунку.

Негайно скасовує будь-яке існуюче делегування, і лише власник рахунку може скасувати делегування (не сам делегат)

Перш ніж ми зможемо делегувати або скасувати будь-який токен-рахунок, нам потрібно вже мати:

  • Ініціалізований рахунок Mint.
  • Ініціалізований рахунок Token або рахунок Associated Token, над яким ми збираємося взяти контроль

Кількість токенів, які ми випускаємо, "нормалізована" для десяткових знаків. Це означає, що якщо ми хочемо випустити 1 токен, який має 6 десяткових знаків, нам потрібно буде фактично вказати 1_000_000 як кількість

Ось як виглядає CPI до інструкції 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,
)?;

А ось як виглядає CPI до інструкції 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(),
        },
    ),
)?;
Blueshift © 2025Commit: 6d01265
Blueshift | SPL токен з Anchor | Схвалення та відкликання