Ereignisse von einem anderen Smart Contract abhören [duplizieren]

Ich möchte ein Ereignis aus einem anderen (bereitgestellten) Smart Contract abhören.

Ich bin ein absoluter Noob für Ethereum und Solidity. Also entschuldigt bitte meine dummen Fragen, vielleicht habe ich alles falsch verstanden.

Ich möchte ein Ereignis in einem bereitgestellten Vertrag C1 abhören. Und wenn ein bestimmtes Ereignis eintritt, möchte ich eine Funktion auf einem anderen Vertrag C2 aufrufen.

Beispielsweise gibt es einen Token namens Matryx Token, Solidity-Code finden Sie hier bei EtherScan.io

Im Solidity - Code gibt es ein contract MintableToken is ReleasableToken, in diesem Vertrag gibt es ein Ereignis event MintFinished();.

Wie kann ich dieses Ereignis abhören und dann eine Funktion für einen anderen Vertrag C2 aufrufen?

Ich bin ein erfahrener Swift-Entwickler. Also dachte ich daran, dies als macOS-App oder iOS-App zu schreiben. Ich habe Geth, Go Ethereum, Mobile Client gefunden, aber es ist etwas unklar, wie ich Ereignisse abhören kann.

Der einfachste Weg wäre also vielleicht, mein eigenes Solidity-„Programm“ (dApp?) zu entwickeln und es als Smart Contract einzusetzen?

Wo würde ich die meisten Funktionen privat machen oder onlyOwner?

Ist es möglich, eine Non- constantNor - publicFunktion in einem Smart Contract ( C2 ) aufzurufen? 😬

Ich verstehe die Antwort auf diese Frage nicht (mögliches Duplikat)
Kann ein Vertrag auf Ereignisse eines anderen Vertrags hören?

Wie die erste Zeile der ausgewählten Antwort lautet: "Ein Vertrag kann keine Ereignisse abhören". Sie müssen einen Dienst außerhalb der Blockchain implementieren, der Ereignisse an Ihren Vertrag weiterleitet.
Ismail Ich habe diese Frage selbst am Ende meiner Frage verlinkt, aber wie gesagt, ich verstehe diese Antwort nicht.
Die Antwort könnte nicht eindeutiger sein: „Ein Vertrag kann nicht auf Ereignisse hören“.
Danke dafür, Ismail, aber was ist mit meinen anderen Fragen? 😀
Alles in der Blockchain ist öffentlich, es gibt keinen privaten Speicher. Eine Dapp ist normalerweise eine Web-App, die mit einem Ethereum-Knoten „spricht“, um einen intelligenten Vertragsstatus abzufragen, und Transaktionen im Namen eines Benutzers erstellen kann, um den Vertragsstatus zu ändern. Ein Smart Contract ist ein Code im Blockchain-Status, der nur ausgeführt wird, wenn jemand eine Nachricht an ihn sendet. Sie können keine umfangreichen Berechnungen durchführen, der Speicherplatz ist teuer und die Berechnungsmenge in einer einzelnen Transaktion ist begrenzt. Ich würde vorschlagen, nach bereits beantworteten Fragen zu suchen und separate Fragen zu erstellen, wenn Sie weitere Zweifel haben.

Antworten (1)

Ich habe gute Antworten in Kommentaren von @ismail bekommen, danke. Aber ich poste hier eine Antwort für Referenzen zu meiner Frage:

F: Ist es möglich, eine nicht konstante oder öffentliche Funktion für einen Smart Contract aufzurufen?

Alles, was in einem Vertrag steht, ist für alle externen Beobachter sichtbar. Wenn Sie etwas privat machen, wird nur verhindert, dass andere Verträge auf die Informationen zugreifen und diese ändern, aber sie sind dennoch für die ganze Welt außerhalb der Blockchain sichtbar.

Entnommen aus der Solidity-Dokumentation hier

Verwenden Sie die Schaltfläche "Frage stellen", um eine neue Frage zu erstellen, und wenn Sie möchten, können Sie einen Link zu dieser Frage in den Textkörper einfügen. Sie schreiben stattdessen eine Antwort und haben nicht viel Sichtbarkeit.