Anchor
Token2022 với Anchor

Token2022 với Anchor

Permanent Delegate Extension

Phần mở rộng PermanentDelegate là một Mint account extension cho phép ủy nhiệm vĩnh viễn đối với tất cả token của mint có khả năng transfer hoặc burn bất kỳ token nào của mint đó, từ bất kỳ token account nào.

Khởi tạo Mint Account

Để khởi tạo extension PermanentDelegate trên Mint account, chúng ta chỉ cần sử dụng macro mà Anchor đã tạo cho chúng ta.

Đây là cách tạo mint với Permanent Delegate extension:

#[derive(Accounts)]
pub struct CreateMint<'info> {
    #[account(mut)]
    pub signer: Signer<'info>,
    #[account(
        init,
        payer = signer,
        mint::decimals = 6,
        mint::authority = signer.key(),
        mint::token_program = token_program
        extensions::permanent_delegate::delegate = signer,
    )]
    pub mint: InterfaceAccount<'info, Mint>,
    pub system_program: Program<'info, System>,
    pub token_program: Interface<'info, TokenInterface>,
}

Các hành động được phép

Không giống như ủy nhiệm thông thường có thể bị thu hồi, ủy nhiệm này là vĩnh viễn và bất biến.

Điều này có nghĩa là mọi hành động bình thường như transfer(), burn(), approve()freeze() có thể được thực thi bất cứ khi nào cần thiết trực tiếp bởi authority mà không cần chữ ký của chủ sở hữu thực tế.

Điều này có nghĩa là chúng ta chỉ cần sử dụng instruction transferChecked(), burnChecked(), ... bình thường và truyền vào authority PermanetDelegate trong field authority.

Nội dung
Xem mã nguồn
Blueshift © 2025Commit: f7a03c2