Anchor
SPL Token với Anchor

SPL Token với Anchor

Instruction Freeze và Thaw

Freeze ngăn chặn tất cả các thao tác token trên một account cho đến khi nó được thaw. Chỉ freeze authority của mint mới có thể thực hiện thao tác này.

Hoàn toàn vô hiệu hóa transfer, approval, và burn và nó chỉ ảnh hưởng đến account bị đóng băng cụ thể

Thaw kích hoạt lại các thao tác token trên một account đã bị đóng băng trước đó. Chỉ freeze authority của mint mới có thể thaw account.

Khôi phục đầy đủ chức năng cho một account bị đóng băng và chỉ có thể được thực hiện bởi freeze authority của mint

Trước khi chúng ta có thể freeze hoặc thaw bất kỳ token account nào, chúng ta sẽ cần phải có:

  • Account Mint đã được khởi tạo mà chúng ta giữ quyền freezeAuthority
  • Account Token hoặc account Associated Token đã được khởi tạo mà chúng ta muốn freeze hoặc thaw

Cách CPI đến instruction freeze_account() trông như thế này:

freeze_account(
    CpiContext::new(
        ctx.accounts.token_program.to_account_info(),
        FreezeAccount {
            account: ctx.accounts.token_account.to_account_info(),
            mint: ctx.accounts.mint.to_account_info(),,
            authority: ctx.accounts.authority.to_account_info(),
        },
    ),
)?;

Cách CPI đến instruction thaw_account() trông như thế này:

thaw_account(
    CpiContext::new(
        ctx.accounts.token_program.to_account_info(),
        ThawAccount {
            account: ctx.accounts.token_account.to_account_info(),
            mint: ctx.accounts.mint.to_account_info(),,
            authority: ctx.accounts.authority.to_account_info(),
        },
    ),
)?;
Nội dung
Xem mã nguồn
Blueshift © 2025Commit: fd080b2