Wie liest man Daten aus Smart Contracts mit web3.js?

Ich möchte etwas Ähnliches wie die Funktion „Vertrag lesen“ von Etherscan bauen , die einen Vertrag liest und alle öffentlichen Requisiten zurückgibt, wie: - Name, Gesamtversorgung, Dezimalstellen usw.

Ich habe jedoch keine Informationen zur web3-Dokumentation gefunden.

Antworten (1)

Etherscan kann dies nur für Verträge bereitstellen, die ihren Quellcode verifizieren, oder für Verträge, die einer Spezifikation wie ERC20 folgen.

Dies liegt daran, dass das Lesen eines Vertrags (oder das Verfassen) erfordert, dass Sie die ABI für diesen Vertrag kennen. Wenn Sie den Quellcode haben, können Sie ihn generieren. Wenn Sie den Code nicht haben, aber der Vertrag einer bekannten Spezifikation folgt, können Sie die ABI für diese Spezifikation verwenden (beachten Sie, dass in diesem Fall auf alle zusätzlichen Methoden, die außerhalb der Spezifikation implementiert sind, nicht zugegriffen werden kann).

Wenn Sie die ABI haben, müssen Sie nur bestimmte Funktionen im Vertrag aufrufen. Web3-Vertragsinteraktionen werden hier in der Dokumentation behandelt .

Ja, ich habe das ABI, also sagst du, dass ich es tun myContract.myPropoder myContract.myProp.call()mögen könnte, wenn ich die TokenSupply-Prop bekommen möchte: myContract.tokenSuply?
Du solltest es könnenmyContract.tokenSupply.call()
Sollte es sein myContract.methods.tokenSupply.call()?
@SSHThis Möglicherweise sind meine web3.js-Konventionen die besten, verwende sie selten