MaksutTilaukset

Yleiskatsaus

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:

MalliTarkoitus
Kiinteä delegointiAnna toisen lompakon tai palvelun käyttää enintään kiinteä kokonaisumma, valinnaisesti vanhenemisaikaan asti.
Toistuva delegointiAnna toisen lompakon tai palvelun käyttää enintään raja, joka nollautuu joka jakso, kuten päivittäin, viikoittain tai kuukausittain.
TilaussuunnitelmaAnna 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, RecurringTransferEvent ja SubscriptionTransferEvent — yksi jokaista valtuutettua siirtoa kohden. Kukin sisältää hyvitetyn receiverTokenAccount; SubscriptionTransferEvent sisältää lisäksi puller.
  • SubscriptionCreatedEvent, SubscriptionCancelledEvent ja SubscriptionResumedEvent — tilauksen elinkaari. SubscriptionCreatedEvent sisä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?

Sisällysluettelo

Muokkaa sivua
© 2026 Solana Foundation. Kaikki oikeudet pidätetään.