Skip to content

yaachou/ethereum-abi-input-decoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

以太坊智能合约输入参数解码器

重要

觉得有用请点击star⭐⭐⭐,感谢!!!

背景

之前导师安排的任务,需要对hive表中存的区块链交易数据进行提取入库,其中就需要对智能合约参数进行解码,拿到原始输入值。

在github上尝试搜索过相关解码器,大多数项目使用了基于以太坊的JavaScript API - web3.js,但由于业务需要java,挑选了star数最多的几个java程序。在进行测试时发现错误较多,只考虑了比较简单的几种类型,不支持含有动态数组的参数解码。于是在研究了编码规则后,决定自己实现解码器的编写,在对不同类型组合的输入进行测试后,暂时没有发现大问题。

原理

智能合约abi即合约函数调用的接口说明,其调用格式可以表示为函数选择器+参数编码。其中:

  • 函数选择器即对函数名及其类型的keccak算法8位16进制加密值;
  • 参数编码则是根据约定的规则对不同类型参数值编码的结果。

官方文档:Contract ABI Specification — Solidity 0.8.7 documentation (soliditylang.org)

Releases

No releases published

Packages

No packages published

Languages