Die Fallback-Funktion wird aufgerufen, wenn Vertragsvariablen von einem externen Knoten festgelegt werden

Ich bin ein Anfänger in der Ethereum-Welt und habe einige Probleme beim Umgang mit einem SimpleStorage-Vertrag in meinem privaten Testnet ( http://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html ) . Insbesondere wenn ich eine Vertragsinstanz erstelle und dann die Funktion set() vom selben Knoten aus aufrufe, funktioniert alles. Aber wenn ich die Funktion set () von einem anderen Knoten meines privaten Testnetzes aus mit den folgenden Befehlen aufrufe:

> var instance = web3.eth.contract(abi).at(contractAddress);
> instance.set.sendTransaction(21, {from: web3.eth.accounts[0]});

die Funktion scheint nicht zu funktionieren. Genauer gesagt, indem ich einfach einige Ereignis-Listener hinzufüge, kann ich feststellen, dass stattdessen die Fallback-Funktion aufgerufen wird. Kann mir jemand sagen warum? Was mache ich falsch?

Jede Hilfe geschätzt.

Bist du sicher, dass der ABI stimmt? Sie würden dieses Verhalten sehen, wenn Sie versuchen, eine Funktion aufzurufen, die nicht existiert oder andere formale Parameter als die von Ihnen implementierte hat.
Das war eigentlich das Problem. Jetzt funktioniert es perfekt. Danke vielmals!
@AM122 Vorgehensweise zum Hinzufügen eines Ereignis-Listeners. Da niemand sonst weiß, was der Fehler im ABI war, möchten Sie wahrscheinlich die Antwort auf Ihre eigene Frage posten, dann können Sie die Antwort in ein paar Tagen akzeptieren. Das Posten einer eigenen Antwort ist hier in Ordnung.
Es gab einen Fehler in der abi-Definition des Eingabetyps (er wurde einfach als „uint“ anstelle von „uint256“ definiert). Danke noch einmal
@ AM122 Ich wollte in das große Feld "Ihre Antwort" unten posten, anstatt in dieses kleine Feld, das nur für Kommentare gedacht ist. Dann können Sie in ein paar Tagen auf Ihre Antwort klicken.

Antworten (1)

Es gab einen Fehler in der abi-Definition des Eingabetyps (er wurde einfach als „uint“ anstelle von „uint256“ definiert).