星火燎原6星评价
2023-02-07 10:36:54
以太坊钱包转账失败怎么办?ETH钱包转账失败是怎么回事?
在开始正式转账之前,请确保你已经升级至 imToken 2.0 版本。事实上,部分的转账问题,完全是可以通过产品升级来避免的。
当你看到一笔交易,在 imToken 上显示转账失败的时候,通常是由以下三种原因造成的:
1. Out of gas I Gas 不足
2. Bad instruction I 指令错误
3. Reverted I 回退
而且转账支付的矿工费不会回退至你的钱包,原因当然不是因为 imToken「独吞」了这笔费用,具体原因请你往下看。
在 Etherscan 中查询到的信息
在了解为什么会出现 Gas 不足的情况之前,我们先来回顾一下什么是 Gas。
打个通俗易懂的比喻吧。就像你开车必须要有汽油一样,你在以太坊上转账也需要有 Gas。开车 ≈ 转账,汽油 ≈ Gas。如果你要从 A 地驱车前往 B 地,按照实时的交通情况,你需要消耗 200 升汽油。但你为这次行程只准备了 150 升汽油,那是否能到达 B 地呢?在现实生活中,大家肯定都知道,你一定是到不了的。同时虽然你没到达 B 地,但是你的汽油却已经消耗了。
那么回到区块链的世界,也是同样的道理。如果你要进行一笔转账,就要为这笔转账设置一个 Gas。如果你设置的过低,就会出现「汽车」没到达目的地就没「油」的情况,即交易失败。失败原因就是 out of gas(汽油不足)。同时,又因为矿工们已经进行了打包的操作,但在打包过程中发现 Gas 不足,导致这笔交易打包失败了。矿工费仍然会被扣除,但这些矿工费都是由矿工们收取的,imToken 并不收你一分钱。
如何避免这种问题呢?别担心,imToken 2.0 版本会为你设置合理的 Gas 值,让你的交易被顺利打包。当然你也可以选择自定义设置,但请注意,如果设置不当的话就会损失矿工费哦。
Bad instruction 字面意思是「指令错误」。出现这种提示的原因,大概率是因为智能合约的代码本身就存在逻辑问题,从而导致合约在执行的过程中,出现「指令错误」。这就像一台坏了的机器,你输入一个指令,机器是不能正常运作的。这时候,我们该找谁解决呢?当然是智能合约的创建方,去修复这台「坏了的机器」。另外转账的矿工费仍然会被矿工收走。
以太坊上包含两类账户,普通账户和合约账户。普通账户是由用户通过私钥控制,而合约账户是由部署在以太坊上的智能合约控制。
那么 reverted 是什么情况呢?reverted 其实是一个函数,用于立即中止合约的执行,并且把状态回滚。虽然是智能合约,比一般的合约更「聪明」,但是有些合约在执行的过程中还是会「犯错」的。
这听起来是不是过于抽象,让我们打个简单的比方。出现 reverted 的一种可能情况:你的合约规定,当你输入一块钱,你可以得到一杯喜茶。但是这个合约并没有检查库存里是否有足够的喜茶。当店里没有喜茶库存的时候,后面来的人,即使它输入一块钱,也不能得到喜茶。这时候,你原本的函数 - 即输入一块钱就会得到一杯喜茶的函数就会失败,它会发出错误的信息并回滚到当前的交易状态。
看到这里,想必大家也已经明白了,出现 bad instruction 和 reverted,都是因为智能合约的问题,所以建议大家直接去找合约的创建者,也就是项目方。
以上就是以太坊钱包转账失败是怎么回事?ETH钱包转账失败的原因的详细内容,更多关于ETH钱包的资料请关注币界网其它相关文章!