Quyền Đăng Ký là PDA mà chương trình sử dụng làm đại diện SPL Token cho token account của người dùng. Đóng nó khi người dùng không còn ủy quyền cố định, ủy quyền định kỳ hoặc ủy quyền đăng ký đang hoạt động cho mint đó.
Việc đóng tài khoản sẽ hoàn trả rent của tài khoản về cho người tài trợ (người dùng, hoặc bất kỳ người thanh toán nào đã tài trợ cho nó). Hãy đóng tất cả các ủy quyền đang hoạt động trước.
Việc đóng tài khoản không xóa phê duyệt ủy quyền SPL Token delegate. Sau khi PDA biến mất, phê duyệt đó sẽ trở nên vô hiệu, nhưng nó vẫn tồn tại trên token account cho đến khi bị thu hồi — xem Revoke The Delegate Approval.
Đóng Authority
import { address, createClient } from '@solana/kit';import { solanaLocalRpc } from '@solana/kit-plugin-rpc';import { signer } from '@solana/kit-plugin-signer';import {findSubscriptionAuthorityPda,subscriptionsProgram,} from '@solana/subscriptions';const client = createClient().use(signer(userSigner)).use(solanaLocalRpc({ rpcUrl: 'http://127.0.0.1:8899' })).use(subscriptionsProgram());const tokenMint = address('TOKEN_MINT_ADDRESS_HERE');const [subscriptionAuthorityPda] = await findSubscriptionAuthorityPda({user: userSigner.address,tokenMint,});await client.subscriptions.instructions.closeSubscriptionAuthority({user: userSigner,tokenMint,// Include this only when a sponsor funded the Subscription Authority.receiver: sponsorSigner.address,}).sendTransaction();
Thu Hồi Phê Duyệt Ủy Quyền Delegate
RevokeSubscriptionAuthority xóa phê duyệt delegate còn sót lại khỏi token
account của người dùng. Nó gọi Revoke của token program, được ký bởi người
dùng, nên hoạt động dù Subscription Authority còn tồn tại hay không. Gửi độc lập
hoặc cùng với CloseSubscriptionAuthority.
Truyền vào token program sở hữu mint: TOKEN_PROGRAM_ADDRESS cho các SPL Token
mint, hoặc TOKEN_2022_PROGRAM_ADDRESS (từ @solana-program/token-2022) cho
các Token-2022 mint.
import { TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';await client.subscriptions.instructions.revokeSubscriptionAuthority({user: userSigner,tokenMint,tokenProgram: TOKEN_PROGRAM_ADDRESS,}).sendTransaction();
Lưu Ý
- Người dùng ký giao dịch đóng tài khoản.
- Nếu một nhà tài trợ đã tài trợ cho Subscription Authority, hãy truyền tài
khoản nhà tài trợ đó vào
receiverđể rent được hoàn trả về cho người thanh toán đã ghi lại. - Đóng các PDA ủy quyền cố định, định kỳ và đăng ký trước khi đóng Subscription Authority.
- Nếu người dùng tạo một ủy quyền mới sau này, hãy khởi tạo một Subscription Authority mới cho cùng một mint.
- Việc đóng tài khoản không xóa phê duyệt token delegate. Sử dụng
RevokeSubscriptionAuthorityđể xóa nó khỏi token account của người dùng.
Is this page helpful?