如何用web3j编译solidity智能合约源代码
通过solc编译器编译solidity代码到字节码。你可以参考solidity安装文档在本地安装编译器。
编写solidity代码运行:
$ solc <contract>.sol --bin --abi --optimize -o <output-dir>/
bin
和ABI
编译器参数都需要充分利用web3j中的智能合约。
- bin,输出包含十六进制编码的solidity二进制文件以提供交易请求。
- ABI,输出一个solidity的应用程序二进制接口(ABI)文件,它详细描述了所有可公开访问的合约方法及其相关参数。这些细节和合约地址对于智能合约的交互是至关重要的。ABI文件也用于封装solidity的智能合约。
这里也有一个gas论证,用来提供智能合约所需gas的估计值,并用它的方法进行交易。
你可以通过solidity的浏览器项目Remix在浏览器中编写和编译solidity代码。使用solidity浏览器项目Remix IDE对于较小的智能合约来说是很好的,但是你遇到与较大的智能合约相关的问题。
还可以通过以太坊客户端(如geth和Parity)编译solidity代码,web3j中也支持使用JSON-RPC方法 eth_compileSolidity。然而,必须在客户端上安装solidity编译器,这样它才能正常工作。
还有更多的选择,请参阅官网文档中的相关章节。
原文《Java以太坊类库web3j官网中文翻译》中的:
http://cw.hubwiz.com/card/c/web3j/1/12/6/
另外推荐几个很受欢迎全网稀缺的互动教程:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
web3j通过命令行工具新建钱包、更新钱包密码及转账
生成一个新的以太坊钱包: $ web3j wallet create 更新现有钱包的密码: $ web3j wallet update <walletfile> 将以太币发送到另一个地址: $ web3j wallet send <walletfile> 0x<address>|<ensName> 当把以太币Ether发送到另一个地址时,在交易发生之前,你会被问到一系列问题。见下面的完整示例: 下面的例子演示如何使用web3j发送以太币Ether到另一个钱包。 $ ./web3j-<version>/bin/web3j wallet send <walletfile> 0x<address>|<ensName> _ _____ _ _ | | |____ (_) (_) __ _____| |__ / /_ _ ___ \ \ /\ / / _ \ '_ \ \ \ | | | / _ \ \ V V / __/ |_) |.___/ / | _ | || (_) | \_/\_/ \___...
- 下一篇
web3j如何构建与部署智能合约
智能合约的构建和部署发生在deploy方法中: YourSmartContract contract = YourSmartContract.deploy( <web3j>, <credentials>, GAS_PRICE, GAS_LIMIT, [<initialValue>,] <param1>, ..., <paramN>).send(); 这个方法将使用提供的凭据和构造函数参数值在以太坊区块链上创建智能合约的新实例。 如果你的智能合约在构造上接受以太币,则只需要初始化参数值<initialValue>。这就要求在合约中出现支付payable。 它会返回一个新的智能合约封装实例,它包含智能合约的底层地址。如果希望用现有的智能合约构造智能合约封装的实例,只需传递地址: YourSmartContract contract = YourSmartContract.load( "0x<address>|<ensName>", web3j, credentials, GAS_PRICE, G...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程