المدفوعاتالاشتراكات
صلاحية الاشتراك هي PDA يستخدمه البرنامج كمفوض رمز SPL لحساب رمزي واحد للمستخدم وسك رمز واحد. قم بإنشائه قبل إنشاء تفويضات ثابتة أو تفويضات متكررة أو اشتراكات خطة اشتراك لذلك السك.
يجب أن يكون حساب الرمز المميز للمستخدم موجودًا بالفعل. تنشئ التهيئة PDA لصلاحية الاشتراك وتوافق عليه كمفوض رمزي على حساب الرمز المميز للمستخدم.
إنشاء الصلاحية
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();}
ملاحظات
- يوقع المستخدم على معاملة التهيئة.
- قم بإنشاء صلاحية اشتراك واحدة لكل زوج من المستخدم وسك الرمز المميز.
- أعد استخدام صلاحية الاشتراك الحالية للتفويضات اللاحقة على نفس السك.
- أغلق صلاحية الاشتراك فقط بعد إلغاء أو إغلاق كل تفويض يعتمد عليها.
Is this page helpful?