FISCO-BCOS / FISCO-BCOS/java-sdk
事件topics不应该只截取前4字节!
- Vorherrschende Sprache
- Java
- Sterne
- 58
- Forks
- 62
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
在sdk中的ContractABIDefinition类中,事件主题的计算方式逻辑如下:

这样的话,就截取了sha3([事件签名])的前4字节,得到结果类似于:
“0xb8b1cbdd”
但是交易回执抛出的事件中,其实事件topics是应该保存整个32字节的,例如
“0x8d85a70fd2c5d140a4a01143492d27ff82cfad4cead313e66c53f39b0feb5e0f”
这造成的后果是,ContractABIDefinition类的eventTopicsToEvents就没有办法直接拿来匹配交易回执中的事件主题了。
解决办法:
修改ContractABIDefinition.addEvent方法,不要再复用methodId的生成方法,直接对事件签名做sha3即可。
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne in der SDK-Methode ContractABIDefinition.addEvent und untersuche, wie Ereignissignaturen derzeit die Generierung von Methoden-IDs wiederverwenden. Überprüfe eventTopicsToEvents und stelle sicher, dass ein Transaktionsquittungs-Topic, das den vollständigen 32-Byte-Hash enthält, zugeordnet werden kann; erledigt ist die Aufgabe, wenn die Berechnung und Zuordnung des Event-Topics den vollständigen Hash statt der ersten vier Bytes verwendet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- blockchain
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 35/100