一、在windows上面安装web3j
1、安装node.js,教程:https://blog.csdn.net/qq_31708763/article/details/82755242
2、下载web3js,下载地址如下:https://github.com/web3j/web3j/releases
3、解压下载的web3js的压缩文件,并配置好对应的环境变量(E:\web3j-4.3.0\web3j-4.3.0\bin 注意:此路径根据你的下载解压地址进行配置)。
二、获取智能合约的bin和abi
1、如果是针对已有的智能合约,我们可以在以太坊浏览器里面拿到abi和bin文件。
2、如果是自己测试的合约,可以通过remix去拿abi,bin。
3、拿到abi和bin放到contract.abi和contract.bin文件中去。
三、生成java的合约文件
web3j solidity generate -b Contract.bin -a Contract.abi -p com.demo.contract -o D:/java
四、java中通过web3j调用合约方法,具体代码如下:
@Test
private static void use() {
Web3j web3j = Web3j.build(new org.web3j.protocol.http.HttpService("http://172.18.228.110:8545"));
String contractAddress ="0x6bfc01b65db45b302758eb950e5c333058e79c4b";
Credentials credentials =null;//可以根据私钥生成
SealContract contract = SealContract.load(contractAddress, web3j, credentials,
Convert.toWei("10", Convert.Unit.GWEI).toBigInteger(),
BigInteger.valueOf(100000));
String myAddress ="0x7693C4c1512c88625b2d5dD45d18Db640fF5cD20";
String toAddress =null;
BigInteger amount = BigInteger.ONE;
try {
BigInteger balance = contract.balanceOf(myAddress).send();
System.out.println(balance);
// TransactionReceipt receipt = contract.transfer(toAddress, amount).send();
//etc..
}catch (Exception e) {
e.printStackTrace();
}
}