PagamentosAssinaturas
Uma Autoridade de Assinatura é o PDA que o programa usa como delegado de Token SPL para a token account de um usuário. Feche-a quando o usuário não tiver mais delegações fixas ativas, delegações recorrentes ou delegações de assinatura para esse mint.
Fechar a conta retorna seu rent ao financiador de lamport da conta e revoga a aprovação de delegado de token pertencente ao programa. O financiador geralmente é o usuário, mas pode ser qualquer pagador que financiou a conta de Autoridade de Assinatura. Se alguma delegação ativa ainda depender da autoridade, feche essas delegações primeiro.
Fechar a Autoridade
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();
Observações
- O usuário assina a transação de fechamento.
- Se um patrocinador financiou a Autoridade de Assinatura, passe essa conta de
patrocinador como
receiverpara que o rent retorne ao pagador registrado. - Feche os PDAs de delegação fixa, recorrente e de assinatura antes de fechar a Autoridade de Assinatura.
- Se o usuário criar uma nova delegação posteriormente, inicialize uma nova Autoridade de Assinatura para o mesmo mint.
Is this page helpful?