Transferencias programadas
Una transferencia programada es una serie de pagos establecida mediante una sola transacción. El pagador firma una vez, y la cadena hace cada pago cuando vence: un salario, una suscripción, una asignación o la liberación de una subvención. Puede pagar ZBC o cualquier token.
Establecer una programación
Una ScheduledTransfer (tipo 29) tiene un cuerpo de 47 bytes que indica:
| Campo | Significado |
|---|---|
| id del token | el activo que se paga; 0 significa ZBC |
| importe | el importe de cada pago |
| intervalo | el tiempo entre dos pagos, en segundos |
| número de pagos | de 1 a 520 |
| periodo de carencia | un retraso opcional antes del primer pago |
| modo de financiación | 0 para liberación, 1 para cobro (véase más abajo) |
| política de cancelación | revocable o irrevocable |
| hora de fin | opcional |
La comisión se paga una sola vez, cuando se crea la programación. Después, los pagos siguen el intervalo; cada uno vence según la marca de tiempo del bloque anterior, así que un productor no puede estampar su bloque adelantado para atraer un pago hacia él.
Dos modos de financiación
- Liberación (modo 0): todo el total se bloquea cuando se crea la programación y se libera pago a pago. El destinatario sabe que el dinero está realmente ahí.
- Cobro (modo 1): no se bloquea nada. Cada pago se toma del saldo del pagador cuando vence. Tras cuatro pagos fallidos seguidos, la programación se cancela sola.
Los pagos en modo de liberación pasan por la política de reparto del destinatario, como cualquier abono entrante; los pagos en modo de cobro, no (véase políticas de reparto y de transacciones).
Cancelar y redirigir
- CancelSchedule (tipo 30) termina una programación. El pagador solo puede cancelarla si es revocable. El destinatario puede cancelarla en cualquier momento, que es la forma en que un destinatario rechaza una programación. Cuando se cancela una programación en modo de liberación, lo que sigue bloqueado vuelve al pagador.
- ReassignSchedule (tipo 31) permite al destinatario redirigir los pagos futuros a otra dirección.
Una política de transacciones solo se comprueba frente al destinatario nombrado en la propia ScheduledTransfer, así que sus pagos posteriores siguen llegando a un destinatario que después se excluya de los pagos.
Lo que no hace una programación
Una programación no busca un momento barato en la red: su comisión se paga al crearla, y sus pagos siguen el intervalo que fijó su pagador. Tampoco negocia: paga el activo que nombra, y convertir un activo en otro es tarea de las ofertas de intercambio y de los mercados.
Otras herramientas cubren otras formas de pago. Para dinero que debe liberarse de forma continua, minuto a minuto, véase pagos líquidos (flujos). Para un único pago liberado en una altura de bloque futura o cuando se confirma un evento, véase disparadores y atestaciones.
Si caduca un token programado, las unidades que siguen bloqueadas en una programación en modo de liberación cuentan para el dueño de la programación cuando se reparte el respaldo en ZBC del token (véase mantenimiento de un token (persistencia)).