首页 文章 精选 留言 我的

精选列表

搜索[solidity],共131篇文章
优秀的个人博客,低调大师

web3j获得的sha3值和solidity为什么会不同?

我正在尝试使用web3j来监控我的智能合约事件。我发现主题的第一个参数是事件名称的哈希值。因此,我想用web3j将事件名称哈希然后就可以映射得到我想要的事件。但是,我发现它的价值是不同的。不知道是什么情况。 代码如下: // my smart contract event EVWithdraw(address user ,uint256 amount ,bytes32 ticketID); 我在智能合约中调用EVWithdraw(address,uint256,bytes32): function getsha3(string func) public constant returns(bytes32) { return sha3("EVWithdraw(address,uint256,bytes32)"); } // returns 0x953d0c27f84a9649b0e121099ffa9aeb7ed83e65eaed41d3627f895790c72d41 我的java代码: String hashed = Hash.sha3("EVWithdraw(address,uint256,bytes32)"); // returns 0x5e148119b535e6da59d359ccb21e1987190bf984ea6998cc09de3b3d056603bf 为什么值是不同?我跟踪了Sha3类,好像也使用了keccak256。这是编码问题吗? 问题的答案 web3j Sha3函数需要一个十六进制编码的字符串值。如果你先把字符串string转换成字节bytes,就ok了。如下: Hash.sha3("EVWithdraw(address,uint256,bytes32)".getBytes(StandardCharsets.UTF_8)) 原文《以太坊常见问题和错误》中的: http://cw.hubwiz.com/card/c/ethereum-FAQ/1/2/5/ 另外推荐一些之前的教程: python以太坊,主要是针对python围绕web3.py进行区块链以太坊应用开发的讲解。 web3j,主要是针对java和android程序员围绕web3j库进行区块链以太坊开发的讲解。 php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。 以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。 以太坊教程,主要介绍智能合约与dapp应用开发,适合入门。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册