MaksutTilaukset

Tilausvaltuutuksen sulkeminen

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?

Sisällysluettelo

Muokkaa sivua
© 2026 Solana Foundation. Kaikki oikeudet pidätetään.