Problema con la declaración Assert en solidity

¡Probablemente me estoy perdiendo algo muy obvio, pero no puedo hacer que funcione la declaración de afirmación más simple! ¿Qué estoy haciendo mal?

Mi objetivo es simplemente confirmar que estoy dentro de un rango de fecha de inicio y fecha de finalización usando "ahora".

Ni siquiera puedo afirmar (1 == 1); para volver verdad!

¡Por favor asiste!

pragma solidity ^0.4.18;

contract TestAssert {

// Unix timestamp converter used = https://www.unixtimestamp.com/
   uint256 public constant startDate = 1517907600; // 02/06/2018 09:00:00 
   uint256 public constant endDate = 1522659600; // 04/02/2018 09:00:00

//This is the Constructor
  function TestAssert() {

  }

  function assertOneEqualsOne () returns (bool) {
    assert(1 == 1);
  }

  function assertStartDate () constant returns(bool){
    assert(now >= startDate); 
  }

  function assertEndDate () constant returns(bool){
    assert(now <= endDate);
  }

  function returnNow() returns (uint256) {
    return now;
  }

  function () payable {
     // this is the fallback function.
  }

}

Respuestas (1)

Debe agregar un retorno a sus funciones.

   function assertOneEqualsOne () external pure returns (bool) {
           assert(1 == 1);
           return true;
   }

Si la aserción falla, indicará un REVERT y lanzará una excepción en su código de cliente.

¡Muchas gracias! ¡Sabía que era algo que estaba pasando por alto! Supuse que la función de afirmación me lo devolvería. ¡¡¡Lección aprendida!!!