Unterschied zwischen der Art und Weise, wie Methoden in Smart Contracts aufgerufen werden

Was ist der Unterschied zwischen

 instance.totalSupply() vs instance.methods.totalSupply().call()

Meines Wissens ist einer für Trüffel und der andere für web3. Aber truffle verwendet auch web3, warum kann ich die Funktionen dann nicht auf eine einzige Weise aufrufen?

Antworten (1)

Ab web3.js Version 1.0 wird empfohlen, Smart-Contract-Funktionen wie folgt aufzurufen

instance.methods.totalSupply().call()

Referenz: Methoden

Für frühere Versionen (< 1.0) könnten wir like nennen

instance.totalSupply() 

Hinweis: aus docs

Diese Dokumentation ist in Arbeit und web3.js 1.0 ist noch nicht veröffentlicht! Die aktuelle Dokumentation für web3 0.xx finden Sie unter github.com/ethereum/wiki/wiki/JavaScript-API.

Welche Web3-Version verwendet Truffle?
Ich bin nicht sicher. du kannst es überprüfen
Um die Version zu überprüfen, verwenden Sie web3.version in der Truffle-Konsole (oder entwickeln) @sharif2008 Ich habe das Dokument gelesen, aber ich kann nicht finden, wo gesagt wird, dass dies der empfohlene Ansatz ist. ist es möglich, dass es nur eine Alternative ist?