ПлатежіПідписки
Повноваження Підписки — це PDA, який програма використовує як делегат SPL Token для облікового запису токенів користувача. Закрийте його, коли користувач більше не має активних фіксованих делегувань, регулярних делегувань або делегувань підписки для цього мінту.
Закриття облікового запису повертає його rent фінансувальнику lamport облікового запису та скасовує затвердження делегата токенів, що належить програмі. Зазвичай фінансувальником є користувач, але це може бути будь-який платник, який профінансував обліковий запис Повноважень Підписки. Якщо будь-яке активне делегування все ще залежить від повноважень, спочатку закрийте ці делегування.
Закриття Повноважень
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();
Примітки
- Користувач підписує транзакцію закриття.
- Якщо спонсор профінансував Повноваження Підписки, передайте цей обліковий
запис спонсора як
receiver, щоб rent повернувся зареєстрованому платнику. - Закрийте PDA фіксованих, регулярних і підписних делегувань перед закриттям Повноважень Підписки.
- Якщо користувач створить нове делегування пізніше, ініціалізуйте нові Повноваження Підписки для того самого мінту.
Is this page helpful?