Ist es richtig zu sagen: Ein Vertragskonto kann mehr als einen Vertrag enthalten?

Meine Frage bezieht sich auf meine vorherige Frage:

Solidität: Wie kann ein Vertrag B, der aus Vertrag A brennt, einen anderen Vertrag generieren?


Wie wir im oben genannten Beitrag bei der Bereitstellung von Vertrag A können, schließen wir alle Verträge A, B und C in eine Transaktion ein, die an die Blockchain gesendet wird. Das Vertragskonto enthält also alle Vertragscodes (auch wenn die Verträge B und C noch nicht geboren sind).

Frage : Kann man sagen, dass ein Vertragskonto mehr als einen Vertrag enthalten kann?

Antworten (2)

Jeder Vertrag wird an einer anderen Adresse bereitgestellt, auch wenn „VertragA“ auf eine Zustandsvariable des Typs „VertragB“ verweist oder diese enthält.

Also nein, deine Behauptung stimmt nicht. Wenn Sie einen Vertrag bereitstellen, wird ihm eine Adresse (das sogenannte Konto) zugewiesen. Selbst wenn dieser Vertrag intern N Verträge bereitstellt, wird jeder dieser Verträge an einer anderen Adresse bereitgestellt

Danke für die Antwort. Ich habe keine Frage zu Ihrer Antwort, aber es ist mir immer noch nicht klar, wo Codes/Referenzen für Vertrag B und C gespeichert werden, wenn Vertrag A bereitgestellt wird. Trifft es zu, dass die Codes von Vertrag B und C im Konto von Vertrag A gespeichert werden, wenn Vertrag A bereitgestellt wird?

Frage: Kann man sagen, dass ein Vertragskonto mehr als einen Vertrag enthalten kann?

NEIN. Nur der Vertrag A wird an dieser Adresse bereitgestellt, und Sie können Vertrag B oder C nicht direkt über die Adresse von A anrufen. (Natürlich können Sie dies über die Funktion von A tun.)

Das Vertragskonto enthält also alle Vertragscodes (auch wenn die Verträge B und C noch nicht geboren sind).

AFAIK, dieser Code wird aus Gründen vorhanden sein, die bei der Bereitstellung von B verwendet werden sollen, und dieser Codeabschnitt definiert die Schnittstelle von B zu A (wie ABI die Schnittstelle zur Interaktion mit einem Vertrag definiert).