热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Remix编译智能合约构造入参问题

1、通过浏览器访问Remix(http://remix.ethereum.org/),待加载完毕后,我们在contract目录下新建一个名为Voting.sol的智能合约。

1、通过浏览器访问Remix(http://remix.ethereum.org/),待加载完毕后,我们在contract目录下新建一个名为Voting.sol的智能合约。
在这里插入图片描述
2、然后选择左边Solidity compiler对Voting.sol合约进行编译,出现左下角的ABI与bytecode说明编译完成。
在这里插入图片描述
3、然后部署合约到ganache测试链(这里后面附上安装教程)。环境选择Web3 Provider,然后根据自己部署的ganache配置url,点击ok保存。我这里部署在本机,所以是http://127.0.0.1:8545
在这里插入图片描述
4、输入合约参数(我的合约构造函数需要传参),然后点击Deploy对合约进行部署,发现如下错误。根据错误提示说我们的入参是无效的,我们分析合约可知,构造参数入参是定义bytes32(32字节),如果没有占满32字节的话会补0,但是这里我们看到错误提示是没有补0的,因此我们要自己补全。到底需要补多少呢?我这里输入的是16进制,16进制一个字符占4位,这里是bytes32(32字节),由于1字节=8位,因此32字节=256位。我这里的入参是0xff,也就是2个f,那么这里就占用了2X4=8位,256-8=248位。248/4=62个16进制的字符。所以0xff补全后的参数为”0xff00000000000000000000000000000000000000000000000000000000000000“。
在这里插入图片描述
重新替换入参后后再次发布,提示发布成功。
在这里插入图片描述

补:ganache区块链测试环境安装
1、首先得安装好nodejs环境
2、然后创建一个项目,在该目录下打开命令窗口,然后执行npm init
3、步骤2完毕后再执行npm ganache-cli,静待安装完毕。然后进入该目录"node_modules/.bin"下执行ganache-cli等待环境启动,出现下图所示说明启动成功。
在这里插入图片描述

参考:solidity中文文档——登链社区。https://learnblockchain.cn/docs/solidity/


推荐阅读
author-avatar
古镇飞天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有