eth从网站转到钱包需要几天 【ETH钱包开发03】web3j转账ETH

 更新时间 2025-02-06  阅读 1  评论 0

gateio

欧意交易所

全球前三大交易所之一的虚拟货币交易所,立即注册领 50 USDT盲盒礼包!

点击注册 进入官网

一、【ETH钱包开发03】web3j转账ETH

在之前的文章中,讲解了创建、导出、导入钱包。

【ETH钱包开发01】创建、导出钱包

【ETH钱包开发02】导入钱包

本文主要讲解以太坊转账相关的一些知识。交易分为ETH转账和ERC-20 Token转账,本篇先讲一下ETH转账。

1、解锁账户发起交易。钱包keyStore文件保存在geth节点上,用户发起交易需要解锁账户,适用于中心化的交易所。

2、钱包文件离线签名发起交易。钱包keyStore文件保存在本地,用户使用密码+keystore的方式做离线交易签名来发起交易,适用于dapp,比如钱包。

本文主要讲一下第二种方式,也就是钱包离线签名转账的方式。

交易流程

1、通过keystore加载转账所需的凭证Credentials

2、创建一笔交易RawTransaction

3、使用Credentials对象对交易签名

4、发起交易

注意以下几点:

1、Credentials

这里,我是通过获取私钥的方式来加载 Credentials

还有另外一种方式,通过密码+钱包文件keystore方式来加载 Credentials

2、nonce

nonce是指发起交易的账户下的交易笔数,每一个账户nonce都是从0开始,当nonce为0的交易处理完之后,才会处理nonce为1的交易,并依次加1的交易才会被处理。

可以通过 eth_gettransactioncount获取nonce

3、gasPrice和gasLimit

交易手续费由gasPrice和gasLimit来决定,实际花费的交易手续费是 gasUsed* gasPrice。所有这两个值你可以自定义,也可以使用系统参数获取当前两个值

关于 gas,你可以参考我之前的一篇文章。

以太坊(ETH)GAS详解

gasPrice和gasLimit影响的是转账的速度,如果gas过低,矿工会最后才打包你的交易。在app中,通常给定一个默认值,并且允许用户自己选择手续费。

如果不需要自定义的话,还有一种方式来获取。获取以太坊网络最新一笔交易的 gasPrice,转账的话, gasLimit一般设置为21000就可以了。

Web3j还提供另外一种简单的方式来转账以太币,这种方式的好处是不需要管理nonce,不需要设置gasPrice和gasLimit,会自动获取最新一笔交易的gasPrice,gasLimit为21000(转账一般设置成这个值就够用了)。

这个问题,我想是很多朋友所关心的吧。但是到目前为止,我还没有看到有讲解这方面的博客。

之前问过一些朋友,他们说可以通过区块号、区块哈希来判断,也可以通过Receipt日志来判断。但是经过我的一番尝试,只有 BlockHash是可行的,在web3j中根据 blocknumber和 transactionReceipt都会报空指针异常。

原因大致是这样的:在发起一笔交易之后,会返回 txHash,然后我们可以根据这个 txHash去查询这笔交易相关的信息。但是刚发起交易的时候,由于手续费问题或者以太网络拥堵问题,会导致你的这笔交易还没有被矿工打包进区块,因此一开始是查不到的,通常需要几十秒甚至更长的时间才能获取到结果。我目前的解决方案是轮询的去刷 BlockHash,一开始的时候 BlockHash的值为0x00000000000,等到打包成功的时候就不再是0了。

这里我使用的是rxjava的方式去轮询刷的,5s刷新一次。

正常情况下,几十秒内就可以获取到区块信息了。

区块确认数=当前区块高度-交易被打包时的区块高度。

二、如何把蜜蜂矿池里的Eth提到火币钱包

最低支付是0.08eth,满足支付后,每日自动打币时间为10点到11点,产生的支付费用由蜜蜂矿池来付费,每个月的第三天往前数7天停止挖矿。

充分认识整治虚拟货币“挖矿”活动的必要性和重要性,切实把整治虚拟货币“挖矿”活动作为促进经济社会高质量发展的一项重要任务,进一步增强责任感和紧迫感,抓住关键环节,采取有效措施,全面整治虚拟货币“挖矿”活动,确保取得实际成效。

充分认识整治虚拟货币“挖矿”活动的重要意义:

