惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
IT之家
IT之家
博客园 - 聂微东
The Cloudflare Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
H
Help Net Security
博客园 - 叶小钗
V
V2EX
WordPress大学
WordPress大学
J
Java Code Geeks
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
C
Check Point Blog
B
Blog
D
DataBreaches.Net
美团技术团队
罗磊的独立博客

博客园 - 邹华栋

idea 没有智能提示 以太坊彩票合约案例 Error: insufficient funds for gas * price + value 以太坊ERC20代币合约案例 - 邹华栋 - 博客园 助记词生成原理 通过超链接启动App cmd生成文件目录tree npm安装第三方库找不到“cl.exe”问题 node-rsa非对称加密 浏览器内核、渲染引擎、JS引擎简介 前端必读:浏览器内部工作原理 json-lib.jar开发包及依赖包的下载地址(转) 关于成长-浅谈社会动力之源 关于习惯 教学相长 Linux+Mono+Asp.net入门:05CentOs安装Mono(上) 【Linux+Mono+Asp.net公开课】视频下载 Linux+Mono+Asp.net入门:04VM安装CentOS Linux+Mono+Asp.net入门:03.在VM中创建虚拟机
web3调用call()方法获取不到返回值
邹华栋 · 2018-12-17 · via 博客园 - 邹华栋

一.web3的call()获取不到返回值问题和解决方法

  • 在彩票小合约中,遇到一个问题:合约中 有两个方法
    第一个返回一个账户地址,没有使用到当前方法调用者信息;
    第二个使用到了当前方法调用者信息
    在web3中使用call()来调用这两个方法,第二个 总是得不到值
  • 原因:第二个方法因为使用到了方法调用者的信息(msg.sender),所以 web3 在call调用合约这个方法时,需要将调用者的地址设置给 参数from,当然也可以通过直接设置 web3.eth.defaultAccount 来代替

web3调用合约方法call

  • 补充: web调用合约另一个要注意的类型:合约中的 resetData() 方法因为修改了合约的全局变量(也叫状态变量),需要花费,所以在 web3 中调用时使用 send()调用,并传入 from 和 gas。同理,合约中的 kill()方法因为要销毁合约,也需要通过 send() 调用并 传入 from 和 gas。

web3调用合约方法send

【完整 以太坊彩票合约案例源码: https://www.jianshu.com/p/6a0492cfb59a