解析 ETH 区块数据交易input

2023-10-29

这里使用了一个开源项目:https://github.com/rvullriede/evm-abi-decoder

在pom中添加依赖即可:

    <dependency>
      <groupId>net.osslabz.evm</groupId>
      <artifactId>evm-abi-decoder</artifactId>
      <version>0.0.6</version>
    </dependency>

这个jar需要jdk11,想使用jdk8的同学可以把项目中net.osslabz.evm.abi.definition.AbiDefinition#fromJson(java.lang.String) 的入参 Files.readString(Path.of(abiFilePath)) 改一下,这个Files.readString(Path.of(abiFilePath)) 方法只有jdk11有,是读取文件中所有内容为一个string,可以自己实现下。

示例:

package com.mathieu.blockchain;

import com.alibaba.fastjson.JSONObject;
import net.osslabz.evm.abi.decoder.AbiDecoder;
import net.osslabz.evm.abi.decoder.DecodedFunctionCall;

import java.io.IOException;

/**
 * 解析不同的input需要使用其对应的abi
 * abi查询网址 : https://www.smartcontracttoolkit.com/abi
 * <p>
 * 一条input对应的api类型可以通过txn的token去查询tokenMeta获取,tokenMeta中的 tokenType就是abi类型
 * https://docs.nodereal.io/reference/nr_gettokenmeta#example
 * <p>
 * curl https://bsc-mainnet.nodereal.io/v1/your-api-key \
 * -X POST \
 * -H "Content-Type: application/json" \
 * -d '{"jsonrpc":"2.0","method":"nr_getTokenMeta","params":["0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"],"id": 0 }'
 * <p>
 * {
 *   "id": "0",
 *   "jsonrpc": "2.0",
 *   "result": {
 *     "name": "USD Coin",
 *     "symbol": "USDC",
 *     "decimails": 18,
 *     "tokenType": "erc20"
 *   }
 * }
 *
 * @author wangxianghu
 */
public class AbiDecodeDemo {
  public static void main(String[] args) throws IOException {
    AbiDecoder abiDecoder = new AbiDecoder("abiFiles/ERC20.json");
    String input = "0xa9059cbb0000000000000000000000006eba81f430ff5ab8daee861832c015701db87b2400000000000000000000000000000000000000000000001ffbe5120bc8780000";
    // 解析input
    DecodedFunctionCall decodedFunctionCall = abiDecoder.decodeFunctionCall(input);
    System.out.println(JSONObject.toJSONString(decodedFunctionCall.getParams()));
    // 结果
    // [{"name":"_to","type":"address","value":"0x6eba81f430ff5ab8daee861832c015701db87b24"},{"name":"_value","type":"uint256","value":590000000000000000000}]
  }
}

