Tilausten delegointiohjelman avulla kehittäjät voivat antaa käyttäjien valtuuttaa tulevia token-siirtoja lompakostaan selkein rajoituksin. Se on suunniteltu toistuville maksuille, tilauksille, kauppiaslaskutukselle ja muille toimintamalleille, joissa käyttäjän ei pitäisi joutua allekirjoittamaan jokaista siirtoa manuaalisesti.
Tarkoitus
Solanan token-tilit voivat hyväksyä toisen valtuuden siirtämään tokeneita, mutta jokaisella token-tilillä voi olla vain yksi hyväksytty valtuus kerrallaan. Tämä tekee vaikeaksi yhden lompakon turvallisen tukemisen useille saman tokenin kulutussopimuksille, kuten kuukausittaiselle tilaukselle, kiinteälle kulutusrajalle ja kauppiaslaskutussopimukselle.
Tämä ohjelma ratkaisee tämän antamalla jokaiselle (user, token mint)-parille
ohjelman hallitseman tilausvaltuuden. Käyttäjän token-tili hyväksyy kyseisen
valtuuden kerran. Ohjelma tarkistaa sitten jokaisen pyydetyn siirron erillisestä
tietueesta, joka määrittelee kuka voi nostaa varoja, kuinka paljon he voivat
nostaa ja milloin valtuutus vanhenee tai nollautuu.
Tilausvaltuus ei voi siirtää varoja itse. Siirto onnistuu vain, kun se vastaa yhtä käyttäjän aktiivisista valtuutuksista.
Ohjelmatunnus
De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44
Ohjelmatunnus on määritelty tiedostossa program/src/lib.rs. Paikalliset
Surfpool-työnkulut asentavat ohjelman tähän kanoniseen osoitteeseen.
Delegointimallit
Ohjelma tukee kolmea valtuutusmallia:
| Malli | Tarkoitus |
|---|---|
| Kiinteä delegointi | Anna toisen lompakon tai palvelun käyttää enintään kiinteä kokonaisumma, valinnaisesti vanhenemisaikaan asti. |
| Toistuva delegointi | Anna toisen lompakon tai palvelun käyttää enintään raja, joka nollautuu joka jakso, kuten päivittäin, viikoittain tai kuukausittain. |
| Tilaussuunnitelma | Anna kauppiaan julkaista laskutusehdot, jotka käyttäjät voivat hyväksyä, ja salli hyväksyttyjen keräilijöiden veloittaa tilaajia joka laskutusjakso. |
Tuetut tokenit
Tukee kaikkia leimoista sekä SPL Token- että Token-2022-standardeista.
Token-2022-leimoille, joilla on määritetty TransferHook, ohjelma välittää
leiman hook-tilit (hook-ohjelma, ExtraAccountMetaList PDA, lisätilit)
TransferChecked CPI:hin jokaisen valtuutetun siirron yhteydessä, joten
hook-käytäntö tulee voimaan. SDK ratkaisee ne puolestasi:
- Plugin-asiakas (
transferFixed,transferRecurring,transferSubscription) — lisätään automaattisesti. - Manuaalinen rakentaminen — kutsu
resolveTransferHookAccounts, välitätransferHookAccounts.
Ketjunsisäiset tapahtumat
Ohjelma lähettää ketjunsisäisiä tapahtumia itse-CPI:n kautta, jotta indeksoijat ja sovellukset voivat seurata toimintaa. Kaikki tapahtumat on rekisteröity julkaistussa IDL:ssä, joten generoidut asiakkaat voivat purkaa ne. Lähetetyt tapahtumat ovat:
FixedTransferEvent,RecurringTransferEventjaSubscriptionTransferEvent— yksi jokaista valtuutettua siirtoa kohden. Kukin sisältää hyvitetynreceiverTokenAccount;SubscriptionTransferEventsisältää lisäksipuller.SubscriptionCreatedEvent,SubscriptionCancelledEventjaSubscriptionResumedEvent— tilauksen elinkaari.SubscriptionCreatedEventsisältääpayer.PlanUpdatedEvent— lähetetään, kun suunnitelmaa päivitetään.
Versiointi
Ohjelman omistamiin tietueisiin sisältyy versiokenttä. Tämä antaa ohjelmalle mahdollisuuden päivittää tilitietoja ajan myötä rikkomatta olemassa olevia käyttäjiä. Siirtymästrategia tukee:
- Laiska paikan päällä tapahtuva päivitys
- Eksplisiittinen siirtymäkäsky
- Peruutus ja uudelleenluonti varamenetelmänä
Osallistujat
Projektia ylläpitävät
solana-program/subscriptions-repositorion
osallistujat.
Tarkastuksen tila
Cantina on auditoinut ohjelman. Tarkastuksen tila, lähtökohtainen commit,
korjausvarmistettu commit ja nykyinen auditoimaton delta seurataan repositorion
audits/-hakemistossa.
Demosovellus
Jos haluat kokeilla ohjelmaa itse, voit tutustua esimerkkisovellukseen täällä nähdäksesi tässä osiossa käsiteltyjen käsitteiden kokonaisvaltaisen toteutuksen.
Is this page helpful?