FISCO-BCOS / FISCO-BCOS/java-sdk
事件topics不应该只截取前4字节!
- 主要言語
- Java
- スター
- 58
- フォーク
- 62
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
在sdk中的ContractABIDefinition类中,事件主题的计算方式逻辑如下:

这样的话,就截取了sha3([事件签名])的前4字节,得到结果类似于:
“0xb8b1cbdd”
但是交易回执抛出的事件中,其实事件topics是应该保存整个32字节的,例如
“0x8d85a70fd2c5d140a4a01143492d27ff82cfad4cead313e66c53f39b0feb5e0f”
这造成的后果是,ContractABIDefinition类的eventTopicsToEvents就没有办法直接拿来匹配交易回执中的事件主题了。
解决办法:
修改ContractABIDefinition.addEvent方法,不要再复用methodId的生成方法,直接对事件签名做sha3即可。
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
SDK の ContractABIDefinition.addEvent メソッドから始め、イベントシグネチャが現在どのようにメソッド ID の生成を再利用しているかを調べます。eventTopicsToEvents を確認し、完全な 32 バイトのハッシュを含むトランザクションレシートの topic を照合できることを検証します。完了条件は、イベント topic の計算と照合で最初の 4 バイトではなく完全なハッシュを使用することです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java
- 領域
- blockchain
- issue の種類
- バグ
- 難易度
- 2/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- 明確に書かれている
- 初心者へのやさしさ
- 35/100