https://github.com/wangxianghu/learn-blockchain/blob/main/src/main/java/com/mathieu/blockchain/AbiDecodeDemo.java

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解析 ETH 区块数据交易input 的相关文章

  • Qt的基本语法及其使用(一)

    Qt的概念 Qt是通用的C 开发界面框架 C 图形用户界面 应用程序开发框架 既可以开发GUI程序也可以开发开发非GUI程序 Qt是面向对象的框架 使用特殊的代码生成扩展 Qt的历史 1991由QT公司研发 2008年被诺基亚收购 2012
  • 区块链的安全性与去中心化特点:深入探讨区块链技术的安全性和去中心化特点

    摘要 本文将深入探讨区块链技术的两个核心特点 安全性和去中心化 区块链作为一种分布式账本技术 通过其独特的安全性和去中心化特点 在许多领域引起了广泛关注 我们将分析区块链的安全性原理和其与去中心化的关系 以及区块链技术在保护数据安全和提供信
  • 区块链数字存证平台有哪些功能模块

    区块链数字存证平台通常包括以下功能模块 数字存证 将数字文件的哈希值存储到区块链上 确保文件的完整性和不可篡改性 时间戳 记录数字文件的创建时间和存证时间 确保存证的时效性和证据的可信度 鉴定证书 提供数字文件的鉴定证书 证明文件的真实性和
  • 【CV with Pytorch】第 7 章 :图像异常检测

    机器学习的研究使我们进入了研究各种模式和行为的过程 它使我们能够构建可以研究封闭环境的模型 预测能力通常遵循模型训练过程 这是我们在训练模型时需要经常问的一个重要问题 还有另一个问题需要回答 多少数据足以帮助模型理解分布 以便我们有一个好的
  • Query 聚类

    为了提高阅读体验 请移步到 Query 聚类 背景 搜索系统优化长尾 query 想了解一下长尾 query 长什么样 大体上都有几类 最好能归类 一类一类处理 Query 数据源 包含 什么 怎么 如何 关键词的 Query K mean
  • 筛选sql中一列的重复数据及重复次数

    SELECT PROJECT CODE COUNT PROJECT CODE FROM meng project info GROUP BY PROJECT CODE HAVING COUNT PROJECT CODE gt 1 结果
  • 圆石说│彭一鸣:运用区块链技术赋能实体旅游产业;微软开放6万项专利包括一个开源区块链项目……

    智联招聘 区块链岗位需求主要集中在一线和新一线城市 智联招聘报告显示 从目前区块链职位的城市分布来看 该领域的岗位需求主要集中在一线和新一线城市中 其中 北京 上海和深圳位于第一梯队 职位占比分别达到24 20 和10 杭州 广州和成都紧随
  • 自己动手部署以太坊联盟链

    一个区块链学习项目 GitHub https github com xianfeng92 Love Ethereum 假设已经在Ubunbu 14 04 LTS上安装好了以太坊客户端Geth 使用Geth部署以太坊联盟链 以太坊Geth客户
  • "我为区块链赋能实体经济代言"第二批代言人:复旦大学张江研究院教授陈文君

    我为区块链赋能实体经济代言 推出以来 颇受行业关注 为进一步规范行业发展 落实区块链赋能实体经济的目标 为行业发展 正本清源而发声 新一轮的 我为区块链赋能实体经济代言 于9月3日重磅启动 我为区块链赋能实体经济代言100人第二批 第3位代
  • hyperledger fabric介绍

    一 Hyperledger Fabric介绍 2015年 Linux基金会启动了Hyperledger项目 目标是发展跨行业的区块链技术 Hyperledger Fabric是Hyperledger中的一个区块链项目 包含一个账本 使用智能
  • Redis热点数据处理

    1 概念 热点数据就是访问量特别大的数据 2 热点数据引起的问题 流量集中 达到物理网卡上限 请求过多 缓存分片服务被打垮 redis作为一个单线程的结构 所有的请求到来后都会去排队 当请求量远大于自身处理能力时 后面的请求会陷入等待 超时
  • springboot整合shiro的坑记录

    首先我参考文章 https blog csdn net Yearingforthefuture article details 117384035 进行学习 由于此文章没有讲springboot的版本 我于是用了idea2022 3 1的默
  • 深度学习模型参数量/计算量(附计算代码)

    参考 https mp weixin qq com s biz MzI4MDYzNzg4Mw mid 2247546551 idx 2 sn f198b6365e11f0a18832ff1203302632 chksm ebb70e63dc
  • 期货ctp基础知识(合约,开仓,平仓,做多,做空,保证金,手续费)

    期货ctp教程地址 期货ctp教程 合约 期货买卖的是合约 股票买卖的是股票 做多和做空 2 1 做多 你就是买入看涨 所以买这个动作对应的指令就是 买开仓 当你赚了或者止损的时候 就要把合约卖掉 对应的指令就是 卖平仓 2 2 做空 你先
  • 扬帆证券:玻璃期价涨势强劲 投资者需理性看待

    上个交易周 国内产品期货商场全体工作平稳 其间 玻璃期货体现较为出色 主力合约上星期五午后忽然大幅拉升 毕竟收涨逾7 周内累计涨幅超越10 业内人士以为 近期玻璃期价走势强劲主要是受地产政策利好和本钱增加的推动 后市行情或将偏震动 上涨持续
  • Stellar Consensus Protocol(SCP)的共识算法

    Stellar Consensus Protocol SCP 是一种用于Stellar网络的共识算法 旨在确保网络中所有节点对账本的一致性 SCP的设计灵感来自于拜占庭将军问题 Byzantine Generals Problem 它采用了
  • NFTScan | 12.11~12.17 NFT 市场热点汇总

    欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总 周期 2023 12 11 2023 12 17 NFT Hot News 01 Pudgy Penguins 衍生 NFT Lil Pudgys 过去一天
  • 股指期权开通要什么条件?

    股指期权是一种金融衍生工具 它赋予持有者在未来某一特定日期按照约定的价格买入或卖出标的资产的权利 对于投资者来说 开通股指期权账户需要满足一定的条件 那么股指期权开通要什么条件 本文来自 财顺期权 开通股指期权账户需要的条件是 申请前20个
  • 期权开户最低多少钱个人可以开?

    大家新年好 现在2024年龙年 很多想玩期权的小伙伴都知道期权开通需要50万的门槛 那么今天来给大家详细介绍下期权开户最低多少钱个人可以开 本文将对期权开户最低金额进行探讨 帮助投资者更好地了解期权交易的投资门槛 本文来自 期权酱 一 期权
  • 你的服务器还安全吗?用户数据是否面临泄露风险?

    一系列严重的网络安全事件引起了广泛关注 多家知名公司的服务器遭到黑客挟持 用户的个人数据和敏感信息面临泄露的风险 这些事件揭示了网络安全的脆弱性和黑客攻击的威胁性 提醒着企业和个人加强对网络安全的重视 一 入侵案例 1 1 蔚来数据泄露 1

