Il Programma di Delega delle Sottoscrizioni consente agli sviluppatori di permettere agli utenti di autorizzare futuri trasferimenti di token dai loro wallet con limiti chiari. È progettato per pagamenti ricorrenti, sottoscrizioni, fatturazione di esercenti e altri flussi in cui un utente non dovrebbe dover firmare manualmente ogni trasferimento.
Scopo
Gli account token di Solana possono approvare un'altra autorità per spostare token, ma ogni account token può avere solo un'autorità approvata alla volta. Questo rende difficile per un singolo wallet supportare in sicurezza diverse configurazioni di spesa per lo stesso token, come una sottoscrizione mensile, un'indennità di spesa fissa e un accordo di fatturazione con un esercente.
Questo programma risolve il problema fornendo a ogni coppia (user, token mint)
un'Autorità di Sottoscrizione controllata dal programma. L'account token
dell'utente approva quell'autorità una sola volta. Il programma verifica poi
ogni trasferimento richiesto confrontandolo con un record separato che definisce
chi può prelevare fondi, quanto può prelevare e quando l'autorizzazione scade o
si ripristina.
L'Autorità di Sottoscrizione non può spostare fondi da sola. Un trasferimento ha successo solo quando corrisponde a una delle autorizzazioni attive dell'utente.
ID del Programma
De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44
L'ID del programma è dichiarato in program/src/lib.rs. I flussi di lavoro
locali di Surfpool installano il programma a questo indirizzo canonico.
Modelli di Delega
Il programma supporta tre modelli di autorizzazione:
| Modello | Scopo |
|---|---|
| Delega fissa | Consente a un altro wallet o servizio di spendere fino a un importo totale fisso, opzionalmente fino a una data di scadenza. |
| Delega ricorrente | Consente a un altro wallet o servizio di spendere fino a un limite che si ripristina ogni periodo, ad esempio giornaliero, settimanale o mensile. |
| Piano di sottoscrizione | Consente a un esercente di pubblicare termini di fatturazione che gli utenti possono accettare, quindi permette ai riscossori approvati di addebitare agli abbonati ogni periodo di fatturazione. |
Token Supportati
Il programma supporta i token creati sia con SPL Token che con Token-2022. Per i
mint Token-2022, rifiuta le estensioni che renderebbero i trasferimenti
pianificati o delegati non sicuri o poco chiari, inclusi ConfidentialTransfer,
NonTransferable, PermanentDelegate, TransferHook, TransferFee,
MintCloseAuthority e Pausable.
Eventi On-Chain
Il programma emette eventi on-chain in modo che gli indicizzatori e le applicazioni possano monitorare l'attività importante. Questi eventi coprono le modifiche agli abbonamenti e i trasferimenti effettuati tramite flussi fissi, ricorrenti e basati su piani di abbonamento.
Versionamento
I record di proprietà del programma includono un campo versione. Questo fornisce al programma un percorso per aggiornare i dati dell'account nel tempo senza interrompere gli utenti esistenti. La strategia di migrazione supporta:
- Aggiornamento lazy in-place
- Istruzione di migrazione esplicita
- Fallback con revoca e ricreazione
Collaboratori
Il progetto è mantenuto dai collaboratori del
repository solana-program/subscriptions.
Stato dell'Audit
Il programma è stato sottoposto ad audit da Cantina. Lo stato dell'audit, il
commit di riferimento, il commit con le correzioni verificate e l'attuale delta
non sottoposto ad audit sono tracciati nella
directory audits/ del repository.
Applicazione Demo
Se vuoi sperimentare il programma in prima persona, puoi visualizzare un' applicazione di esempio qui per vedere un'implementazione end-to-end dei concetti trattati in questa sezione.
Is this page helpful?