PłatnościSubskrypcje

Cofnij Opuszczone Delegacje i Subskrypcje

Delegacje i subskrypcje przechowują rent, który normalnie wraca do zarejestrowanego płatnika po cofnięciu. Jeśli sponsor sfinansował konto, a użytkownik później zamknie lub zastąpi swoje Subscription Authority, konto zostaje porzucone, a jego rent zablokowany. RevokeAbandonedDelegation i RevokeAbandonedSubscription pozwalają zarejestrowanemu płatnikowi je odzyskać.

Kiedy to dotyczy

Dozwolone tylko wtedy, gdy Subscription Authority konta jest jednoznacznie zakończone — zamknięte lub zamknięte i odtworzone (tak że init_id już nie pasuje). Aktywna delegacja lub subskrypcja nigdy nie może zostać zamknięta w ten sposób.

RevokeAbandonedDelegationRevokeAbandonedSubscription
ZamykaPDA delegacji stałej lub cyklicznejPDA subskrypcji
PodpisującyZarejestrowany płatnikZarejestrowany płatnik
KontaDelegacja + zarejestrowane authoritySubskrypcja + zarejestrowane authority + plan
Kwalifikuje się gdyAuthority zamknięte lub odtworzone (niezgodność init_id)To samo, dla mint planu — mint jest odczytywany z powiązanego planu, więc niepowiązane authority nie może zostać podstawione, by wymusić zamknięcie
Użyj zwykłego cofnięcia gdyDelegacja jest wygasła lub w pełni wykorzystanaSubskrypcja jest anulowana i wygasła

RevokeAbandonedDelegation jest również jedyną ścieżką odzyskania dla zarejestrowanego płatnika delegacji bez terminu wygaśnięcia (expiry_ts == 0), która nie jest w pełni wykorzystana: zwykłe cofnięcie działa dla płatnika tylko po wygaśnięciu lub, w przypadku delegacji stałej, po pełnym wykorzystaniu.

Cofnij Opuszczoną Delegację

Zarejestrowany płatnik podpisuje. Przekaż porzucone PDA delegacji i jego zarejestrowane Subscription Authority (które może być już zamknięte). Rent wraca do płatnika.

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

Cofnij Porzuconą Subskrypcję

Zarejestrowany płatnik podpisuje transakcję. Przekaż porzucone PDA subskrypcji, zarejestrowany Organ Subskrypcji (który może być już zamknięty) oraz plan, do którego należy subskrypcja. rent wraca do płatnika.

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

Uwagi

  • Podpisuje zarejestrowany płatnik, a nie delegator, delegat ani subskrybent.
  • Obie instrukcje kończą się niepowodzeniem, jeśli Organ Subskrypcji jest nadal aktywny dla danego konta — zamiast tego użyj zwykłego cofnięcia.
  • RevokeAbandonedDelegation działa zarówno dla delegacji stałych, jak i cyklicznych.

Is this page helpful?

Spis treści

Edytuj stronę