美文网首页我爱编程
区块链学习-Golang 与智能合约的交互(一)

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

作者: iSakura | 来源:发表于2018-08-08 15:09 被阅读0次

    在以太坊中,提供了 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 文件内容相似,进一步的交互使用继续研究

    相关文章

      网友评论

        本文标题:区块链学习-Golang 与智能合约的交互(一)

        本文链接:https://www.haomeiwen.com/subject/nefxbftx.html