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.
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.
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ềnfreezeAuthorityAccount
Tokenhoặc accountAssociated 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:
rust
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:
rust
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(),
},
),
)?;