Delegoinnit ja tilaukset pitävät hallussaan rent-maksuja, jotka normaalisti
palautuvat niille kirjatulle maksajalle peruutuksen yhteydessä. Jos sponsori
rahoitti tilin ja käyttäjä myöhemmin sulkee tai korvaa Subscription
Authoritynsa, tili jää jumiin ja sen rent-maksut jumiutuvat.
RevokeAbandonedDelegation ja RevokeAbandonedSubscription antavat kirjatulle
maksajalle mahdollisuuden periä ne takaisin.
Milloin Se Soveltuu
Sallittu ainoastaan silloin, kun tilin Subscription Authority on todistettavasti
päättynyt — suljettu tai suljettu ja uudelleenluotu (jolloin init_id ei enää
täsmää). Aktiivista delegointia tai tilausta ei voi koskaan sulkea tällä tavoin.
RevokeAbandonedDelegation | RevokeAbandonedSubscription | |
|---|---|---|
| Sulkee | Kiinteän tai toistuvan delegoinnin PDA:n | Tilauksen PDA:n |
| Allekirjoittaja | Kirjattu maksaja | Kirjattu maksaja |
| Tilit | Delegointi + kirjattu authority | Tilaus + kirjattu authority + suunnitelma |
| Kelpaa kun | Authority suljettu tai uudelleenluotu (init_id ei täsmää) | Sama, suunnitelman mintille — mint luetaan sidotusta suunnitelmasta, joten liittymätöntä authoritya ei voi korvata sulkemisen pakottamiseksi |
| Käytä tavallista peruutusta sen sijaan kun | Delegointi on vanhentunut tai täysin käytetty | Tilaus on peruutettu ja vanhentunut |
RevokeAbandonedDelegation on myös kirjatun maksajan ainoa palautuskeino
ikuisesti voimassa olevalle delegoinnille (expiry_ts == 0), jota ei ole täysin
käytetty: tavallinen peruutus aktivoituu maksajalle vain vanhentumisen
yhteydessä tai, kiinteän delegoinnin tapauksessa, täyden käytön myötä.
Peruuta Hylätty Delegointi
Kirjattu maksaja allekirjoittaa. Anna päättyneen delegoinnin PDA ja sen kirjattu Subscription Authority (joka saattaa jo olla suljettu). Rent palautuu maksajalle.
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,});
Peruuta hylätty tilaus
Rekisteröity maksaja allekirjoittaa. Anna hylätyn tilauksen PDA, sen rekisteröity Subscription Authority (joka saattaa olla jo suljettu) ja suunnitelma, johon tilaus kuuluu. rent palautuu maksajalle.
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,});
Huomioita
- Rekisteröity maksaja allekirjoittaa, ei valtuuttaja, valtuutettu eikä tilaaja.
- Molemmat ohjeet epäonnistuvat, jos Subscription Authority on edelleen aktiivinen tilille — käytä sen sijaan tavallista peruutusta.
RevokeAbandonedDelegationtoimii sekä kiinteille että toistuvaisvaltuutuksille.
Is this page helpful?