Dokumentasi/Whitepaper
Vesting y bloqueo
La arquitectura de un contrato por bloqueo.
El bloqueo usa el patrón de un contrato por bloqueo. Cada vez que bloqueas algo, se emite un contrato nuevo específicamente para ese bloqueo — así cada plan tiene su propia dirección que cualquiera puede inspeccionar sin leer la lógica de un contrato grande.
Fábrica y bóveda
AflosVestingFactory fábrica, sin propietario
|
+-- AflosVestingVault un contrato nuevo por bloqueo
parámetros INMUTABLES: token, tokenId, beneficiary,
creator, start, cliff, duration, mode
release() -> SOLO puede enviar al beneficiario
| La fábrica puede | La fábrica no puede |
|---|---|
| Emitir una bóveda nueva | Retener activos, ni un instante |
Llamar a sync() una vez, justo tras el fondeo | Llamar a sync() dos veces |
Activar release(), que aun así envía al beneficiario | Retirar activos de ninguna bóveda |
| Cambiar un plan que ya existe |
Parámetros del plan
| Parámetro | Significado |
|---|---|
start | Cuándo empieza a contar. 0 significa ahora. Se permite una fecha pasada. |
cliff | Periodo de espera. Antes de start + cliff, se puede liberar el 0%. |
duration | Duración de la liberación lineal. 0 significa liberación total al terminar el cliff. |
mode | AfterCliff: lineal tras el cliff. Retroactive: lineal contado desde start. |
cliff 12 meses + duration 36 meses + AfterCliff
-> 0% hasta el mes 12, luego lineal, 100% en el mes 48
cliff 12 meses + duration 48 meses + Retroactive
-> 25% justo en el mes 12, luego lineal, 100% en el mes 48
Liberar los activos
// liberar un bloqueo
AflosVestingVault(vault).release();
// a través de la fábrica
factory.release(id);
factory.releaseBatch([0, 1, 2]);
// consultar
factory.vaultAt(id); // la dirección de la bóveda
factory.vaultsOf(beneficiary); // todas las bóvedas de alguien
release() puede llamarlo cualquiera. Los activos se envían siempre al
beneficiary registrado, así que activarlo no aporta ninguna ventaja a quien lo llama.
Es deliberado: si el receptor está inactivo, cualquiera puede ayudar a liberar los activos.
🛑
Nunca envíes activos directamente a la
dirección de una bóveda. Solo el bloqueo a través de la fábrica queda registrado como plan.
Los activos que llegan por un
transfer normal no están ligados a ningún plan y
nunca podrán sacarse, porque el contrato carece deliberadamente de función de rescate.
Apakah halaman ini membantu?