国密环境的FISCO BCOS,现在需要解析合约的输入input参数,解析为类似WeBase或浏览器的展示数据。
本文引入web3sdk,修改TransactionDecoder支持国密算法,实现input解析。
解析input,需要对应合约的ABI,如果解析方法是一个,但是有多个合约,建议合并所有合约的ABI为一个实现。合并ABI的时候不用考虑重复情况,TransactionDecoder在build的时候会追加所有合约方法到Map,重复的会自动覆盖。
如果不合并ABI的话,就需要建立映射,建立input与ABI的对应关系,解析时使用对应的ABI解析。
MyTransactionDecoder
重新定义交易编码器,复用TransactionDecoder代码实现,增加国密支持。
1 | import com.fasterxml.jackson.core.JsonProcessingException; |
MyResultEntity
自定义MyResultEntity,复用ResultEntity实现,配合其他类实现返回结果体。
1 | import com.alipay.api.internal.util.codec.Base64; |
MyInputAndOutputResult
自定义MyInputAndOutputResult,复用InputAndOutputResult实现,实现输入输出结果返回。
1 | import java.util.List; |
GetInputResp
自定义的业务返回体,返回最终前端需要的数据。
1 | import com.btsi.base.bcos.MyInputAndOutputResult; |
TxParseServiceImpl
自定义的业务层,调用编码交易等base类,实现解析。
1 |
|