虚拟货币“挖矿”活动指通过专用“矿机”计算生产虚拟货币的过程,能源消耗和碳排放量大,对国民经济贡献度低,对产业发展、科技进步等带动作用有限,加之虚拟货币生产、交易环节衍生的风险越发突出。

其盲目无序发展对推动经济社会高质量发展和节能减排带来不利影响。整治虚拟货币“挖矿”活动对促进我国产业结构优化、推动节能减排、如期实现碳达峰、碳中和目标具有重要意义。各地区、各部门和有关企业要高度重视。

三、【ETH钱包开发02】导入钱包

本文主要讲解通过助记词、keystore、私钥 3种方式来导入钱包。导入钱包就是说根据输入的这3者中的一个去重新生成一个新的钱包。导入钱包的过程和创建的过程其实是差不多的。

根据助记词导入钱包不需要原始密码,密码可以重新设置。根据用户输入的助记词,先验证助记词的合规性(格式、个数等),验证正确后,配合用户输入的密码重新生成一个新的钱包。

验证助记词的合规性(格式、个数等)

助记词导入钱包

通过私钥导入钱包其实和创建钱包的过程基本一致。因为私钥在导出的时候转换成了16进制,所以在导入私钥的时候,要把16进制转换为byte数组。

keystore就是钱包文件,实际上就是钱包信息的json字符串。导入keystore是需要输入密码的,这个密码是你最后导出keystore时的密码。将keystore字符串变成walletFile实例再通过 Wallet.decrypt(password, walletFile);解密,成功则可以导入,否则不能导入。

这是Web3j的API,程序走到这里经常OOM!

具体原因的话,我就不多说了,细节大家可以看这里

解决办法

根据源码修改 decrypt方法,这里我用一个已经修改好的第三方库

修改后的解密方法

导入Kestore

1、导入助记词和私钥是不需要以前的密码的,而是重新输入新的密码;导入Keystore则需要以前的密码,如果密码不正确,会提示地址和私钥不匹配。

2、关于备份助记词

用过imtoken的同学可以看到imtoken是可以导出(备份)助记词的。这个一开始我也很困惑,后来了解到其实它实在创建钱包的时候,在app本地保存了助记词,导出只是讲数据读取出来而已。还有一点,imtoken一旦备份了助记词之后,之后就没有备份那个功能了,也就是说助记词在本地存储中删除了;而且导入钱包的时候也是没有备份助记词这个功能的。

四、什么是eth钱包

ETH钱包是一种加密货币钱包,主要用于存储和管理以太坊以及其他基于以太坊区块链的代币。

以下是详细解释:

ETH钱包的概念和功能

ETH钱包实际上是一个软件程序或硬件设备,它允许用户安全地存储以太坊币和其他基于以太坊区块链的加密货币。这些钱包提供了密钥管理功能,允许用户接收、发送和跟踪他们的加密货币交易。ETH钱包也可用于与智能合约交互和参加去中心化应用。因为它们是加密安全的,它们使用强大的加密算法和私钥保护用户资产。这些私钥是确保资产安全的关键,因此用户必须妥善保管它们。不同类型的ETH钱包提供不同的功能,如桌面应用程序、移动应用程序、硬件钱包等,每种类型都有其独特的优缺点。但是总的来说,所有这些类型的主要目的都是为了确保用户可以安全、方便地使用和管理以太坊或其他加密货币。这些钱包还允许用户设置安全设置和自定义交易选项,以确保他们的交易符合他们的需求和偏好。因此,ETH钱包是加密货币世界中至关重要的工具之一。通过它们,用户可以更方便地参与区块链生态系统中的各种活动。此外,由于其广泛的应用和安全性能,ETH钱包已成为区块链技术普及的关键组成部分之一。

总的来说,ETH钱包是存储和管理以太坊和其他加密货币的重要工具,具有多种功能以帮助用户更安全地参与区块链活动。选择一个合适和安全可靠的ETH钱包是非常重要的。建议在做出选择时进行详细的了解和研究,确保找到符合自己需求和偏好的最佳选项。

标签:钱包eth

◆钱包◆相关内容推荐

更多交易所入口

一站式注册各大交易所、点击进入加密世界、永不失联,币安Binance/欧易OKX/GATE.IO芝麻开门/Bitget/抹茶MEXC/火币Huobi

点击进入 永不失联

货币汇率换算