BetalingenAbonnementen

Verlaten Delegaties en Abonnementen Intrekken

Delegaties en abonnementen bevatten rent die bij intrekking normaal gesproken terugkeert naar de geregistreerde betaler. Als een sponsor het account heeft gefinancierd en de gebruiker later hun Subscription Authority sluit of vervangt, raakt het account verlaten en blijft de rent vaststaan. RevokeAbandonedDelegation en RevokeAbandonedSubscription stellen de geregistreerde betaler in staat deze terug te vorderen.

Wanneer Van Toepassing

Alleen toegestaan wanneer de Subscription Authority van het account aantoonbaar definitief is — gesloten, of gesloten en opnieuw aangemaakt (zodat init_id niet meer overeenkomt). Een actieve delegatie of abonnement kan op deze manier nooit worden gesloten.

RevokeAbandonedDelegationRevokeAbandonedSubscription
SluitVaste of terugkerende delegatie PDAAbonnement PDA
OndertekenaarGeregistreerde betalerGeregistreerde betaler
AccountsDelegatie + geregistreerde authorityAbonnement + geregistreerde authority + plan
Toegestaan wanneerAuthority gesloten, of opnieuw aangemaakt (init_id komt niet overeen)Hetzelfde, voor de mint van het plan — de mint wordt uitgelezen uit het gekoppelde plan, zodat een niet-gerelateerde authority niet kan worden gebruikt om een sluiting af te dwingen
Gebruik gewone intrekking wanneerDelegatie is verlopen of volledig besteedAbonnement is geannuleerd en verlopen

RevokeAbandonedDelegation is ook het enige herstelpad van de geregistreerde betaler voor een nooit-verlopende delegatie (expiry_ts == 0) die niet volledig besteed is: gewone intrekking wordt voor de betaler alleen uitgevoerd bij vervaldatum of, voor een vaste delegatie, bij volledige besteding.

Een Verlaten Delegatie Intrekken

De geregistreerde betaler ondertekent. Geef de inactieve delegatie PDA en de bijbehorende geregistreerde Subscription Authority op (die mogelijk al gesloten is). Rent keert terug naar de betaler.

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

Een Verlaten Abonnement Intrekken

De geregistreerde betaler ondertekent. Geef de verlaten abonnements-PDA door, de bijbehorende geregistreerde Subscription Authority (die mogelijk al gesloten is), en het plan waartoe het abonnement behoort. rent wordt teruggestort naar de betaler.

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

Opmerkingen

  • De geregistreerde betaler ondertekent, niet de delegator, gedelegeerde of abonnee.
  • Beide instructies mislukken als de Subscription Authority nog actief is voor het account — gebruik in dat geval gewoon intrekken.
  • RevokeAbandonedDelegation werkt voor zowel vaste als terugkerende delegaties.

Is this page helpful?

Inhoudsopgave

Pagina Bewerken
© 2026 Solana Foundation. Alle rechten voorbehouden.