ZahlungenAbonnements

Aufgabe von verlassenen Delegierungen und Abonnements widerrufen

Delegierungen und Abonnements halten rent, die bei einem Widerruf normalerweise an den eingetragenen Zahler zurückfließt. Wenn ein Sponsor das Konten finanziert hat und der Benutzer später seine Subscription Authority schließt oder ersetzt, ist das Konten verwaist und sein rent steckt fest. RevokeAbandonedDelegation und RevokeAbandonedSubscription ermöglichen es dem eingetragenen Zahler, diesen zurückzufordern.

Wann es gilt

Nur zulässig, wenn die Subscription Authority des Kontos nachweislich terminal ist – geschlossen oder geschlossen und neu erstellt (sodass init_id nicht mehr übereinstimmt). Eine aktive Delegierung oder ein aktives Abonnement kann auf diese Weise niemals geschlossen werden.

RevokeAbandonedDelegationRevokeAbandonedSubscription
SchließtFeste oder wiederkehrende Delegierungs-PDAAbonnement-PDA
SignerEingetragener ZahlerEingetragener Zahler
KontenDelegierung + eingetragene AuthorityAbonnement + eingetragene Authority + Plan
Berechtigt wennAuthority geschlossen oder neu erstellt (init_id stimmt nicht überein)Dasselbe gilt für den Mint des Plans – der Mint wird aus dem gebundenen Plan ausgelesen, sodass eine unabhängige Authority nicht eingesetzt werden kann, um ein Schließen zu erzwingen
Stattdessen normalen Widerruf verwenden, wennDelegierung ist abgelaufen oder vollständig aufgebrauchtAbonnement ist storniert und abgelaufen

RevokeAbandonedDelegation ist außerdem der einzige Wiederherstellungsweg des eingetragenen Zahlers für eine niemals ablaufende Delegierung (expiry_ts == 0), die nicht vollständig aufgebraucht ist: Der normale Widerruf greift für den Zahler nur bei Ablauf oder – bei einer festen Delegierung – bei vollständigem Verbrauch.

Eine verlassene Delegierung widerrufen

Der eingetragene Zahler unterschreibt. Übergeben Sie die inaktive Delegierungs-PDA und ihre eingetragene Subscription Authority (die möglicherweise bereits geschlossen ist). Der rent wird an den Zahler zurückgegeben.

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

Ein aufgegebenes Abonnement widerrufen

Der eingetragene Zahler unterzeichnet. Übergeben Sie die PDA des aufgegebenen Abonnements, die eingetragene Abonnement-Autorität (die möglicherweise bereits geschlossen ist) und den Plan, zu dem das Abonnement gehört. rent wird an den Zahler zurückgegeben.

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

Hinweise

  • Der eingetragene Zahler unterzeichnet, nicht der Delegierende, der Delegierte oder der Abonnent.
  • Beide Anweisungen schlagen fehl, wenn die Abonnement-Autorität für das Konten noch aktiv ist – verwenden Sie stattdessen den normalen Widerruf.
  • RevokeAbandonedDelegation funktioniert sowohl für feste als auch für wiederkehrende Delegierungen.

Is this page helpful?

Inhaltsverzeichnis

Seite bearbeiten
© 2026 Solana Foundation. Alle Rechte vorbehalten.