Dokumentasi/Whitepaper
Vesting e bloqueio
A arquitetura de um contrato por bloqueio.
O bloqueio usa o padrão de um contrato por bloqueio. Cada vez que você bloqueia algo, um contrato novo é emitido especificamente para aquele bloqueio — assim cada plano tem seu próprio endereço que qualquer pessoa pode inspecionar sem ler a lógica de um contrato grande.
Fábrica e cofre
AflosVestingFactory fábrica, sem proprietário
|
+-- AflosVestingVault um contrato novo por bloqueio
parâmetros IMUTÁVEIS: token, tokenId, beneficiary,
creator, start, cliff, duration, mode
release() -> SÓ pode enviar ao beneficiário
| A fábrica pode | A fábrica não pode |
|---|---|
| Emitir um cofre novo | Guardar ativos, nem por um instante |
Chamar sync() uma vez, logo após o aporte | Chamar sync() duas vezes |
Acionar release(), que ainda envia ao beneficiário | Sacar ativos de qualquer cofre |
| Alterar um plano que já existe |
Parâmetros do plano
| Parâmetro | Significado |
|---|---|
start | Quando a contagem começa. 0 significa agora. Uma data passada é permitida. |
cliff | Período de espera. Antes de start + cliff, 0% pode ser liberado. |
duration | Duração da liberação linear. 0 significa liberação total no fim do cliff. |
mode | AfterCliff: linear depois do cliff. Retroactive: linear contado a partir de start. |
cliff 12 meses + duration 36 meses + AfterCliff
-> 0% até o mês 12, depois linear, 100% no mês 48
cliff 12 meses + duration 48 meses + Retroactive
-> 25% exatamente no mês 12, depois linear, 100% no mês 48
Liberando os ativos
// liberar um bloqueio
AflosVestingVault(vault).release();
// pela fábrica
factory.release(id);
factory.releaseBatch([0, 1, 2]);
// consultar
factory.vaultAt(id); // o endereço do cofre
factory.vaultsOf(beneficiary); // todos os cofres de alguém
release() pode ser chamado por qualquer pessoa. Os ativos vão sempre para o
beneficiary registrado, então acionar não dá nenhuma vantagem a quem chamou. Isso é
proposital: se o destinatário estiver inativo, qualquer um pode ajudar a liberar os ativos.
🛑
Nunca envie ativos diretamente para o
endereço de um cofre. Só o bloqueio pela fábrica fica registrado como plano. Ativos que chegam
por um
transfer comum não estão ligados a nenhum plano e nunca poderão ser
retirados, porque o contrato deliberadamente não tem função de resgate.
Apakah halaman ini membantu?