美文网首页
java使用web3j调用部署在以太坊上solidity编写的智

java使用web3j调用部署在以太坊上solidity编写的智

作者: 小吖么小一郎 | 来源:发表于2019-02-21 19:06 被阅读0次

    第一步:安装web3j和solidity

    1. npm install -g solc

    2. pom.xml文件引入依赖:

    <dependency>

    <groupId>org.web3j</groupId>

    <artifactId>core</artifactId>

    <version>3.4.0</version>

    </dependency>

    第二步:web3j生成java文件:

    1. 下载web3j包:

    https://github.com/web3j/web3j/releases

    2. 进入到web3j-3.3.1/bin目录下,创建 aa.abi 和 aa.bin文件

    3. 进入到cmd, 输入:

    web3j solidity generate aa.bin aa.abi -o /c:/Users/ib/Desktop/web3j/web3j-3.3.1/bin  -p com.your

    4. 再com.your目录下会生成一个Aa.java文件,将此文件拷贝到项目中去

    第三步:java使用web3j调用合约里面方法

    1. 创建web3j对象:

    Web3j web3j = Web3j.build(new org.web3j.protocol.http.HttpService(合约地址));

    2. 获取当前gas价格:

    BigInteger gasPrice = web3j.ethGasPrice().sendAsync().get().getGasPrice();

    3. 设置自己的账户:

    3.1 随便找个生成钱包网站,然后创建钱包,设置密码和keystore

    3.2 设置keystore文件路劲:

    String filePath = "keystore/keystore";

    本地的话,这样设置需要将keystore存放在:/target/class/

    String proPath = ResourceUtils.getURL("classpath:").getPath() + filePath;

    3.3 对keystore进行操作:

    Credentials credentials = WalletUtils.loadCredentials("密码",proPath.substring(1));

    3.4 创建合约对象:

    Aa aa= Aa.load("合约地址",web3j,credentials, gasPrice,BigInteger.valueOf(3000000));

    3.5 调用合约方法:

    String str= mapContract.checkAddress("1").sendAsync().get();

    相关文章

      网友评论

          本文标题:java使用web3j调用部署在以太坊上solidity编写的智

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