ΠληρωμέςΣυνδρομές

Κλείσιμο Εξουσίας Συνδρομής

Η Εξουσία Συνδρομής είναι το PDA που χρησιμοποιεί το πρόγραμμα ως εκπρόσωπος SPL Token για τον λογαριασμό token ενός χρήστη. Κλείστε το όταν ο χρήστης δεν έχει πλέον ενεργές σταθερές εξουσιοδοτήσεις, επαναλαμβανόμενες εξουσιοδοτήσεις ή εξουσιοδοτήσεις συνδρομής για αυτό το mint.

Το κλείσιμο επιστρέφει το rent του λογαριασμού στον χρηματοδότη του (τον χρήστη ή όποιον πληρωτή το χρηματοδότησε). Κλείστε πρώτα τυχόν ενεργές εκχωρήσεις.

Το κλείσιμο δεν διαγράφει την έγκριση πληρεξουσίου SPL Token. Μόλις εξαφανιστεί το PDA, η έγκριση είναι ανενεργή, αλλά παραμένει στο token account μέχρι να ανακληθεί — δείτε Ανάκληση Έγκρισης Πληρεξουσίου.

Κλείσιμο της Αρχής

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();

Ανάκληση Έγκρισης Πληρεξουσίου

Το RevokeSubscriptionAuthority διαγράφει την εναπομείνασα έγκριση πληρεξουσίου από το token account του χρήστη. Καλεί το Revoke του Token Program, υπογεγραμμένο από τον χρήστη, οπότε λειτουργεί ανεξάρτητα από το αν η Αρχή Συνδρομής εξακολουθεί να υπάρχει. Στείλτε το αυτόνομα ή μαζί με το CloseSubscriptionAuthority.

Περάστε το Token Program που κατέχει το mint: TOKEN_PROGRAM_ADDRESS για SPL Token mints, ή TOKEN_2022_PROGRAM_ADDRESS (από το @solana-program/token-2022) για Token-2022 mints.

import { TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';
await client.subscriptions.instructions
.revokeSubscriptionAuthority({
user: userSigner,
tokenMint,
tokenProgram: TOKEN_PROGRAM_ADDRESS,
})
.sendTransaction();

Σημειώσεις

  • Ο χρήστης υπογράφει τη συναλλαγή κλεισίματος.
  • Εάν ένας χορηγός χρηματοδότησε την Αρχή Συνδρομής, περάστε τον λογαριασμό του χορηγού ως receiver ώστε το rent να επιστραφεί στον καταγεγραμμένο πληρωτή.
  • Κλείστε τα PDAs σταθερής, επαναλαμβανόμενης και συνδρομής εκχώρησης πριν κλείσετε την Αρχή Συνδρομής.
  • Εάν ο χρήστης δημιουργήσει νέα εκχώρηση αργότερα, αρχικοποιήστε μια νέα Αρχή Συνδρομής για το ίδιο mint.
  • Το κλείσιμο δεν διαγράφει την έγκριση πληρεξουσίου token. Χρησιμοποιήστε το RevokeSubscriptionAuthority για να το αφαιρέσετε από το token account του χρήστη.

Is this page helpful?

Πίνακας Περιεχομένων

Επεξεργασία Σελίδας
© 2026 Ίδρυμα Solana. Με επιφύλαξη παντός δικαιώματος.