Wie importiere ich einen Smart Contract auf Github in einen Trüffelvertrag?

Ich verwende einen Smart Contract, der den Oraclize-Vertrag unter https://github.com/oraclize/ethereum-api/blob/master/oraclizeAPI_0.4.sol importiert und verwendet , wenn dies im Remix-Editor wie folgt möglich ist:

import "http://github.com/oraclize/ethereum-api/oraclizeAPI_0.4.sol";

Wenn ich dies jedoch mit einem Vertrag mache, den ich mit Truffle kompilieren möchte, gibt es diesen Fehler:

http://github.com/oraclize/ethereum-api/oraclizeAPI_0.4.sol konnte in keiner Quelle gefunden werden;

Ich habe versucht, einfach den gesamten Oraclize-Vertrag zu kopieren und in meine Truffle-Vertragsdatei einzufügen, aber dies führt zu einem Fehler „Der Vertragscode konnte nicht gespeichert werden, bitte überprüfen Sie Ihre Gasmenge“, unabhängig davon, wie viel Gas ich verbrauche (sogar die absolute Maximum) - meine Vermutung liegt daran, dass der Oraclize-Vertrag über 1000 Codezeilen lang ist.

Wie soll das gehen?

Antworten (2)

Ich kopierte den Oraclize-Vertrag in meinen Truffle und konnte die Verträge zu Kovan migrieren, indem ich lokal einen Parity-Knoten ausführte. Haben Sie ein Konto mit Ether geführt?

Wenn Sie sich die Truffle-Dokumentation ansehen, gibt es eine EthPM-Registrierung, die sie zum Installieren von Abhängigkeiten vorschlagen: http://truffleframework.com/docs/getting_started/packages-ethpm . Auf EthPM sehe ich, dass es ein Oraclize-Paket gibt. Ich habe es versucht truffle install oraclize, aber es schien nichts zu tun. Ich bin mir nicht sicher, ob diese Funktion richtig funktioniert.

Bearbeiten: truffle install oraclizefunktioniert tatsächlich und legt die Verträge in ein Verzeichnis namens installed_contracts.

Die andere Sache, die Sie tun können, um Oraclize mit Truffle zu verwenden, ist, einfach die Datei http://github.com/oraclize/ethereum-api/oraclizeAPI_0.4.sol lokal zu kopieren und diese Datei in den Vertrag zu importieren, wo Sie sie verwenden möchten.

Truffle muss den Vertrag genauso benennen wie die Datei, um ihn zu kompilieren, also müssen Sie die Oraclize-Datei in UsingOraclize.sol umbenennen.