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:
| Model | Amaç |
|---|---|
| Sabit delegasyon | Baş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 delegasyon | Baş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
Program, hem SPL Token hem de Token-2022 ile oluşturulan token'ları destekler.
Reddedilen tek Token-2022 uzantısı, yapılandırılmış bir TransferHook'dir
(hook'un authority veya program_id olarak ayarlandığı durumlarda). Etkin
olmayan bir TransferHook (her ikisi de ayarlanmamış, dolayısıyla kalıcı olarak
değiştirilemez) ve diğer tüm uzantılara izin verilir.
Zincir Üstü Olaylar
Program, indeksleyicilerin ve uygulamaların önemli etkinlikleri takip edebilmesi için zincir üstü olaylar yayınlar. Bu olaylar, abonelik değişikliklerini ve sabit, yinelenen ve abonelik planı akışları aracılığıyla yapılan transferleri kapsar.
Sürüm Yönetimi
Program tarafından sahip olunan kayıtlar bir sürüm alanı içerir. Bu, programa mevcut kullanıcıları bozmadan zaman içinde hesap verilerini yükseltme yolu sağlar. Geçiş stratejisi şunları destekler:
- Tembel yerinde güncelleme
- Açık geçiş talimatı
- İptal et ve yeniden oluştur yedek yöntemi
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 commit,
düzeltme doğrulamalı commit ve mevcut denetlenmemiş değişiklik, deponun
audits/ dizininde
izlenmektedir.
Demo Uygulaması
Programı kendiniz denemek istiyorsanız, bu bölümde ele alınan kavramların uçtan uca bir uygulamasını görmek için örnek uygulamayı buradan inceleyebilirsiniz.
Is this page helpful?