Thanh toánĐăng ký
Quyền Đăng Ký là một PDA mà chương trình sử dụng làm đại diện SPL Token cho token account của một người dùng và một token mint. Hãy tạo nó trước khi tạo các ủy quyền cố định, ủy quyền định kỳ hoặc đăng ký gói đăng ký cho token mint đó.
Token account của người dùng phải tồn tại trước. Quá trình khởi tạo sẽ tạo PDA Quyền Đăng Ký và phê duyệt nó làm đại diện token trên token account của người dùng.
Tạo Quyền
import { address, createClient } from '@solana/kit';import { solanaLocalRpc } from '@solana/kit-plugin-rpc';import { signer } from '@solana/kit-plugin-signer';import { findAssociatedTokenPda, TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';import {fetchMaybeSubscriptionAuthority,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 [userAta] = await findAssociatedTokenPda({mint: tokenMint,owner: userSigner.address,tokenProgram: TOKEN_PROGRAM_ADDRESS,});const [subscriptionAuthorityPda] = await findSubscriptionAuthorityPda({user: userSigner.address,tokenMint,});const subscriptionAuthority = await fetchMaybeSubscriptionAuthority(client.rpc,subscriptionAuthorityPda,);if (!subscriptionAuthority.exists) {await client.subscriptions.instructions.initSubscriptionAuthority({tokenMint,tokenProgram: TOKEN_PROGRAM_ADDRESS,userAta,}).sendTransaction();}
Lưu Ý
- Người dùng ký giao dịch khởi tạo.
- Tạo một Subscription Authority cho mỗi cặp người dùng và token mint.
- Tái sử dụng Subscription Authority hiện có cho các lần ủy quyền sau trên cùng một mint.
- Một nhà tài trợ có thể cấp vốn cho tài khoản: truyền một
payertùy chọn vàoinitSubscriptionAuthority(cũng được hỗ trợ trêncreateFixedDelegation,createRecurringDelegation, vàsubscribe), hoặc cấu hình một nhà tài trợ bằng.use(payer(sponsorSigner)). rent sau đó sẽ được hoàn trả về nhà tài trợ đó khi bạn đóng bằngreceivertương ứng. Bỏ qua nếu muốn dùng mặc định tự cấp vốn. - Chỉ đóng Subscription Authority sau khi mọi lần ủy quyền phụ thuộc vào nó đã được thu hồi hoặc đóng lại.
Is this page helpful?