java - 如何解码交易的输入数据?
问题描述
我在 java 中使用 web3j 来获取交易的输入数据。我可以获得数据,但问题是如何解码这些数据。
Input data: "0x070ec83b000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000015118f200000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000.........."
String inputdata = null;
Optional<Transaction> tx = web3.ethGetTransactionByHash(txHash).send().getTransaction();
if (tx.isPresent()) {
inputdata = tx.get().getInput();
}
//DECODE
byte[] bytes = Hex.decodeHex(inputdata.substring(2).toCharArray());
System.out.println(new String(bytes, "UTF-8"));
当你执行代码时,你得到的是各种字符。
解决方案
我不精通nodeJS,但这里是如何在python中做到这一点,以防万一。
txn = web3.eth.get_transaction(txHash)
txnInput = routerContract.decode_function_input(txn.input)
print(txnInput)
推荐阅读
- powerbi - 如何填充表 DAX 中的行
- c++ - OpenCV readNetFromONNX 函数导致 dll 中的堆栈溢出
- java - 使用 Spring MVC 从 Eclipse 运行项目时,Apache Tomcat9 抛出 404 未找到
- constraints - Optaplanner:基于 ProblemFactCollectionProperty 的规划变量的动态数量
- python - 如何使用与python中的文本文件匹配的名称将子目录复制到另一个文件夹
- java - 如何限制输入的 char 值?
- linux - linux_rename 目录中的文件,通过使用 find 命令添加时间戳
- python - 在折线图上绘制等利润线可行区域
- go - 如何在 Go 例程中操作切片
- haskell - 高级类型类的量化约束