ÖdemelerAbonelikler

Genel Bakış

Abonelik Delegasyonu Programı, geliştiricilerin kullanıcıların cüzdanlarından açık limitlerle gelecekteki token transferlerini yetkilendirmelerine olanak tanır. Yinelenen ödemeler, abonelikler, satıcı faturalandırması ve kullanıcının her transferi manuel olarak imzalamaması gereken diğer akışlar için tasarlanmıştır.

Amaç

Solana token hesapları, tokenleri taşımak için başka bir yetkiyi onaylayabilir, ancak her token hesabı aynı anda yalnızca bir onaylı yetkiye sahip olabilir. Bu, bir cüzdanın aynı token için aylık abonelik, sabit harcama limiti ve satıcı faturalandırma anlaşması gibi birden fazla harcama düzenlemesini güvenli bir şekilde desteklemesini zorlaştırır.

Bu program, her (user, token mint) çiftine program kontrollü bir Abonelik Yetkisi vererek bunu çözer. Kullanıcının token hesabı bu yetkiyi bir kez onaylar. Program daha sonra talep edilen her transferi, kimin fon çekebileceğini, ne kadar çekebileceğini ve yetkilendirmenin ne zaman sona ereceğini veya sıfırlanacağını tanımlayan ayrı bir kayıtla kontrol eder.

Abonelik Yetkisi fonları kendi başına taşıyamaz. Bir transfer, yalnızca kullanıcının etkin yetkilendirmelerinden biriyle eşleştiğinde başarılı olur.

Program Kimliği

De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44

Program kimliği program/src/lib.rs içinde bildirilir. Yerel Surfpool iş akışları programı bu standart adreste yükler.

Delegasyon Modelleri

Program üç yetkilendirme modelini destekler:

ModelAmaç
Sabit delegasyonBaşka bir cüzdanın veya hizmetin isteğe bağlı olarak bir son kullanma tarihine kadar sabit bir toplam tutara kadar harcama yapmasına izin verin.
Yinelenen delegasyonBaşka bir cüzdanın veya hizmetin günlük, haftalık veya aylık gibi her dönemde sıfırlanan bir limite kadar harcama yapmasına izin verin.
Abonelik planıBir satıcının kullanıcıların kabul edebileceği faturalandırma koşullarını yayınlamasına izin verin, ardından onaylı toplayıcıların her faturalandırma döneminde abonelerden ücret almasına izin verin.

Desteklenen Token'lar

Hem SPL Token hem de Token-2022'deki tüm mint'leri destekler.

Yapılandırılmış TransferHook içeren Token-2022 mint'leri için program, her yetkili transferde mint'in hook hesaplarını (hook programı, ExtraAccountMetaList PDA, ekstralar) TransferChecked CPI'ye iletir; böylece hook politikası uygulanır. SDK bunları sizin için çözer:

  • Eklenti istemcisi (transferFixed, transferRecurring, transferSubscription) — otomatik olarak eklenir.
  • Manuel oluşturma — resolveTransferHookAccounts çağrısı yapın, transferHookAccounts geçirin.

Zincir Üstü Olaylar

Program, indeksleyicilerin ve uygulamaların etkinlikleri takip edebilmesi için self-CPI aracılığıyla zincir üstü olaylar yayar. Tüm olaylar yayımlanan IDL'de kayıtlıdır; dolayısıyla oluşturulan istemciler bunların kodunu çözebilir. Yayılan olaylar şunlardır:

  • FixedTransferEvent, RecurringTransferEvent ve SubscriptionTransferEvent — her yetkili transfer başına bir tane. Her biri alacaklandırılan receiverTokenAccount değerini taşır; SubscriptionTransferEvent ayrıca puller değerini de taşır.
  • SubscriptionCreatedEvent, SubscriptionCancelledEvent ve SubscriptionResumedEvent — abonelik yaşam döngüsü. SubscriptionCreatedEvent, payer değerini taşır.
  • PlanUpdatedEvent — bir plan güncellendiğinde yayılır.

Sürüm Yönetimi

Programa ait kayıtlar bir sürüm alanı içerir. Bu, programa mevcut kullanıcıları etkilemeden zaman içinde hesap verilerini yükseltme imkânı tanır. Geçiş stratejisi şunları destekler:

  • Yerinde gecikmeli güncelleme
  • Açık geçiş talimatı
  • İptal edip yeniden oluşturma (yedek yöntem)

Katkıda Bulunanlar

Proje, solana-program/subscriptions deposuna katkıda bulunanlar tarafından sürdürülmektedir.

Denetim Durumu

Program Cantina tarafından denetlenmiştir. Denetim durumu, temel işleme (baseline commit), düzeltme doğrulama işlemi (fix-verified commit) ve mevcut denetlenmemiş delta, deponun audits/ dizininde takip edilmektedir.

Demo Uygulaması

Programı kendiniz denemek istiyorsanız, bu bölümde ele alınan kavramların uçtan uca uygulamasını görmek için örnek uygulamayı buradan inceleyebilirsiniz.

Is this page helpful?

İçindekiler

Sayfayı Düzenle
© 2026 Solana Vakfı. Tüm hakları saklıdır.