Java实现Tron(波场)区块链的开发实践(三)波场链水龙头、WEB3测试实战

news/2024/11/29 21:19:28/

上一节我们具体讲到Java实现Tron波场链的逻辑代码实现。

这一节我们通过部署和开发好的代码,针对测试链进行自测开发,准备测试环境。

1. 创建离线地址

首先我们需要一个离线地址,我们不需要在线进行创建,直接可以通过第一节的离线创建地址代码运行获取,为了更好的测试,我们直接生成两个地址。

/*** 创建地址(离线)*/@Overridepublic Map<String, String> createAddress() {KeyPair keyPair = KeyPair.generate();String privateKey = keyPair.toPrivateKey();String base58CheckAddress = keyPair.toBase58CheckAddress();String publicKey = keyPair.toPublicKey();Map<String, String> stringMap = new HashMap<>();stringMap.put("address", base58CheckAddress);stringMap.put("privateKey", privateKey);stringMap.put("publicKey", publicKey);return stringMap;}

运行结果会得到地址、私钥、公钥信息;私钥,请妥善保管。

2. 安装区块链插件(🪜)

获取链接:插件地址

TronLink为浏览器插件,插件安装成功后,通过私钥导入地址。

3. 波场链水龙头(🪜)

获取链接:水龙头地址

4.测试转账

public static void main(String[] args) {String fromAddress = "TKbScJKL2Gjfzxva1UsgxDDestS2oGmNLZ";String toAddress = "TNfopqucyZitZVFXT8VT2Ty857UPXVHxxe";String hexPrivateKey = "123*********123";String contractAddress = "TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj";ApiWrapper client = new ApiWrapper("grpc.nile.trongrid.io:50051", "grpc.nile.trongrid.io:50061", hexPrivateKey);Contract contract = client.getContract(contractAddress);Trc20Contract token = new Trc20Contract(contract, fromAddress, client);String transfer = null;// 获取转账账户的TRC20余额BigInteger trc20Value = token.balanceOf(fromAddress);// 获取想要转账的数额BigInteger sunAmountValue = Convert.toSun("2.01", Convert.Unit.TRX).toBigInteger();// 进行比较if (trc20Value.compareTo(sunAmountValue) >= 0) {log.info("开始转账.........");// 设置最大矿工费用long feeLimit = Convert.toSun("100", Convert.Unit.TRX).longValue();//转账transfer = token.transfer(toAddress, sunAmountValue.longValue(), 0, "转账", feeLimit);}log.info("交易ID:{}", transfer);}


http://www.ppmy.cn/news/1379623.html

相关文章

Java线程锁之Lock的使用

Lock 的使用 Lock 是java 1.5 中引入的线程同步工具&#xff0c;它主要用于多线程下共享资源的控制。本质上Lock 仅仅是一个接口&#xff0c; 可以通过显式定义同步锁对象来实现同步&#xff0c;能够提供比synchronized 更广泛的锁定操作&#xff0c;并支持多个相关的 Lock接…

快速入门:JS对象/BOM/DOM/事件监听

本贴介绍JS相对进阶的知识&#xff0c;对于JavaScript的基础语法&#xff0c;本文不再赘述~ 一.JavaScript对象 1.Array数组对象 定义 var arr new Array(1,2,3); var arr[1,2,3]; 访问 arr[0]1; Js数组类似Java中的集合&#xff0c;长度&#xff0c;类型都可以改变。 如…

【JS】APIs:事件流、事件委托、其他事件、页面尺寸、日期对象与节点操作

1 事件流 捕获阶段&#xff1a;从父到子 冒泡阶段&#xff1a;从子到父 1.1 事件捕获 <body> <div class"fa"><div class"son"></div> </div> <script>const fadocument.querySelector(.fa);const sondocument.qu…

快速了解Redis

Redis是什么&#xff1f; Redis是一个数据库&#xff0c;是一个跨平台的非关系型数据库&#xff0c;Redis完全开源&#xff0c;遵守BSD协议。它通过键值对(Key-Value)的形式存储数据。 与传统数据库不同的是 Redis 的数据是存在内存中的 &#xff0c;也就是它是内存数据库&am…

跨境电商亚马逊listing埋词技巧,保姆级教程教会你

在亚马逊这个竞争激烈的市场中&#xff0c;只有优秀的选品和质量是远远不够的&#xff0c;一个精心制作的产品页面&#xff08;Listing&#xff09;对于提升销量和排名至关重要。如果你发现自己的商品质量和推广都不错&#xff0c;但销量和排名始终不见起色&#xff0c;那可能就…

【Linux的网络编程】

1、OSI的七层网络模型有哪些&#xff0c;每一层有什么作用&#xff1f; 答&#xff1a;&#xff08;1&#xff09;应用层&#xff1a;负责处理不同应用程序之间的通信&#xff0c;需要满足提供的协议&#xff0c;确保数据发送方和接收方的正确。 &#xff08;2&#xff09;表…

SSM整合项目(Vue3环境搭建)

SSM整合项目&#xff08;Vue3环境搭建&#xff09; 1.下载node.js 1.卸载原来的node.js 2.检测是否卸载成功 3.下载node.js&#xff08;10.16.3&#xff09; 一路next就可以 4.检测是否安装成功 2.全局安装Vue插件cli 命令行输入 npm install -g vue/cli 3.新建Vue项目 1.…

HTML视频笔记

学习arm开发板&#xff0c;涉及到网页HTML PHP什么的&#xff0c;简单看个视频学习下 HTML&#xff5c;超简单HTML入门教程 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element ​​​​​​vscode需要的libc6等需要的版本高​​​​​​ 为了安装vscode&#xff0c;将…