PagamentiAbbonamenti

Revoca Deleghe e Sottoscrizioni Abbandonate

Le deleghe e le sottoscrizioni trattengono il rent che normalmente viene restituito al pagante registrato alla revoca. Se uno sponsor ha finanziato l'account e l'utente in seguito chiude o sostituisce il proprio Subscription Authority, l'account rimane bloccato e il suo rent è inaccessibile. RevokeAbandonedDelegation e RevokeAbandonedSubscription consentono al pagante registrato di recuperarlo.

Quando Si Applica

Consentito solo quando il Subscription Authority dell'account è provabilmente terminale — chiuso, oppure chiuso e ricreato (così init_id non corrisponde più). Una delega o sottoscrizione attiva non può mai essere chiusa in questo modo.

RevokeAbandonedDelegationRevokeAbandonedSubscription
ChiudePDA di delega fissa o ricorrentePDA di sottoscrizione
FirmatarioPagante registratoPagante registrato
AccountDelega + authority registrataSottoscrizione + authority registrata + piano
Idoneo quandoAuthority chiusa, o ricreata (mancata corrispondenza di init_id)Lo stesso, per il mint del piano — il mint viene letto dal piano associato, quindi un'authority non correlata non può essere sostituita per forzare la chiusura
Usa invece la revoca ordinaria quandoLa delega è scaduta o completamente spesaLa sottoscrizione è annullata e scaduta

RevokeAbandonedDelegation è anche l'unica via di recupero per il pagante registrato nel caso di una delega senza scadenza (expiry_ts == 0) non completamente spesa: la revoca ordinaria si attiva per il pagante solo alla scadenza o, per una delega fissa, al completamento della spesa.

Revoca di una Delega Abbandonata

Il pagante registrato firma. Passa il PDA della delega inattiva e il suo Subscription Authority registrato (che potrebbe essere già chiuso). Il rent viene restituito al pagante.

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,
});

Revocare una Sottoscrizione Abbandonata

Il pagante registrato firma. Passa il PDA della sottoscrizione abbandonata, la sua Subscription Authority registrata (che potrebbe essere già chiusa) e il piano a cui appartiene la sottoscrizione. Il rent viene restituito al pagante.

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,
});

Note

  • Il pagante registrato firma, non il delegante, il delegatario o il sottoscrittore.
  • Entrambe le istruzioni falliscono se la Subscription Authority è ancora attiva per l'account — usa invece la revoca ordinaria.
  • RevokeAbandonedDelegation funziona sia per le deleghe fisse che per quelle ricorrenti.

Is this page helpful?

Indice dei contenuti

Modifica pagina
© 2026 Solana Foundation. Tutti i diritti riservati.