المدفوعاتالاشتراكات

إغلاق صلاحية الاشتراك

صلاحية الاشتراك هي PDA الذي يستخدمه البرنامج كمفوض لرمز SPL لحساب الرموز الخاص بالمستخدم. قم بإغلاقه عندما لم يعد لدى المستخدم تفويضات ثابتة نشطة أو تفويضات متكررة أو تفويضات اشتراك لتلك العملة.

يُعيد الإغلاق rent الحساب إلى مموّله (المستخدم، أو أيّ جهة دفع موّلته). أغلق أي تفويضات نشطة أولاً.

الإغلاق لا يمسح موافقة مفوَّض SPL Token. بمجرد اختفاء PDA، تصبح الموافقة غير فعّالة، لكنها تبقى على token account حتى يتم إلغاؤها — انظر إلغاء موافقة المفوَّض.

إغلاق السلطة

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();

إلغاء موافقة المفوَّض

RevokeSubscriptionAuthority يمسح موافقة المفوَّض المتبقية من token account الخاص بالمستخدم. يستدعي Revoke الخاص ببرنامج الرمز، موقَّعاً من المستخدم، لذا يعمل سواء كانت Subscription Authority لا تزال موجودة أم لا. أرسله منفرداً أو جنباً إلى جنب مع CloseSubscriptionAuthority.

مرِّر Token Program المالك للـ mint: TOKEN_PROGRAM_ADDRESS لـ SPL Token mints، أو TOKEN_2022_PROGRAM_ADDRESS (من @solana-program/token-2022) لـ Token-2022 mints.

import { TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';
await client.subscriptions.instructions
.revokeSubscriptionAuthority({
user: userSigner,
tokenMint,
tokenProgram: TOKEN_PROGRAM_ADDRESS,
})
.sendTransaction();

ملاحظات

  • يوقّع المستخدم على معاملة الإغلاق.
  • إذا موّل راعٍ Subscription Authority، مرِّر حساب ذلك الراعي بوصفه receiver لكي يُعاد rent إلى الجهة الدافعة المسجَّلة.
  • أغلق PDAs الخاصة بالتفويض الثابت والمتكرر والاشتراكي قبل إغلاق Subscription Authority.
  • إذا أنشأ المستخدم تفويضاً جديداً لاحقاً، قم بتهيئة Subscription Authority جديدة لنفس الـ mint.
  • الإغلاق لا يمسح موافقة مفوَّض الرمز. استخدم RevokeSubscriptionAuthority لإزالتها من token account الخاص بالمستخدم.

Is this page helpful?

جدول المحتويات

تعديل الصفحة