java使⽤web3j调⽤部署在以太坊上solidity编写的智能合约第⼀步:安装web3j和solidity
1. npm install -g solc
2. l⽂件引⼊依赖:
<dependency>
<groupId>org.web3j</groupId>
<artifactId>core</artifactId>
<version>3.4.0</version>
</dependency>
第⼆步:web3j⽣成java⽂件:
1. 下载web3j包:
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 -ur
4. 再ur⽬录下会⽣成⼀个Aa.java⽂件,将此⽂件拷贝到项⽬中去
第三步:java使⽤web3j调⽤合约⾥⾯⽅法
1. 创建web3j对象:
Web3j web3j = Web3j.build(new org.web3j.protocol.http.HttpService(合约地址));
2. 获取当前gas价格:
BigInteger gasPrice = hGasPrice().sendAsync().get().getGasPrice();
3. 设置⾃⼰的账户:
3.1 随便个⽣成钱包⽹站,然后创建钱包,设置密码和keystore
solidity
3.2 设置keystore⽂件路劲:
String filePath = "keystore/keystore";
本地的话,这样设置需要将keystore存放在:/target/class/
String proPath = URL("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();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论