随机推荐

  • SpringCloud-消息总线

    消息总线 Spring Cloud Bus 概述 一言以蔽之 分布式自动刷新配置功能 Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新 是什么 Spring Cloud Bus 配合Spr
  • 关于 volatile——可见性,有序性,内存屏障

    并发编程的三大特性 原子性 有序性 可见性 从这三个方面去看一下 volatile volatile 保证了可见性 public class Demo1 private boolean flag true public void test
  • ​LeetCode刷题实战540:有序数组中的单一元素

    算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家做一道算法题 题目就从LeetCode上面选 今天和大家聊的问题叫做 有序数组中的单一元素 我们先来
  • 模拟实现库函数strlen(详解)

    模拟实现库函数strlen 的意思是 不用strlen函数 但要求出字符串长度 1 先打印主函数 记字符串长度为len 并引入自己定义的strilen函数 含arr int main char str abcdef int len strl
  • 【python图像处理】python的图像处理模块Image【原创】

    版本信息 2 7 11 环境 windows 7 64位系统 编辑器 PyCharm 运行工具 PyCharm 文件地址 D phpStudy WWW python Image 一 引入图像模块 1 PIL简介 PIL Python Ima
  • 经典场效应管如何快速关断技巧-KIA MOS管

    mos管的快速关断原理 R4是Q1的导通电阻没有Q1就没有安装的必要了 当低电位来时Q1为泻放扩流管 功率MOS管怎样关断 能否用PWM实现 怎样实现 功率mosfet的三个端口 G极 D极 S极 G极控制mosfet的开通 关断 给GS极
  • Linux查看文件命令

    文章目录 Linux查看文件命令 1 使用vim命令 查看并编辑文件 2 使用cat命令 一次性显示文件的所有内容 3 使用head 命令 显示文件开头 默认10行 4 使用tail 命令 显示文件结尾 默认10行 vi vim工具共分为三
  • MongoDB shell操作

    MongoDB shell操作 实验目的 1 了解MongoDB的shell操作语法 2 掌握MongoDB中对数据增删改查的命令 实验原理 MongoDB shell是一个可执行文件 是MongoDB自带的一个交互式JavaScript
  • 仅需一个参数,开启微信小程序长按图片转发朋友,发送给朋友功能。小程序转发图片给朋友功能。

    原来 只需要在 image 属性加入 show menu by longpress 1 就可以实现了 太方便了吧 你是不是在这里找到答案了 给个赞呗
  • 信息收集——根据图中信息找到图中的餐厅

    这是一道网络迷踪类型的题目 先观察图片 图中比较明显的特征便是薯条和汉堡下面的小票和海报 或者类似于海报的东西 小票明显是英文的 所以初步判定该餐厅不是大陆的 去百度上搜索国外麦当劳餐厅小票 由以上三张图片可知 英文小票上对于麦当劳餐厅的描
  • 27道多线程核心面试题(附答案),你真的准备好面试了吗?

    今天给大家分享的是比较全面的多线程面试题 大家在面试的过程中不免会被问到很多专业性的问题 有的时候回答的并不是那么全面和精细 这仅仅代表个人观点 1 如何预防死锁 1 首先需要将死锁发生的是个必要条件讲出来 互斥条件 同一时间只能有一个线程
  • 常成员函数和常对象

    const回顾 const int a 10 a不能被改变 int const p 指针的指向可变 指向里的值不可变 int const p 指针的指向不可变 指向里的值可变 int const const p 都不可变 const int
  • PageHelper分页插件使用

    http blog csdn net nz360 article details 52326232 主要记录自己使用PageHelper分页的过程 需要的jar包 java view plain copy
  • 关于Context(上下文)的理解

    一直听到上下文一说 一直没弄清楚到底是啥意思 今天总结一下 不知道对不对 感觉对Context这个词翻译的不太好 不应该叫上下文 应该直接就叫 环境 不过都这么叫 就叫上下文好了 所谓的上下文就是指语境 每一段程序都有很多的外部变量 只有想
  • Python四种常用的高阶函数,你会用了吗

    1 什么是高阶函数 把函数作为参数传入 这样的函数称为高阶函数 例如 def func1 x y f return f x f y num func1 10 2 abs print num 注意 把函数作为参数传入的时候 不要再传入函数后面
  • Latex中cases环境引入报错

    编写 begin equation C i begin cases 0 i 0 max 0 x i bar x C i 1 i neq 0 end cases end equation 时报错 需要导入宏包 usepackage amsma
  • 利用云主机搭建游戏加速器(仅限国内加速)

    利用云主机搭建游戏加速器 仅限用于中国大陆内游戏加速服务 注意 仅限用于中国大陆内游戏加速服务 禁止开飞机 最近在玩西山居公司的剑网三游戏 因为自己用的是联通宽带 但是玩的是电信区的服务器 我使用的是腾讯云的云主机 大家可以根据需要自己来做
  • BES2300x笔记(20) -- IIC驱动

    哈喽大家好 这是该系列博文的第二十篇 篇 lt lt 系列博文索引 快速通道 gt gt 一 前言 说到IIC驱动 绝对是一个老生常谈的话题 但凡入坑了嵌入式开发的道友 肯定都能说的头头是道 编写个驱动 调试个外设 那更是信手拈来 不在话下
  • java 静态分析工具_了解您的Java静态分析工具

    java 静态分析工具 有许多Java静态分析工具在起作用 每个人都专注于特定领域并具有自己独特的优势 这是一个有用的摘要 Pmd 基于静态规则集的Java源代码分析器 它识别潜在的问题 例如 可能的错误 尝试 捕获 最终 切换块为空 无效
  • 解析 ETH 区块数据交易input

    这里使用了一个开源项目 https github com rvullriede evm abi decoder 在pom中添加依赖即可