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.
RevokeAbandonedDelegation | RevokeAbandonedSubscription | |
|---|---|---|
| Chiude | PDA di delega fissa o ricorrente | PDA di sottoscrizione |
| Firmatario | Pagante registrato | Pagante registrato |
| Account | Delega + authority registrata | Sottoscrizione + authority registrata + piano |
| Idoneo quando | Authority 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 quando | La delega è scaduta o completamente spesa | La 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.
RevokeAbandonedDelegationfunziona sia per le deleghe fisse che per quelle ricorrenti.
Is this page helpful?