Trasferimenti pianificati
Un trasferimento pianificato è una serie di pagamenti impostata con un'unica transazione. Il pagante firma una volta, e la catena esegue ogni pagamento alla sua scadenza: uno stipendio, un abbonamento, una paghetta o il vesting di un finanziamento. Può pagare ZBC o qualsiasi token.
Impostare una pianificazione
Uno ScheduledTransfer (tipo 29) ha un corpo di 47 byte che indica:
| Campo | Significato |
|---|---|
| id del token | l'asset da pagare; 0 significa ZBC |
| importo | l'importo di ciascun pagamento |
| intervallo | il tempo tra due pagamenti, in secondi |
| numero di pagamenti | da 1 a 520 |
| cliff | un ritardo facoltativo prima del primo pagamento |
| modalità di finanziamento | 0 per il vesting, 1 per il prelievo (vedi sotto) |
| politica di annullamento | revocabile o irrevocabile |
| termine finale | facoltativo |
La commissione si paga una sola volta, quando la pianificazione viene creata. I pagamenti seguono poi l'intervallo; ciascuno scade in base al timestamp del blocco precedente, quindi un produttore non può datare il suo blocco in anticipo per includervi un pagamento.
Due modalità di finanziamento
- Vesting (modalità 0): l'intero totale viene bloccato alla creazione della pianificazione e rilasciato un pagamento alla volta. Il destinatario sa che il denaro c'è davvero.
- Prelievo (modalità 1): non viene bloccato nulla. Ogni pagamento viene preso dal saldo del pagante alla sua scadenza. Dopo quattro pagamenti mancati di fila, la pianificazione si annulla da sola.
I pagamenti in vesting passano attraverso la politica di ripartizione del destinatario, come qualsiasi accredito in entrata; i pagamenti in prelievo no (vedi politiche di ripartizione e di transazione).
Annullare e reindirizzare
- CancelSchedule (tipo 30) chiude una pianificazione. Il pagante può annullarla solo se è revocabile. Il destinatario può annullarla in qualsiasi momento, ed è così che un destinatario rifiuta una pianificazione. Quando una pianificazione in vesting viene annullata, tutto ciò che è ancora bloccato torna al pagante.
- ReassignSchedule (tipo 31) permette al destinatario di reindirizzare i pagamenti futuri a un altro indirizzo.
Una politica di transazione viene verificata solo rispetto al destinatario indicato nello ScheduledTransfer stesso, quindi i pagamenti successivi raggiungono comunque un destinatario che in seguito rifiuta i pagamenti.
Che cosa non fa una pianificazione
Una pianificazione non va a caccia di un momento economico sulla rete: la sua commissione si paga alla creazione, e i suoi pagamenti seguono l'intervallo fissato dal pagante. E non scambia nulla: paga l'asset che indica, e convertire un asset in un altro è compito delle offerte di swap e dei mercati.
Altri strumenti coprono altre forme di pagamento. Per denaro che deve maturare in modo continuo, minuto per minuto, vedi pagamenti liquidi (flussi). Per un unico pagamento rilasciato a una futura altezza di blocco o quando un evento viene confermato, vedi trigger e attestazioni.
Se un token pianificato scade, le unità ancora bloccate in una pianificazione in vesting contano per il proprietario della pianificazione quando la copertura in ZBC del token viene divisa (vedi manutenzione dei token (persistenza)).