51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

小狐狸钱包以太坊网络转账失败怎么办?ETH钱包转账失败的原因和解决办法

以太坊钱包转账失败大致分为两种情况:一种情况是交易未被打包导致转账失败,另外一种情况是交易在打包的过程中发生了错误导致交易失败。

一、交易未被打包导致转账失败

交易未被打包不会扣除矿工费,绝大多数未被打包的情况是矿工费设置的过低导致的。

通过https://etherscan.io/ 查询会出现以下几种提示

1.Sorry,we are unable to locate this Transaction Hash


小狐狸钱包以太坊网络转账失败怎么办?ETH钱包转账失败的原因和解决办法 截图中的提示表明,这笔交易未被打包


2.Pending 状态

重新发送一笔交易,将 Gas Price 设置为 40 Gwei,发送交易后查询这笔交易的详细状态


小狐狸钱包以太坊网络转账失败怎么办?ETH钱包转账失败的原因和解决办法 截图中的信息表明,这笔交易已经进入了打包队列,正在排队。只要耐心等待打包成功就可以了。


解决办法

转账时设置合适的矿工费。在 imToken 中,设置矿工费的滑动杆最大值和最小值都是从以太坊网络实时获取的,推荐的矿工费就是能够保证你这笔交易成功的最小值,所以只要按照 App 内部推荐的矿工费数值设置就可以了。


小狐狸钱包以太坊网络转账失败怎么办?ETH钱包转账失败的原因和解决办法 那么问题又来了,如果这笔交易已经发送成功但是矿工费设置的过低,想加速交易应该如何操作呢?


解决办法是发送一笔相同的交易 ( 这里的相同指收币地址相同,代币转账数量相同 ) 并调高 Gas Price,只要后发送的这笔交易成功了,前一笔交易就会失败。

二、 打包过程中出现错误导致失败

打包过程中出现问题大概分为三种类型:

Reverted I 回退

Bad instruction I 指令错误

Out of gas I Gas 不足

1.Reverted 错误


小狐狸钱包以太坊网络转账失败怎么办?ETH钱包转账失败的原因和解决办法 以太坊上包含两类账户,普通账户和合约账户。普通账户是由用户通过私钥控制,而合约账户是由部署在以太坊上的智能合约控制。


那么 reverted 是什么情况呢?reverted 其实是一个函数,用于立即中止合约的执行,并且把状态回滚。虽然是智能合约,比一般的合约更「聪明」,但是有些合约在执行的过程中还是会「犯错」的。

这听起来是不是过于抽象,让我们打个简单的比方。出现 reverted 的一种可能情况:你的合约规定,当你输入一块钱,你可以得到一杯喜茶。但是这个合约并没有检查库存里是否有足够的喜茶。当店里没有喜茶库存的时候,后面来的人,即使它输入一块钱,也不能得到喜茶。这时候,你原本的函数 - 即输入一块钱就会得到一杯喜茶的函数就会失败,它会发出错误的信息并回滚到当前的交易状态。

看到这里,想必大家也已经明白了,出现 bad instruction 和 reverted,都是因为智能合约的问题,所以建议大家直接去找合约的创建者,也就是项目方。

2.Bad instruction 错误


小狐狸钱包以太坊网络转账失败怎么办?ETH钱包转账失败的原因和解决办法 Bad instruction 字面意思是「指令错误」。出现这种提示的原因,大概率是因为智能合约的代码本身就存在逻辑问题,从而导致合约在执行的过程中,出现「指令错误」。这就像一台坏了的机器,你输入一个指令,机器是不能正常运作的。这时候,我们该找谁解决呢?当然是智能合约的创建方,去修复这台「坏了的机器」。另外转账的矿工费仍然会被矿工收走。


3.Out of gas 错误


小狐狸钱包以太坊网络转账失败怎么办?ETH钱包转账失败的原因和解决办法 就像你开车必须要有汽油一样,你在以太坊上转账也需要有 Gas。开车 ≈ 转账,汽油 ≈ Gas。如果你要从 A 地驱车前往 B 地,按照实时的交通情况,你需要消耗 200 升汽油。但你为这次行程只准备了 150 升汽油,那是否能到达 B 地呢?在现实生活中,大家肯定都知道,你一定是到不了的。同时虽然你没到达 B 地,但是你的汽油却已经消耗了。


那么回到区块链的世界,也是同样的道理。如果你要进行一笔转账,就要为这笔转账设置一个 Gas。如果你设置的过低,就会出现「汽车」没到达目的地就没「油」的情况,即交易失败。失败原因就是 out of gas(汽油不足)。同时,又因为矿工们已经进行了打包的操作,但在打包过程中发现 Gas 不足,导致这笔交易打包失败了。矿工费仍然会被扣除,但这些矿工费都是由矿工们收取的

上面的三个错误中 Reverted 错误和 Bad instruction 错误都是智能合约的问题,所以出现这种情况联系代币的发行方询问解决办法就可以了。

Out of gas 错误是因为转账设置的 Gas 值低于合约默认值导致的,目前大部分智能合约的 Gas 值都是 60000,但是某些合约比较复杂,调用的时候需要更高的 Gas 值。这时重新发送一笔交易,通过高级选项设置 Gas 值高于默认 Gas 值就能够成功发送这笔交易了。

赞(11)
未经允许不得转载:工具盒子 » 小狐狸钱包以太坊网络转账失败怎么办?ETH钱包转账失败的原因和解决办法