app.vote(1, {from: web3.eth.accounts[0] }) funktioniert nicht

Ich folge einem Tutorial der Dapp University zum Erstellen von Election Smart Contracts. Wenn ich diesen Befehl in der Konsole ausführe:

app.vote(1, {from: web3.eth.accounts[0] })

Ich bekomme folgenden Fehler:

Thrown: <Error: The send transaction "from" field must be defined!

Ich weiß, dass "web3.eth.accounts" abgeschrieben wurde, und ich habe einige Möglichkeiten ausprobiert, um es zu lösen, aber bisher kein Glück.

Welche Version von web3.js verwenden Sie?
@goodvibration-Version 1.0.0

Antworten (2)

Wie viele Argumente votebenötigt die Methode? Bei web3.jsder Smart-Contract-Methode werden die Argumente zuerst interpretiert, und als letztes Argument werden Transaktionsoptionen erwartet, wie zum Beispiel:{ from, gas, gasPrice }

Wenn Sie eine andere Anzahl von Argumenten als erwartet angeben, wird versucht, das Feld aus einem Argument web3.jszu finden , in dem es nicht vorhanden ist.from

Sie können auch versuchen, diese Zeile zu Ihrem Code hinzuzufügen, um sicherzustellen, dass sie noch funktioniert und noch nicht entfernt wurde.console.log('Account 0', web3.eth.accounts[0])

Dieser Fehler liegt daran, dass Sie account= übergeben ''. (in der von:) Ich denke, das ist Ihre Web3-Version (können Sie die Version in der Konsole mit "web3.version" überprüfen) und mit Web3 1.xx können Sie versuchen: web3.currentProvider.selectedAddressdie Adresse zu erhalten .