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

Επισκόπηση

Το Πρόγραμμα Εξουσιοδότησης Συνδρομών επιτρέπει στους προγραμματιστές να δώσουν τη δυνατότητα στους χρήστες να εγκρίνουν μελλοντικές μεταφορές token από τα πορτοφόλια τους με σαφή όρια. Είναι σχεδιασμένο για επαναλαμβανόμενες πληρωμές, συνδρομές, χρεώσεις εμπόρων και άλλες ροές όπου ο χρήστης δεν θα πρέπει να υπογράφει χειροκίνητα κάθε μεταφορά.

Σκοπός

Τα token account του Solana μπορούν να εγκρίνουν μια άλλη εξουσία για τη μετακίνηση token, αλλά κάθε token account μπορεί να έχει μόνο μία εγκεκριμένη εξουσία κάθε φορά. Αυτό καθιστά δύσκολο για ένα πορτοφόλι να υποστηρίζει με ασφάλεια πολλές ρυθμίσεις δαπανών για το ίδιο token, όπως μια μηνιαία συνδρομή, ένα καθορισμένο όριο δαπανών και μια συμφωνία χρέωσης με έμπορο.

Αυτό το πρόγραμμα επιλύει το πρόβλημα δίνοντας σε κάθε ζεύγος (user, token mint) μια Εξουσία Συνδρομής ελεγχόμενη από το πρόγραμμα. Το token account του χρήστη εγκρίνει αυτή την εξουσία μία φορά. Το πρόγραμμα στη συνέχεια ελέγχει κάθε αιτούμενη μεταφορά έναντι μιας ξεχωριστής εγγραφής που ορίζει ποιος μπορεί να αποσύρει κεφάλαια, πόσα μπορεί να αποσύρει και πότε λήγει ή επαναφέρεται η εξουσιοδότηση.

Η Εξουσία Συνδρομής δεν μπορεί από μόνη της να μετακινήσει κεφάλαια. Μια μεταφορά επιτυγχάνει μόνο όταν ταιριάζει με μία από τις ενεργές εξουσιοδοτήσεις του χρήστη.

Αναγνωριστικό Προγράμματος

De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44

Το αναγνωριστικό του προγράμματος δηλώνεται στο program/src/lib.rs. Οι τοπικές ροές εργασίας Surfpool εγκαθιστούν το πρόγραμμα σε αυτή την κανονική διεύθυνση.

Μοντέλα Εξουσιοδότησης

Το πρόγραμμα υποστηρίζει τρία μοντέλα εξουσιοδότησης:

ΜοντέλοΣκοπός
Σταθερή εξουσιοδότησηΕπιτρέπει σε ένα άλλο πορτοφόλι ή υπηρεσία να δαπανήσει έως ένα καθορισμένο συνολικό ποσό, προαιρετικά μέχρι μια ημερομηνία λήξης.
Επαναλαμβανόμενη εξουσιοδότησηΕπιτρέπει σε ένα άλλο πορτοφόλι ή υπηρεσία να δαπανήσει έως ένα όριο που επαναφέρεται κάθε περίοδο, όπως ημερησίως, εβδομαδιαίως ή μηνιαίως.
Σχέδιο συνδρομήςΕπιτρέπει σε έναν έμπορο να δημοσιεύσει όρους χρέωσης που οι χρήστες μπορούν να αποδεχτούν, και στη συνέχεια επιτρέπει σε εγκεκριμένους εισπράκτορες να χρεώνουν τους συνδρομητές σε κάθε περίοδο χρέωσης.

Υποστηριζόμενα Tokens

Υποστηρίζει όλα τα mints από SPL Token και Token-2022.

Για mints Token-2022 με διαμορφωμένο TransferHook, το πρόγραμμα προωθεί τους λογαριασμούς hook του mint (πρόγραμμα hook, ExtraAccountMetaList PDA, επιπλέον) στο TransferChecked CPI σε κάθε εκχωρημένη μεταφορά, ώστε να επιβάλλεται η πολιτική hook. Το SDK τα επιλύει αυτόματα:

  • Πρόγραμμα-πελάτης plugin (transferFixed, transferRecurring, transferSubscription) — προστίθενται αυτόματα.
  • Χειροκίνητη κατασκευή — καλέστε resolveTransferHookAccounts, περάστε transferHookAccounts.

Συμβάντα On-Chain

Το πρόγραμμα εκπέμπει συμβάντα on-chain μέσω self-CPI, ώστε indexers και εφαρμογές να μπορούν να παρακολουθούν τη δραστηριότητα. Όλα τα συμβάντα είναι καταχωρημένα στο δημοσιευμένο IDL, οπότε τα παραγόμενα προγράμματα-πελάτες μπορούν να τα αποκωδικοποιούν. Τα εκπεμπόμενα συμβάντα είναι:

  • FixedTransferEvent, RecurringTransferEvent και SubscriptionTransferEvent — ένα ανά εκχωρημένη μεταφορά. Κάθε ένα φέρει το πιστωμένο receiverTokenAccount· το SubscriptionTransferEvent φέρει επίσης το puller.
  • SubscriptionCreatedEvent, SubscriptionCancelledEvent και SubscriptionResumedEvent — κύκλος ζωής συνδρομής. Το SubscriptionCreatedEvent φέρει το payer.
  • PlanUpdatedEvent — εκπέμπεται όταν ενημερώνεται ένα πλάνο.

Εκδόσεις

Τα αρχεία που ανήκουν στο πρόγραμμα περιλαμβάνουν πεδίο έκδοσης. Αυτό παρέχει στο πρόγραμμα έναν τρόπο αναβάθμισης των δεδομένων λογαριασμού με την πάροδο του χρόνου, χωρίς να επηρεάζονται οι υπάρχοντες χρήστες. Η στρατηγική μετεγκατάστασης υποστηρίζει:

  • Lazy ενημέρωση in-place
  • Ρητή εντολή migrate
  • Ανάκληση και εναλλακτική αναδημιουργία

Συνεισφέροντες

Το έργο συντηρείται από συνεισφέροντες στο αποθετήριο solana-program/subscriptions.

Κατάσταση Ελέγχου

Το πρόγραμμα έχει ελεγχθεί από την Cantina. Η κατάσταση ελέγχου, η αρχική δέσμευση (baseline commit), η δέσμευση επαλήθευσης διορθώσεων (fix-verified commit) και το τρέχον μη ελεγμένο delta παρακολουθούνται στον κατάλογο audits/ του αποθετηρίου.

Εφαρμογή Demo

Αν θέλετε να πειραματιστείτε με το πρόγραμμα μόνοι σας, μπορείτε να δείτε μια παραδειγματική εφαρμογή εδώ για να δείτε μια ολοκληρωμένη υλοποίηση των εννοιών που καλύπτονται σε αυτήν την ενότητα.

Is this page helpful?

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

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