智能合约.sol编译成.java
本文主要使用solc和web3j来进行编译
使用npm安装solc
(这里的先决条件要安装nodejs才能使用npm)
npm install -g solc
切换到合约目录,进行编译(我自己的合约在E:\learnDemo\Web3j\src\main\resources下)
E:\learnDemo\Web3j\src\main\resources>solcjs --abi --bin HelloWorld.sol -o build
编译生成abi和bin,在同级的build目录下
安装web3j
下载安装包,并解压到合适的位置,并配置环境变量(这里可以参考jdk的安装配置方法)
web3j-4.3.0
注意,这里如果安装的是4.3.0的版本,后期在项目的maven中也要使用相同的版本,否则会出现一部分包无法找到的报错
检查安装是否成功,出现版本号即可
web3j version
切换到刚才生成的build目录下,使用web3j工具进行编译
web3j solidity generate -b ./HelloWorld_sol_HelloWorld.bin -a ./HelloWorld_sol_HelloWorld.abi -o ../../java/ -p com.eth.contract
# 参数的解释
# -b ./HelloWorld_sol_HelloWorld.bin 指定bin文件
# -a ./HelloWorld_sol_HelloWorld.abi 指定abi文件
# -o ../../java/ 指定输出路径(我这里从项目resources切换到了java目录下)
# -p com.eth.contract 指定输出的文件的包