区块链学习-Golang 与智能合约的交互(一)

iSakura · · 3876 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

在以太坊中,提供了 abigen 的指令给我们智能合约的 go 语言文件,网上许多教程也是基于这个指令来生成合约 go 文件来进行操作的。参考:
Github 某源码实现
使用Go语言与Ethereum智能合约进行交互
但是这些文章年代久远....存在让你崩溃的问题。
abigen 内部其实是调用了 solc 来对合约文件进行编译生成对应语言版本的代码文件,按照教程正常来说只需要这样一行指令就能搞定

abigen --sol yourContract.sol --pkg main --out yourContract.go

但是目前版本直接对合约文件执行以上指令会返回这样的一行错误

Failed to build Solidity contract: exit status 7

无法定位实际问题点,网上也没搜到对应的问题讨论
最后通过自己的摸索发现可以这样来操作

先通过 solc 的新指令 solcjs (直接 npm install -g solc 下载后的指令,solc 的指令需要 npm install -g solc-cli)生成对应的 bin abi 合约文件

// 生成合约 abi 文件
solcjs yourContract.sol -o filedir --abi
// 生成合约 bin 文件
solcjs yourContract.sol -o filedir --bin

最后使用以太坊的 abigen 生成对应的 go 文件

abigen --abi filedir/yourContract.abi --bin filedir/yourContract.bin --pkg main --out yourContract.go

检查发现与教程生成的 go 文件内容相似,进一步的交互使用继续研究


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:iSakura

查看原文:区块链学习-Golang 与智能合约的交互(一)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3876 次点击  
加入收藏 微博
被以下专栏收入,发现更多相似内容
上一篇:2018-08-08
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传