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ềnfreezeAuthority
- Account
Token
hoặ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:
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(),
},
),
)?;