PagamentosAssinaturas

Revogar Delegações e Subscrições Abandonadas

Delegações e subscrições retêm rent que normalmente é devolvido ao pagador registado na revogação. Se um patrocinador financiou a conta e o utilizador posteriormente fecha ou substitui a sua Subscription Authority, a conta fica abandonada e o seu rent bloqueado. RevokeAbandonedDelegation e RevokeAbandonedSubscription permitem que o pagador registado o recupere.

Quando Se Aplica

Permitido apenas quando a Subscription Authority da conta é comprovadamente terminal — fechada, ou fechada e recriada (de modo que init_id já não corresponde). Uma delegação ou subscrição ativa nunca pode ser fechada desta forma.

RevokeAbandonedDelegationRevokeAbandonedSubscription
FechaPDA de delegação fixa ou recorrentePDA de subscrição
SignatárioPagador registadoPagador registado
ContasDelegação + autoridade registadaSubscrição + autoridade registada + plano
Elegível quandoAutoridade fechada ou recriada (incompatibilidade de init_id)O mesmo, para o mint do plano — o mint é lido do plano associado, pelo que uma autoridade não relacionada não pode ser substituída para forçar o fecho
Use a revogação normal quandoA delegação está expirada ou totalmente gastaA subscrição está cancelada e expirada

RevokeAbandonedDelegation é também o único caminho de recuperação do pagador registado para uma delegação sem expiração (expiry_ts == 0) que não está totalmente gasta: a revogação normal é acionada para o pagador apenas na expiração ou, no caso de uma delegação fixa, no gasto total.

Revogar uma Delegação Abandonada

O pagador registado assina. Passe o PDA de delegação inativa e a sua Subscription Authority registada (que pode já estar fechada). O rent é devolvido ao pagador.

import { getRevokeAbandonedDelegationInstruction } from '@solana/subscriptions';
// Build the instruction and send it in a transaction like any other.
const revokeAbandonedIx = getRevokeAbandonedDelegationInstruction({
payer: payerSigner,
delegationAccount: delegationPda,
subscriptionAuthority: subscriptionAuthorityPda,
});

Revogar uma Assinatura Abandonada

O pagador registado assina. Passe o PDA da assinatura abandonada, a sua Autoridade de Assinatura registada (que pode já estar encerrada) e o plano ao qual a assinatura pertence. O rent é devolvido ao pagador.

import { getRevokeAbandonedSubscriptionInstruction } from '@solana/subscriptions';
// Build the instruction and send it in a transaction like any other.
const revokeAbandonedIx = getRevokeAbandonedSubscriptionInstruction({
payer: payerSigner,
subscriptionAccount: subscriptionPda,
subscriptionAuthority: subscriptionAuthorityPda,
planPda,
});

Notas

  • O pagador registado assina, não o delegador, o delegatário ou o assinante.
  • Ambas as instruções falham se a Autoridade de Assinatura ainda estiver ativa para a conta — utilize a revogação normal em vez disso.
  • RevokeAbandonedDelegation funciona tanto para delegações fixas como recorrentes.

Is this page helpful?

Índice

Editar Página
© 2026 Fundação Solana. Todos os direitos reservados.