分享下web3j 常见用法

转账

fun sendEthTransaction(privateKey: String,toAddress: String,amount: BigDecimal) {//chainIdval chainId:Long = 1//url 可以从https://chainlist.org/里面获取可用节点//eth转账,bnb同理,但需发送到bnb对应节点val url = "https://xxx"val web3j = Web3j.build(HttpService(url))val credentials = Credentials.create(privateKey)val count =web3j.ethGetTransactionCount(credentials.address, DefaultBlockParameterName.LATEST).send()val nonce = count.transactionCountval gasPrice = Convert.toWei("20", Convert.Unit.GWEI).toBigInteger()val gasLimit = BigInteger.valueOf(21000)val value = Convert.toWei(amount, Convert.Unit.ETHER).toBigInteger()val rawTransaction = RawTransaction.createEtherTransaction(nonce, gasPrice, gasLimit, toAddress, value)val signedMessage = TransactionEncoder.signMessage(rawTransaction, chainId,credentials)val hexValue = Numeric.toHexString(signedMessage)logDebug("签名后的数据 $hexValue")val ethSendTransaction = web3j.ethSendRawTransaction(hexValue).send()if (ethSendTransaction.hasError()) {println("发送 ETH 交易时出错: ${ethSendTransaction.error.message}")} else {println("ETH 交易哈希: ${ethSendTransaction.transactionHash}")}}
    fun sendErc20USDTTransaction(privateKey: String,toAddress: String,amount: BigInteger) {//erc20 usdt 合约地址val contractAddress = "0xdAC17F958D2ee523a2206206994597C13D831ec7"val url = "https://xxx"val web3j = Web3j.build(HttpService(url))val credentials = Credentials.create(privateKey)val count = web3j.ethGetTransactionCount(credentials.address, DefaultBlockParameterName.LATEST).send()val nonce = count.transactionCountval gasPrice = Convert.toWei("20", Convert.Unit.GWEI).toBigInteger()val gasLimit = BigInteger.valueOf(200000)val function = Function("transfer",listOf(Address(toAddress), Uint256(amount)),emptyList())val data = FunctionEncoder.encode(function)val rawTransaction = RawTransaction.createTransaction(nonce, gasPrice, gasLimit, contractAddress, data)val signedMessage = TransactionEncoder.signMessage(rawTransaction, credentials)val hexValue = Numeric.toHexString(signedMessage)val ethSendTransaction = web3j.ethSendRawTransaction(hexValue).send()if (ethSendTransaction.hasError()) {println("发送 ERC - 20 代币交易时出错: ${ethSendTransaction.error.message}")} else {println("ERC - 20 代币交易哈希: ${ethSendTransaction.transactionHash}")}}

更多:
https://chainlist.org/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/72819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《真·滕王阁序》

《滕工阁序》 西二旗故地,后厂新府。 星分百度网易,地接腾讯阿里。 襟PRD而带OKR,控需求以引撕逼。 物华天宝,龙光射工卡芯片;人杰地灵,徐孺坐产品经理之榻。 工位雾列,码农星驰。 台积电…

云盘搭建笔记

报错问题: No input file specified. 伪静态 location / {if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last;break;} } location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; break; } } 设…

如何打造安全稳定的亚马逊采购测评自养号下单系统?

在当今的电商领域,亚马逊作为全球领先的在线购物平台,其商品种类繁多,用户基数庞大,成为了众多商家和消费者的首选。而对于一些需要进行商品测评或市场调研的用户来说,拥有一个稳定、安全的亚马逊账号体系显得尤为重要…

c语言数据结构 单循环链表设计(完整代码)

单链表的增删查改代码: 1.创建结构体 // 结构体类型的创建 struct node {int data; // 数据域struct node *next; // 指针域 };2.创建节点,节点的存储在malloc申请的空间内,也就是堆空间。 // 创建节点 struct node *create_node…

笔记本电脑关不了机是怎么回事 这有解决方法

在快节奏的现代生活中,笔记本电脑已成为我们工作、学习和娱乐的得力助手。在使用电脑的过程中,笔记本电脑突然关不了机了,怎么回事?下面驱动人生就来讲一讲笔记本电脑不能正常关机的解决方法,有需要的可以来看看。 一、…

Pytest基础使用

概述 Pytest是Python里的一个强大的测试框架,灵活易用,可以进行功能,自动化测试使用,可以与Requests,Selenium等进行结合使用,同时可以生成Html的报告。 一、Pytest的基本使用 在未指定Pytest的配置文件时,会对以下文件进行执行: test_*.py,如:test_1.py*_test.py…

服务的拆分数据的迁移

