Problem mit Assert-Anweisung in Solidität

Ich vermisse wahrscheinlich etwas sehr Offensichtliches, aber ich kann die einfachste Assert-Anweisung nicht zum Laufen bringen! Was mache ich falsch?

Mein Ziel ist es, einfach mit "jetzt" zu bestätigen, dass ich mich innerhalb eines Start- und Enddatumsbereichs befinde.

Ich kann nicht einmal behaupten (1==1); um wahr zurückzugeben!

Bitte helfen!

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.
  }

}

Antworten (1)

Sie müssen Ihren Funktionen eine Rückkehr hinzufügen.

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

Wenn die Bestätigung fehlschlägt, wird ein REVERT signalisiert und eine Ausnahme in Ihrem Clientcode ausgelöst.

Vielen Dank! Ich wusste, dass es etwas war, das ich übersah! Ich nahm an, dass die Assert-Funktion es für mich zurückgeben würde. Lektion gelernt!!!