以太坊游戏操作过程中,难免会有些失误,发送出去错误的指令。这时候以太坊被人诟病的最多的一个缺点 - 速度慢反而成了优点。因为我们只要眼疾手快,就可以把这个错误的指令撤回。大概的原理是发送一个空白的命令给自己,以更快的速度,来替代原来的交易指令。下面来详细讲解一下。
前提条件
首先要确保的是这个交易还没有完成,一般在metamask左边显示为…的,就是还未完成的交易。
但是metamask现在还不够完善,所以也可能并不是这样的,那么我们可以点击这笔交易中日期的那个区域,就可以进到etherscan中查看该笔交易的详情。
未完成的交易在etherscan中会出现pending字样:
如果该交易已经完成,呈现success状态,那我们就无法撤回了。但是如果确定了该交易还未完成的话,我们就可以快速完成以下步骤来撤回。
第一步
打开Myetherwallet(MEW)的 send offline
https://www.myetherwallet.com/#offline-transaction
第二步
在右上角的Gas Price(燃气价格)中填上Gas price。该Gas Price需要比你原来交易的燃气价格高,而且建议高出10%-100%不等。但是不要过高,过高也可能会因为gas limit不足而报错。
第三步
在Step 1 Generate Information下面的 From Address中填写你自己的钱包地址,即你想要撤销命令的那个钱包地址。比如你从0xb3790367e16fAB92860885093ff14d4A84A0b78F钱包发送了命令,想要撤回,那这里就填0xb3790367e16fAB92860885093ff14d4A84A0b78F钱包。
第四步
点击Generate information(生成信息)。
第五步
在Step 2 种的 From Address中填写和第三步中一样的地址。
在value中写“0”。
Gas limit 和Gas price应该已经自动生成,不用去改。
Nounce改成你要撤销的交易的编号,如下图,如果你要撤销220号交易,则在nounce里面填写220。
Data留白。
第六步
在下面How would you like to access your wallet 中选择“Private Key”(私钥)。
然后在右边的框中输入你metamask钱包的private key。(注意,该private key请妥善保管,切勿泄露!)
private key 的获取方式如下:
在metamask钱包中,点击账户名称的右边的...,选择下面的Export Private Key(导出私钥)。
然后输入你的metamask钱包登录密码
之后会出现一串数字+字母,即为private key点击即可复制。
将这串private key 粘贴至上述的MyEtherWallet 对话框中。
然后点击下方的unlock
第七步
点击下面的Generate Transaction。
生成交易指令后,点击send transaction。
至此结束。顺利的话,交易就可以被撤销,可以在etherscan中查看状态。
原文地址:
https://zhuanlan.zhihu.com/p/33874609