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.
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 .
Ernane Luis
myContract.myProp
odermyContract.myProp.call()
mögen könnte, wenn ich die TokenSupply-Prop bekommen möchte:myContract.tokenSuply
?Raghav Sood
myContract.tokenSupply.call()
SSH-dies
myContract.methods.tokenSupply.call()
?Raghav Sood