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

第一步:安装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();

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文首发于『程序员精进』博客,原文链接:【Java区块链实践】使用 Web3j、Spring Boot 实现以太坊...
    程序员精进阅读 5,525评论 0 4
  • 【原文】 3·15 子入太庙(1),每事问。或曰:“孰谓鄹(2)人之子知礼乎?入太庙,每事问。”子闻之,曰:“是礼...
    林夕1林夕秋阳阅读 1,358评论 6 5
  • 软的更香,做人还是要温柔的。 薛之谦成奶爸了,赵小刀结婚了,怎么这么快呀!我呢,要期中考试了…… ...
    是wood没错了阅读 263评论 0 0
  • NBN的故事54:会顺移的星球 时间:9000年2月24日 地点:宇宙 甲比安高兴地带着复活甲返航了。路上,一...
    我我了阅读 230评论 0 0
  • 01 漫漫人生路,难走。何况是脚下的路已全面结冰,一路走,需万分小心。 体会如履薄冰的感觉,放眼望去,昨日的繁华喧...
    宛悦派阅读 264评论 6 3

友情链接更多精彩内容