Java与智能合约交互(Web3j)- write函数

说在前头

Web3是一种新兴的网络概念,由于某些原因导致我们能够接触到的相关技术知识实在有限,每当我遇见技术瓶颈总是不能找到充足的资料,这也让我萌生了填补这片空白知识的冲动。“Hello Web3” 这个专栏会尽力将我掌握的web3 知识分享给大家。如果分享的知识能帮助到大家,希望能够 关注点赞 支持作者!
本人已在github上发布Web3j工具,欢迎使用和star

Java与智能合约交互(Web3j)

之所以选择利用java与智能合约进行交互,完全是因为本人只会Java,并且Java是世界上最好的语言。

能干什么

  • 监控合约状态,读取合约的关键参数,可作为后台数据源。
  • 转账、授权等基础交互。
  • 实现例如抢购、提挖买等复杂交互。

代码分享

  1. 引入依赖
    <dependency>
        <groupId>org.web3j</groupId>
        <artifactId>core</artifactId>
        <version>5.0.0</version>
    </dependency>
  1. 新建Web3j对象
Web3j web3 = Web3j.build(new HttpService(rpcUrl));
  • rpcUrl变量是区块链网络节点的url链接,这些节点会提供很多标准的api方法通过该url进行调用,web3j模块就是在此api上进行封装。
  • 不同网络的rpcUrl可以在对应的区块链浏览器api文档上找到,百度关键字也很容易获取。
  1. 查询当前网络的gasPrice
// 获取gasPrice方法
BigInteger gasPrice = web3.ethGasPrice().send().getGasPrice();

/**
 * 获取当期的gasPrice,如果超过最大的限制,取最大限制
 *
 * @return 在区间内的gasPrice
 * @throws IOException 与节点交互出现异常
 */
public BigInteger getGasPriceWithLimit() throws IOException {
   
    BigInteger gasPrice = web3.ethGasPrice().send().getGasPrice();
    log.info("Gas price: {} Gwei, Min gas price: {} Gwei, Max gas price: {} Gwei",
    Convert.fromWei(String.valueOf(gasPrice), Convert.Unit.GWEI),
    Convert.fromWei(String.valueOf(minGasPrice), Convert.Unit.GWEI
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值