Web3J调用代币合约操作

一、在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 注意:此路径根据你的下载解压地址进行配置)。

解压下的文件


在DOS下执行web3j出现如图表示正常

二、获取智能合约的bin和abi
1、如果是针对已有的智能合约,我们可以在以太坊浏览器里面拿到abi和bin文件。


以太坊浏览器

2、如果是自己测试的合约,可以通过remix去拿abi,bin。

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合约文件

四、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();

}

}

你可能感兴趣的:(Web3J调用代币合约操作)