Funktion 'sendTransaction' - kann vor dem Ereignis 'transactionHash' ein Fehler auftreten?

Funktion web3.eth.sendTransactionkann einen Fehler auslösen.

Zum Beispiel:

  • Transaction gas is too low
  • Transaction execution error

Aber kann es möglicherweise einen Fehler auslösen, bevor das transactionHashEreignis ausgegeben wird?

Ich bin mir ziemlich sicher, dass die beiden oben genannten Fehler an dieser Stelle unmöglich auftreten können.

Habe ich recht?

Was ist mit anderen Fehlern?

Was ist zum Beispiel, wenn es ein Netzwerkproblem oder ein Ethereum-Client-Problem gibt?

Hier ist ein Codierungsbeispiel (direkt aus der Dokumentation entnommen ), in das die Frage eingebettet ist:

web3.eth.sendTransaction({
    from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe',
    to: '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe',
    value: '1000000000000000'
})
.on('transactionHash', function(hash){
    // Can it possibly throw an error before reaching here?
})
.on('receipt', function(receipt){
    ...
})
.on('confirmation', function(confirmationNumber, receipt){ ... })
.on('error', console.error); // If a out of gas error, the second parameter is the receipt.

Danke schön!

Antworten (1)

Ja, natürlich können viele Fehler auftreten, bevor ein transactionHashEreignis ausgegeben wird. Beispiel:

  • Grundvalidierungen wie ungültige Absenderadresse, Empfängeradresse, Menge, Gas etc.
  • Wenn der Betrag, den man zu senden versucht, höher ist als sein Guthaben

Im Grunde gibt es also eine Reihe von Validierungen durch den Client, bevor eine Transaktion an die Blockchain gesendet wird, und ein Fehler einer solchen Validierung führt zu einem Fehler von tx, noch bevor er Hash erhält.

Ich habe irgendwo eine Liste von Validierungen gelesen, die vor dem Senden von TX stattfinden. Ich werde versuchen, das zu holen. All diese Fälle können also zu Fehlern führen, noch bevor Haschisch entsteht.