PłatnościSubskrypcje

Przegląd

Program Delegacji Subskrypcji umożliwia deweloperom pozwolenie użytkownikom na autoryzację przyszłych transferów tokenów z ich portfeli z wyraźnymi limitami. Jest zaprojektowany do płatności cyklicznych, subskrypcji, rozliczeń handlowych i innych przepływów, w których użytkownik nie powinien podpisywać ręcznie każdego transferu.

Cel

Konta tokenów Solana mogą zatwierdzić inny autorytet do przenoszenia tokenów, ale każde konto tokenu może mieć tylko jeden zatwierdzony autorytet na raz. To utrudnia bezpieczne wspieranie przez jeden portfel kilku ustaleń wydatkowania dla tego samego tokenu, takich jak miesięczna subskrypcja, stały limit wydatków i umowa rozliczeniowa z handlowcem.

Ten program rozwiązuje to poprzez nadanie każdej parze (user, token mint) kontrolowany przez program Autorytet Subskrypcji. Konto tokenu użytkownika zatwierdza ten autorytet jednokrotnie. Program następnie sprawdza każdy żądany transfer względem oddzielnego rekordu, który definiuje, kto może pobierać środki, ile może pobrać i kiedy autoryzacja wygasa lub się resetuje.

Autorytet Subskrypcji nie może przenosić środków samodzielnie. Transfer kończy się sukcesem tylko wtedy, gdy pasuje do jednej z aktywnych autoryzacji użytkownika.

Identyfikator Programu

De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44

Identyfikator programu jest zadeklarowany w program/src/lib.rs. Lokalne przepływy pracy Surfpool instalują program pod tym kanonicznym adresem.

Modele Delegacji

Program obsługuje trzy modele autoryzacji:

ModelCel
Delegacja stałaPozwól innemu portfelowi lub usłudze wydać do ustalonej kwoty całkowitej, opcjonalnie do czasu wygaśnięcia.
Delegacja cyklicznaPozwól innemu portfelowi lub usłudze wydać do limitu, który resetuje się co okres, np. codziennie, co tydzień lub co miesiąc.
Plan subskrypcjiPozwól handlowcowi opublikować warunki rozliczeniowe, które użytkownicy mogą zaakceptować, następnie zezwól zatwierdzonym podmiotom na obciążanie subskrybentów w każdym okresie rozliczeniowym.

Obsługiwane tokeny

Program obsługuje tokeny utworzone zarówno za pomocą SPL Token, jak i Token-2022. Jedynym rozszerzeniem Token-2022, które jest odrzucane, jest skonfigurowany TransferHook (gdzie hook authority lub program_id jest ustawiony). Nieaktywny TransferHook (oba nieustawione, a zatem trwale niezmienne) oraz wszystkie inne rozszerzenia są dozwolone.

Zdarzenia on-chain

Program emituje zdarzenia on-chain, dzięki czemu indeksery i aplikacje mogą śledzić istotną aktywność. Zdarzenia te obejmują zmiany subskrypcji oraz transfery realizowane za pośrednictwem przepływów o stałej częstotliwości, cyklicznych i planów subskrypcyjnych.

Wersjonowanie

Rekordy należące do programu zawierają pole wersji. Daje to programowi możliwość aktualizacji danych konta w miarę upływu czasu bez zakłócania działania istniejących użytkowników. Strategia migracji obsługuje:

  • Leniwą aktualizację w miejscu
  • Jawną instrukcję migracji
  • Cofnięcie i ponowne utworzenie jako rozwiązanie awaryjne

Kontrybutorzy

Projekt jest utrzymywany przez kontrybutorów repozytorium solana-program/subscriptions.

Status audytu

Program został poddany audytowi przez Cantina. Status audytu, commit bazowy, commit ze zweryfikowanymi poprawkami oraz bieżąca nieaudytowana różnica są śledzone w katalogu audits/ repozytorium.

Aplikacja demonstracyjna

Jeśli chcesz samodzielnie pobawić się programem, możesz zobaczyć przykładową aplikację tutaj, aby zapoznać się z kompleksową implementacją konceptów omówionych w tej sekcji.

Is this page helpful?

Spis treści

Edytuj stronę