Web3.js Holen Sie sich Vertrag Abi und kennen Sie nur die Vertragsadresse

Gibt es mit web3.js eine Möglichkeit, einen Vertrag abi json zu erhalten, wobei nur die Vertragsadresse bekannt ist?

Ich kann keinen Link mehr finden, in dem sie erklären, wie das geht. In diesem Beitrag antwortete der Typ und sagte, dass es eine Möglichkeit gibt, dies zu tun, aber es ist nicht so gut dokumentiert.

Wie kann ich das machen?

Dies wird für Verträge möglich sein, die ihre Metadaten in Swarm registrieren.

Antworten (4)

a) Sie kennen den Quellcode von Smart-Contract

programmgesteuert: siehe den Link zum Kern von Ivans Antwort

manuell: mit Remix

b) Sie kennen den Quellcode nicht, aber Smart-Contract wurde in einem der Explorer verifiziert

Verwenden Sie dann die Block-Explorer-Suche, um ABI von Smart-Contract zu erhalten. Sie können beispielsweise den verifizierten Quellcode von Smart-Contracts in BlockScout , Etherscan , Etherchain lesen

c) Sie kennen den Quellcode nicht && Vertrag ist nicht verifiziert

Sie können den Smart-Contracts-Decompiler von Panoramix verwenden , um eine partielle ABI des Smart-Contracts zu erhalten

Weitere Informationen zum Kommentar von o0ragman0o finden Sie in diesem Dokument:

https://solidity.readthedocs.io/en/v0.5.2/metadata.html

Es beschreibt, wie Vertragsmetadaten in Swarm veröffentlicht werden sollten, um eine zentralisierte (dh Etherscan) Verwaltung/Zugriff auf Vertragsmetadaten (einschließlich ABI) zu vermeiden.

Ich habe die gleiche Frage vor. Im Moment ist das nicht möglich, nur Sie können es mit Solc kompilieren. Hier ist ein Beispiel: https://gist.github.com/tomconte/4edb83cf505f1e7faf172b9252fff9bf

du kannst die abi dann immer solc aus einer datei oder direkt aufrufen. Quelle: Solcjs