Ich erstelle intelligente Verträge mit Trüffel und TestrPC. Beim Schreiben von Komponententests möchte ich die Blockzeit ändern, um verschiedene Zeiten zu simulieren, zu denen intelligente Verträge aufgerufen werden können. Wie setzt man evm_increaseTime
in Trüffel-Konsole?Wie verwende ich den Parameter `evm_increaseTime` von der Trüffelkonsole?
1
A
Antwort
-2
Die Lösung besteht darin, das Schlüsselwort now
in Solidität zu überschreiben, es auf einen Wert zu setzen und diesen Wert später in der Anwendung zu verwenden (zu Testzwecken).
+0
Interessiert zu wissen, wie Sie das gemacht haben. Kleiner Codeausschnitt bitte? – mkaj
2
Erweiterung auf die Antwort des OP mit einem Beispiel (Entnommen Status)
Ich schlage vor, eine getTime()
Funktion zu schaffen now
in normalen Fällen zurückzukehren und einer einstellbaren Zeit bei der Prüfung.
/// @notice This function is overriden by the test Mocks.
function getTime() internal returns (uint256) {
return now;
}
uint256 mock_time;
function SNTPlaceHolderMock(...)
SNTPlaceHolder(...) {
mock_time = now;
}
function getTime() internal returns (uint256) {
return mock_time;
}
function setMockedTime(uint256 _t) public {
mock_time = _t;
}
Wir haben jetzt die verspottete Zeit einstellen await sntPlaceHolderMock.setMockedTime(t);
Verwandte Themen
- 1. Wie verwende ich den AjaxUrl-Parameter von CGridView in Yii?
- 2. Wie verwende ich den lokalen Parameter im $ controller Service?
- 3. Wie verwende ich Parameter mit ksoap2?
- 4. Wie verwende ich den Cache?
- 5. Wie verwende ich den Cache auf Anfrage?
- 6. Wie verwende ich Parameter Überladung oder optionale Parameter in Rost?
- 7. Wie verwende ich den RangePartitioner in Spark?
- 8. Wie verwende ich den AngularJS-Wert als Parameter in der Funktion?
- 9. Wie verwende ich den Engpass npm Modul
- 10. Wie verwende ich den alt-Attribut-Tag
- 11. Wie verwende ich den WebClient mit .NetCore?
- 12. Wie verwende ich den Konsolenamixer für spdif?
- 13. Wie verwende ich den XmlPeek Task?
- 14. Wie verwende ich den Befehl qsub -v im PBS-Drehmoment?
- 15. Wie verwende ich den Autoloader mit __autoload?
- 16. Wie verwende ich den Farbwähler (Pipette)?
- 17. Wie verwende ich den Befehl xdg-mime?
- 18. Wie verwende ich den Packer mit der Box-Datei?
- 19. Wie verwende ich den Lambda-Ausdruck in der jrxml-Datei?
- 20. Wie verwende ich den Template-Wert beim Aufruf der Funktion?
- 21. Wie verwende ich den Fall in der gespeicherten Prozedur?
- 22. Wie verwende ich den fatls-Befehl in der Uboot-Sandbox?
- 23. Wie verwende ich den benutzerdefinierten Typ in der benutzerdefinierten Funktion?
- 24. Wie verwende ich den Laravel-Befehl in der Browser-Adressleiste?
- 25. Wie verwende ich den Webservice auf Flex?
- 26. Wie verwende ich indexOf() in den Befehlszeilenargumenten?
- 27. Wie verwende ich den ionischen Speicher?
- 28. Wie verwende ich den bedingten Operator?
- 29. Wie verwende ich den Versand richtig?
- 30. Wie verwende ich den lokalen SSH-Agenten?
Einstellung 'evm_increaseTime' von ethereumjs-testrpc verwendet, wird als RPC-Aufruf implementiert. – RFVenter