Java使用Web3j进行基础和token转账
这里使用的是maven项目,第一步要引入web3j的包
引入pom
<dependency><groupId>org.web3j</groupId><artifactId>core</artifactId><version>3.4.0</version></dependency>
基础转账
public static void transfer() throws Exception {Web3j web3j = Web3j.build(new HttpService("infura节点链接"));BigInteger bigInteger = new BigInteger("钱包私钥", 16);ECKeyPair ecKeyPair = ECKeyPair.create(bigInteger);Credentials credentials = Credentials.create(ecKeyPair);TransactionReceipt transactionReceipt = Transfer.sendFunds(web3j, credentials, "目标地址", BigDecimal.valueOf(0.001), Convert.Unit.ETHER).send();System.out.println(transactionReceipt);}
Token转账
public static void transferToken() throws Exception {Web3j web3j = Web3j.build(new HttpService("infura节点链接"));BigInteger bigInteger = new BigInteger("私钥", 16);ECKeyPair ecKeyPair = ECKeyPair.create(bigInteger);Credentials credentials = Credentials.create(ecKeyPair);String fromAddress = credentials.getAddress();EthGetTransactionCount ethGetTransactionCount = web3j.ethGetTransactionCount(fromAddress, DefaultBlockParameterName.LATEST).sendAsync().get();BigInteger nonce = ethGetTransactionCount.getTransactionCount();Address address = new Address("目标地址");Uint256 value = new Uint256(new BigInteger("数量 单位wei"));List<Type> parametersList = new ArrayList<>();parametersList.add(address);parametersList.add(value);List<TypeReference<?>> outList = new ArrayList<>();Function function = new Function("transfer", parametersList, outList);String encodedFunction = FunctionEncoder.encode(function);System.out.println( DefaultGasProvider.GAS_PRICE);System.out.println(DefaultGasProvider.GAS_LIMIT);RawTransaction rawTransaction = RawTransaction.createTransaction(nonce, DefaultGasProvider.GAS_PRICE,new BigInteger("210000"), "合约地址", encodedFunction);byte[] signedMessage = TransactionEncoder.signMessage(rawTransaction, credentials);String hexValue = Numeric.toHexString(signedMessage);EthSendTransaction ethSendTransaction = web3j.ethSendRawTransaction(hexValue).sendAsync().get();Object transactionHash = ethSendTransaction.getTransactionHash();System.out.println(transactionHash.toString());}
参考文档
web3.js 中文文档
web3j 英文文档
笔者整理了常见的一些智能合约并进行分类。
Java使用Web3j进行基础和token转账相关推荐
- java token使用方式_使用 Java 和 web3j 进行 Token 开发[概述][译]
学习使用 web3j 部署ERC20 以及与合约进行交互. > 题外话, 翻译这篇文章是因为看到 CSDN 公众号这篇[外行翻译](https://mp.weixin.qq.com/s/Xu6c ...
- JAVA使用web3j开发以太坊实战案例
JAVA使用web3j开发以太坊实战案例 必读 1.前言 2.基础(必看) 3.web3j引入 4.创建账户(离线创建) 5.geth节点搭建.基本使用及一般问题 6.常量类 后面内容都要用到(必备! ...
- [Java面试三]JavaWeb基础知识总结.
[Java面试三]JavaWeb基础知识总结. 1.web服务器与HTTP协议 Web服务器 l WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. l Int ...
- [JAVA EE] JPA技术基础:完成数据列表的删除
接上一篇:[JAVA EE] JPA技术基础:完成数据列表显示 本章完成数据列表的删除 修改 UserController.java package com.example.demo.controll ...
- JAVA并发之多线程基础(2)
除了我们经常用的synchronized关键字(结合Object的wait()和notify()使用)之外,还有对应的上篇文章讲到的方法JAVA并发之多线程基础(1)之外,我们日常中使用到最多的也就是 ...
- 第90节:Java中的Linux基础
第90节:Java中的Linux基础 linux是装载虚拟机上面的: JDK依赖包: yum install glibc.i686MYSQL依赖包: yum -y install libaio.so. ...
- JAVA并发之多线程基础(5)
上面介绍了并发编程中的栅栏等JAVA并发之多线程基础(4) .通过唯一的一个终点线来帮助确定线程是多晚开始执行下一次操作. LockSupport 提供了一个比较底层的线程挂起操作.有点类似于susp ...
- Java程序设计语言(基础篇)机械工业出版社 原属第10版
链接:https://pan.baidu.com/s/1txoB3sk0SdT1u8RpS2x-Kg 提取码:rxkd Java程序设计语言(基础篇)机械工业出版社 原属第10版 外加一本Java ...
- java.util.logging.Logger基础教程
java.util.logging.Logger基础教程 @(JAVA)[java] 从JDK1.4开始即引入与日志相关的类java.util.logging.Logger,但由于Log4J的存在,一 ...
最新文章
- 发现了一个很好的做excel、ppt 水晶易表、spss的好网站
- 最大子序列求和_最大子序列和问题
- python getopt
- xampp 无法启动mysql
- [react] contextType是什么?它有什么用?
- 函数式编程语言天生就慢吗?
- 3-JAVA中的JSON操作
- sql modify 会丢失数据么_为什么U盘的数据会丢失?找对方法,轻松应对
- a标签download属性无效_使用这些 CSS 属性选择器来提高前端开发效率
- opencv中的Mat、CvMat以及IplImage介绍以及三者之间的转换
- HTTP 代理服务器技术选型之旅
- WA47电子管麦克风
- Spring——自动装配
- Android集成高德地图实现自定义Marker
- 阴阳师手游服务器维护,12月30日阴阳师服务器维护更新公告
- unity4和unity5区别
- LTE 系统信息SI
- FMU主板程序更新说明
- html css 清除 button 选中时的边框样式 CSS outline属性
- php curl couldnt connect to host,linux curl命令:curl: (7) couldn't connect to host ?