Entschuldigung, wenn das wirklich einfach ist, aber ich stecke ein bisschen fest. Ich spiele mit dem Standard-MetaCoin-Vertrag in Truffle und teste ihn gegen testrpc.
Beim Lesen der Truffle-Dokumentation ( http://truffle.readthedocs.io/en/beta/getting_started/contracts/ ) erwähnen sie die Ausführung von Vertragsfunktionen mithilfe der Abstraktion – die im Frontend verfügbar ist.
Meinen sie mit Frontend hier die Trüffelkonsole? Wenn nein, wo ist es? Wo wird auch die Ausgabe meiner Befehle gedruckt?
Im Moment habe ich eine Truffle-Konsole in einer Powershell geöffnet und testrpc läuft auf einer separaten Powershell. Jede Hilfe wird sehr geschätzt!
Dies ist wahrscheinlich ein Duplikat, aber ich denke, ich kann Ihnen eine Tür öffnen, solange es dauert.
Front-End kann alles sein, was den Wrapper von Web3 und Truffle verwendet.
Mit Truffle können Sie mit dem Vertrag interagieren, ohne sich um die Implementierungsdetails auf niedriger Ebene kümmern zu müssen. Zwei Bereiche stechen hervor.
Auf niedrigem Niveau ist beides wichtig, da alle Transaktionen ByteCode zur Gegenleistung an den Vertrag gesendet werden. Der ByteCode für eine Transaktion wird mit Hashes der benutzerfreundlichen Funktionen in der Quelle gebildet, auf 4-Byte-Signaturen gekürzt, gefolgt von Argumenten. Es genügt zu sagen, dass es ein Prozess ist, es richtig zusammenzusetzen.
Truffle behandelt beide Probleme auf entwicklerfreundliche Weise.
Versuche dies ...
truffle development > var meta;
truffle development > var balance;
truffle development > var accounts;
truffle development > var account;
truffle development > web3.eth.getAccounts(function(e,a) { accounts=a; });
truffle development > account = accounts[0];
Der Knoten verwendet Callbacks, die Truffle in Promises (thenable) umwandelt, also haben wir gerade einige Variablen initialisiert, die wir als nächstes verwenden werden.
truffle development > MetaCoin.deployed().then(function(instance) { meta = instance; });
truffle development > meta
Sie sollten einige vertraute Funktionen, die bereitgestellte Adresse und andere Details zu MetaCoin sehen.
truffle development > meta.getBalance.call(account).then(function(myBal) { balance = myBal; });
truffle development > balance;
Sie sollten es im BigNumber-Format sehen.
truffle development > balance.toString(10);
Oder für Menschen lesbar.
Truffle verfolgt die bereitgestellte Adresse ( .deployed()
) für Sie. Bei testRPC ist dies ein wenig fehlerhaft, da es sich bei jedem Neustart von testRPC um eine leere Blockchain handelt. Truffles Erinnerung an die bereitgestellte Adresse führt ihn in die Irre. Löse das mit.
$ testrpc
Anderes Fenster:
$ truffle migrate --reset
Hier ist eine Konsole, die zeigt, dass es funktioniert.
Hier haben Sie ein kurzes und einfaches Tutorial über die Truffle-Konsole und deren Verwendung zur Interaktion mit Smart Contracts .
Pryce Turner
truffle development > meta.balance().then(function(myBal) { balance = myBal; });
es ausführe, gibt esmeta.balance() is not a function
auch zurück, wenn ich versuche, das Protokoll zu konsolen,balance
es gibt nichts zurück. Muss ich etwas anderes tun, um es auszugleichen, nachdem ich es deklariert habe, um es in der Funktion zu verwenden? Danke nochmal für deine Hilfe.Pryce Turner
MetaCoin.deployed().then(function(instance) { meta = instance; });
das gleiche wievar meta = MetaCoin.deployed();
? Wenn ja, was ist der Vorteil Ihrer Methode? Danke noch einmal.Rob Hitchens
Sharif2008
Rob Hitchens