Subscription Authority on PDA, jota ohjelma käyttää SPL Token -delegaattina käyttäjän token-tilille. Sulje se, kun käyttäjällä ei ole enää aktiivisia kiinteitä delegointeja, toistuvia delegointeja tai tilausdelegointeja kyseiselle mintille.
Sulkeminen palauttaa tilin rent-maksun sen rahoittajalle (käyttäjälle tai muulle maksajalle, joka on sen rahoittanut). Sulje kaikki aktiiviset delegoinnit ensin.
Sulkeminen ei poista SPL Token -valtuutushyväksyntää. Kun PDA on poistettu, hyväksyntä on toimeton, mutta se pysyy token account -tilillä kunnes se peruutetaan — katso Peruuta Valtuutushyväksyntä.
Sulje Auktoriteetti
import { address, createClient } from '@solana/kit';import { solanaLocalRpc } from '@solana/kit-plugin-rpc';import { signer } from '@solana/kit-plugin-signer';import {findSubscriptionAuthorityPda,subscriptionsProgram,} from '@solana/subscriptions';const client = createClient().use(signer(userSigner)).use(solanaLocalRpc({ rpcUrl: 'http://127.0.0.1:8899' })).use(subscriptionsProgram());const tokenMint = address('TOKEN_MINT_ADDRESS_HERE');const [subscriptionAuthorityPda] = await findSubscriptionAuthorityPda({user: userSigner.address,tokenMint,});await client.subscriptions.instructions.closeSubscriptionAuthority({user: userSigner,tokenMint,// Include this only when a sponsor funded the Subscription Authority.receiver: sponsorSigner.address,}).sendTransaction();
Peruuta Valtuutushyväksyntä
RevokeSubscriptionAuthority poistaa jäljelle jääneen valtuutusmerkinnän
käyttäjän token account -tililtä. Se kutsuu token program -ohjelman
Revoke-funktiota käyttäjän allekirjoittamana, joten se toimii riippumatta
siitä, onko Subscription Authority vielä olemassa. Lähetä se erillisenä tai
yhdessä CloseSubscriptionAuthority:n kanssa.
Välitä mintin omistava token program: TOKEN_PROGRAM_ADDRESS SPL Token
-minteille tai TOKEN_2022_PROGRAM_ADDRESS (paketista
@solana-program/token-2022) Token-2022 -minteille.
import { TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';await client.subscriptions.instructions.revokeSubscriptionAuthority({user: userSigner,tokenMint,tokenProgram: TOKEN_PROGRAM_ADDRESS,}).sendTransaction();
Huomioita
- Käyttäjä allekirjoittaa sulkemistransaktion.
- Jos sponsori on rahoittanut Subscription Authority -auktoriteetin, välitä
kyseinen sponsoritili
receiver-parametrina, jotta rent palautuu kirjatulle maksajalle. - Sulje kiinteät, toistuvat ja tilausdelegointiin liittyvät PDA:t ennen Subscription Authority -auktoriteetin sulkemista.
- Jos käyttäjä luo myöhemmin uuden delegoinnin, alusta uusi Subscription Authority samalle mintille.
- Sulkeminen ei poista token-valtuutusmerkintää. Käytä
RevokeSubscriptionAuthority:ää sen poistamiseen käyttäjän token account -tililtä.
Is this page helpful?