Indizierte Variablen bei Ereignis werden nicht dekodiert

Ich gebe derzeit alle Ereignisse ohne Filter zurück und alle indizierten Variablen werden zurückgegeben, aber sie sind codiert. Die anderen nicht indizierten Variablen sind sichtbar und werden problemlos abgerufen und sind nicht codiert.

fevent.GetAllChanges<TEvent>(filterAll).Result;

Wie decodiere ich diese Felder oder fordere sie so an, dass sie nicht codiert sind?

Geben Sie hier die Bildbeschreibung ein

CampaignId oben sollte eine indexierte Ganzzahl sein.

Bearbeiten :

Das obige sollte funktionieren, da dies in den NEtherium-Beispielen gezeigt wird, die hier unter Aufrufen eines Ereignisses gezeigt werden

Antworten (2)

Das kannst du nicht.

Indizierte Themen enthalten keine ungehashten Werte. Es ist in Ordnung, wenn Sie die CampaignId kennen, an der Sie interessiert sind, und danach filtern. Es ist nicht so toll, wenn Sie versuchen, von einem Thema zurück in die ursprüngliche Eingabe zu konvertieren.

Ich hoffe es hilft.

Danke Rob, ich füge einfach die Kampagnen-ID als eine weitere Variable hinzu, die nicht indiziert ist und für die Suche indiziert ist
Der NEtherium-Blog, der dies heute noch einmal betrachtet, zeigt ein Beispiel, in dem sie einen unverschlüsselten Wert aus einem indizierten Toplic zurückgeben. sie überprüfen die Ausgabe von „log7[0].Event.MultiplicationInput“? Link: nethereum.readthedocs.io/en/latest/contracts/…

Fügen Sie die Antwort von Rob Hitchens B9lab hinzu und gehen Sie vom Solidity-Dokument hier aus

Sie können das Attribut indexed zu bis zu drei Parametern hinzufügen, wodurch sie zu einer speziellen Datenstruktur namens „Topics“ anstelle des Datenteils des Protokolls hinzugefügt werden. Wenn Sie Arrays (einschließlich Zeichenfolgen und Bytes) als indizierte Argumente verwenden, wird der Keccak-256-Hash stattdessen als Thema gespeichert, da ein Thema nur ein einzelnes Wort (32 Bytes) enthalten kann.

Nicht alle Datentypen, die für Themen verwendet werden, werden gehasht, nur String- und Bytes-Datentypen werden gehasht. Als ich also in meinem Beispiel die Variable in ein int änderte, löste dies mein Problem und ich konnte das Ergebnis meiner Themen-/indizierten Variablen sehen.