FISCO-BCOS / FISCO-BCOS/java-sdk

事件topics不应该只截取前4字节!

Abierto
#352 1 comentario 0 reacciones 0 asignados Ver en GitHub
resolved test-doc v2.9.0
Lenguaje dominante
Java
Estrellas
58
Forks
62
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

在sdk中的ContractABIDefinition类中,事件主题的计算方式逻辑如下:
![企业微信截图_16306675012145](https://user-images.githubusercontent.com/6778136/131996832-bad58ffb-729d-4d30-a0c0-53c370358681.png)

这样的话,就截取了sha3([事件签名])的前4字节,得到结果类似于:
“0xb8b1cbdd”

但是交易回执抛出的事件中,其实事件topics是应该保存整个32字节的,例如
“0x8d85a70fd2c5d140a4a01143492d27ff82cfad4cead313e66c53f39b0feb5e0f”

这造成的后果是,ContractABIDefinition类的eventTopicsToEvents就没有办法直接拿来匹配交易回执中的事件主题了。

解决办法:
修改ContractABIDefinition.addEvent方法,不要再复用methodId的生成方法,直接对事件签名做sha3即可。

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza en el método ContractABIDefinition.addEvent del SDK e inspecciona cómo las firmas de eventos reutilizan actualmente la generación de ID de métodos. Comprueba eventTopicsToEvents y verifica que se pueda hacer coincidir un topic del recibo de una transacción que contenga el hash completo de 32 bytes; se considera hecho cuando el cálculo y la coincidencia del topic del evento utilizan el hash completo en lugar de los primeros cuatro bytes.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
blockchain
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.