Angenommen, Sie schreiben einen Vertrag, mit dem andere interagieren sollen. Mein Verständnis ist, dass Sie, wenn Sie möchten, dass andere mit Ihrem Vertrag interagieren, die ABI und Adresse des Vertrags angeben müssen. Ist das richtig?
Wenn ja, würden Sie dann die ABI und die Adresse des Vertrags an einer bestimmten Stelle veröffentlichen, damit die Leute damit interagieren können? Würden Sie den Code veröffentlichen, damit die Leute den Vertrag zusammenstellen und das ABI erhalten können?
ODER , ist es möglich, mit einem Vertrag zu interagieren, indem man nur dessen Adresse/Hash kennt.
Ja, damit Personen mit Ihrem Vertrag interagieren, sollten Sie die ABI und die Adresse des Vertrags veröffentlichen.
Um vertrauenswürdiger zu sein, würden Sie auch Ihren Vertragsquellcode (und die verwendete Compilerversion und die verwendeten Compiler-Flags) veröffentlichen, damit die Leute selbst überprüfen können, ob das, was an der Adresse bereitgestellt wird, mit dem Quellcode übereinstimmt. Durch die Bereitstellung des von Ihnen verwendeten Quellcodes und der verwendeten Compiler-Version können die Benutzer die ABI auch selbst generieren.
Wenn Sie die ABI (oder den Quellcode und die Compiler-Details) nicht bereitstellen, können die Leute nicht einfach mit Ihrem Vertrag interagieren: Sie müssten Ihren Vertrag aus dem Bytecode zurückentwickeln, um herauszufinden, was Ihre Funktion ist Namen und Parameter sind.
OneyesOneno