以太坊钱包转账失败大致分为两种情况:一种情况是交易未被打包导致转账失败,另外一种情况是交易在打包的过程中发生了错误导致交易失败。
一、交易未被打包导致转账失败
交易未被打包不会扣除矿工费,绝大多数未被打包的情况是矿工费设置的过低导致的。
通过https://etherscan.io/ 查询会出现以下几种提示
1.Sorry,we are unable to locate this Transaction Hash

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

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

解决办法是发送一笔相同的交易 ( 这里的相同指收币地址相同,代币转账数量相同 ) 并调高 Gas Price,只要后发送的这笔交易成功了,前一笔交易就会失败。
二、打包过程中出现错误导致失败
打包过程中出现问题大概分为三种类型:
Reverted I 回退
Bad instruction I 指令错误
Out of gas I Gas 不足
1.Reverted 错误

那么 reverted 是什么情况呢?reverted 其实是一个函数,用于立即中止合约的执行,并且把状态回滚。虽然是智能合约,比一般的合约更「聪明」,但是有些合约在执行的过程中还是会「犯错」的。
这听起来是不是过于抽象,让我们打个简单的比方。出现 reverted 的一种可能情况:你的合约规定,当你输入一块钱,你可以得到一杯喜茶。但是这个合约并没有检查库存里是否有足够的喜茶。当店里没有喜茶库存的时候,后面来的人,即使它输入一块钱,也不能得到喜茶。这时候,你原本的函数 - 即输入一块钱就会得到一杯喜茶的函数就会失败,它会发出错误的信息并回滚到当前的交易状态。
看到这里,想必大家也已经明白了,出现 bad instruction 和 reverted,都是因为智能合约的问题,所以建议大家直接去找合约的创建者,也就是项目方。
2.Bad instruction 错误

3.Out of gas 错误

那么回到区块链的世界,也是同样的道理。如果你要进行一笔转账,就要为这笔转账设置一个 Gas。如果你设置的过低,就会出现「汽车」没到达目的地就没「油」的情况,即交易失败。失败原因就是 out of gas(汽油不足)。同时,又因为矿工们已经进行了打包的操作,但在打包过程中发现 Gas 不足,导致这笔交易打包失败了。矿工费仍然会被扣除,但这些矿工费都是由矿工们收取的
上面的三个错误中 Reverted 错误和 Bad instruction 错误都是智能合约的问题,所以出现这种情况联系代币的发行方询问解决办法就可以了。
Out of gas 错误是因为转账设置的 Gas 值低于合约默认值导致的,目前大部分智能合约的 Gas 值都是 60000,但是某些合约比较复杂,调用的时候需要更高的 Gas 值。这时重新发送一笔交易,通过高级选项设置 Gas 值高于默认 Gas 值就能够成功发送这笔交易了。