Mecanismo de bloqueo de tokens de preventa

Estaba investigando los estándares de token ERC20 y Crowdsale. Hay varios contratos de muestra, incluido el de OpenZeppelin, que muestra el bloqueo de las transferencias de tokens hasta que finaliza la venta colectiva.

En lugar de un simple mecanismo de bloqueo y desbloqueo, ¿podemos bloquear los tokens vendidos en preventa por un período más largo que los tokens vendidos en las ventas posteriores? ¿Cómo podemos hacer eso sin cambiar los estándares ERC20?

OpenZeppelin tiene un TokenTimelock que permite almacenar tokens hasta un momento de liberación arbitrario para un solo beneficiario, tal vez pueda modificarlo para que se ajuste a sus necesidades.

Respuestas (2)

Bloquear tokens una vez que finaliza la venta colectiva es una funcionalidad que debería incluirse en el contrato de token. Si está utilizando Open Zeppelin, hay un contrato de pausa que puede usar y hacer que su token se herede de él para evitar que los tokens se muevan.

Pero sí, eso requeriría agregar lógica adicional a su token ERC20.

Tienes razón. Pero mi pregunta era: ¿hay alguna manera de bloquear el token vendido en una preventa durante 3 meses, pero bloquear los tokens vendidos más tarde durante solo 1 mes?
Sí, pero la lógica por la cual los tokens no se pueden transferir tendría que incluirse en el contrato de token agregando una verificación en los métodos de transferencia de acuerdo con alguna condición previa que elija (como el tiempo)

Se pueden realizar bloqueos específicos de preventa sin necesidad de modificar los tokens EIP-20.

  1. Depósito de los compradores de preventa en el contrato de preventa
  2. El contrato de preventa compra de la venta principal de tokens, los tokens se transfieren en el contrato de preventa
  3. Los compradores de preventa deben reclamar sus tokens llamando claim()a la función en el contrato de preventa
  4. claim()no está disponible hasta que finaliza el período de bloqueo

Aquí hay un ejemplo:

https://github.com/TokenMarketNet/ico/blob/master/contracts/PreICOProxyBuyer.sol#L231