本文为机器翻译
展示原文
昨晚,@cumbercapital联系我们,提出了一个问题:他不小心在Arbitrum上将6万美元的USDC发送到了Base上的一个代币地址。
很高兴地说,今天我们成功地追回了这笔资金。
以下是具体过程(救援仓库链接在最后)
1/🧵

2/ 我直接去了 Base 上的合约部署页面,想看看它是怎么部署的。如果是通过 `CREATE` 操作码部署的,那么我们就可以用同一个部署器和 nonce 在Arbitrum上部署一个救援合约,最终它会到达同一个地址。
3/ 不幸的是,它是由另一个合约创建的,这可能意味着灾难。值得庆幸的是,该合约在三笔交易之前由同一个部署者部署——只是稍微复杂了一点。
更值得庆幸的是,它确实是通过 `CREATE` 部署的。


4/ 就像 EOA 的 `CREATE` 部署基于 nonce 确定性一样,智能合约部署也是如此。合约拥有自己专属的、几乎不可见的 nonce,该 nonce 仅在它们自己部署新的智能合约时才会递增。
5/ 为了进行救援,我们只需要:
- 访问部署者钱包 (0x2CD5)
- 使用部署者的 nonce 2 部署智能合约工厂
- 使用工厂的 nonce 0 从该工厂部署救援合约
总而言之,它看起来像这样:

6/ 工厂和救援合同本身非常简单。请查看以下内容:
该工厂只有一个功能,即创建一个新的救援合约。
救援合同在部署时转移USDC 。
如果还有其他东西被送进来,还会有一个通用的救援措施。

7/ 非常感谢@mjayceee在整个过程中的积极响应和合作,今天早上就把一切都安排好了,并顺利运行。
很高兴我们能够收回资金,让@cumbercapital恢复元气。twitter.com/2573380344/status/...
哦对了,repo 链接:github.com/QuitCrypto/Rescue-U...
救援交易:arbiscan.io/tx/0x556373755a365...
来自推特
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论
分享