参考: 数据迁移调研

【动态规划篇】91. 解码方法

91. 解码方法 题目链接: 91. 解码方法 题目叙述: 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : “1” -> ‘A’ “2” -> ‘B’ … “25” -> ‘Y’ “26” -> ‘Z’ 然而,在解码已编码的消息时,你…

使用【docker】+【shell】脚本半自动化部署微服务项目

一.前言 以下是一个基于 ‌Docker Shell脚本‌ 的半自动化部署方案,包含镜像构建、容器管理、网络配置和日志监控等核心功能,适用于大多数Web应用或微服务项目。 二‌.目录结构 三.脚本代码实现 1.‌Shell脚本实现 (deploy.sh) #!/bin/bash# 设置颜…

每天一道算法题-两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 …

win10搭建opengl环境搭建并测试--输出立方体球体和碗型并在球体上贴图

参照本文档可以完成环境搭建和测试,如果想要快速完成环境的搭建可以获取本人的工程,包括所用到的工具链和测试工程源码获取(非免费介意务下载):链接: https://pan.baidu.com/s/1H2ejbT7kLM9ore5MqyomgA 提取码: 8s1b …

CIR-Net:用于 RGB-D 显著性目标检测的跨模态交互与优化(问题)

摘要 问题一:自模态注意力优化单元和跨模态加权优化单元什么意思? 1 优化中间件结构的作用 位置:位于编码器和解码器之间 输入:编码器提取的RGB特征,深度特征以及RGB-D特征。 输出:经过优化的RGB&…

LS-NET-004-简单二层环路解决(华为锐捷思科)

LS-NET-004-简单二层环路解决(华为锐捷思科) 以下是为您准备的二层环路示意图及解决方案,包含四大厂商配置对比: 一、Mermaid 二层环路示意图 graph TD SW1 -->|Gi0/1| SW2 SW2 -->|Gi0/2| SW3 SW3 -->|Gi0/3| SW1 SW1…

【正点原子K210连载】第七十六章 音频FFT实验 摘自【正点原子】DNK210使用指南-CanMV版指南

第七十六章 音频FFT实验 本章将介绍CanMV下FFT的应用,通过将时域采集到的音频数据通过FFT为频域。通过本章的学习,读者将学习到CanMV下控制FFT加速器进行FFT的使用。 本章分为如下几个小节: 32.1 maix.FFT模块介绍 32.2 硬件设计 32.3 程序设…

火绒终端安全管理系统V2.0——行为管理(软件禁用+违规外联)

火绒终端安全管理系统V2.0:行为管理策略分为软件禁用和违规外联两部分,能够管理终端用户软件的使用,以及终端用户违规连接外部网络的问题。 l 软件禁用 软件禁用策略可以选择软件名单的属性、添加软件名单以及设置发现终端使用禁用软件时的…

FastJson:JSON JSONObject JSONArray详解以及SimplePropertyPreFilter 的介绍

FastJson:JSON JSONObject JSONArray详解以及SimplePropertyPreFilter 的介绍 FastJson是阿里巴巴开发的一款专门用于Java开发的包,实现Json对象,JavaBean对,Json字符串之间的转换。 文章目录 FastJson:JSON JSONObje…

DEFI币生态重构加速,XBIT去中心化交易所引领DEX安全新范式

2025年3月18日,全球加密市场在监管与技术共振下迎来结构性变革。去中心化金融(DeFi)代币DEFI币因跨链流动性协议升级引发社区热议,而币应XBIT去中心化交易所(以下简称XBIT)凭借其链上透明验证机制、无需下载…

解析漏洞总结

首先说下为什么要写着篇文章,之前学习倒是学过,学完就忘啊,tmd iis 5.x/6.0 这个版本有两种解析姿势  一.两种解析漏洞 1.目录解析 2./xxx.asp/xx.jpg 简单说一下是什么意思,这里是先在他服务器跟目录创建一个名为 xxx.…

前端小食堂 | Day18 - 身份认证の八卦阵

🔐 今日秘术:JWT/OAuth2 攻防奥义 1. JWT 安全の六合阵法 // 🚫 危险操作:未验证签名 const decodeUnsafe (token) > JSON.parse(atob(token.split(.)[1])); // ✅ 安全姿势一:严格签名验证 import jwt fro…

将bin文件烧录到STM32

将bin文件烧录到STM32 CoFlash下载生成hex文件hex2bin使用下载bin到单片机 CoFlash下载 选择需要安装的目录 在Config中可以选择目标芯片的类型 我演示的是 stm32f103c8t6 最小系统板 Adapter:烧录器类型 Max Clock:下载速度 Por:接口类型&am…