Bsc
將 ETH 從合約發送到 BSC/BNB 上的 Gnosis Safe 錢包
這是程式碼
address public ceo; function withdraw() external { payable(ceo).transfer(address(this).balance); }
當 CEO 是 EOA 地址時,它起作用了。但是當我將 CEO 地址替換為 gnosis-safe 錢包時,它失敗了。我在 bsc 網路上。
更新:我使用以下程式碼,但它不起作用,它說無效發件人..
overrides = { gasLimit: 500000, gasPrice: ethers.utils.parseUnits('50', 'gwei').toString(), type: 1, accessList: [ { address: "0x22e8371E3A14fA4A643BfaA1875bd04F09563F10", // admin gnosis safe proxy address storageKeys: [ "0x0000000000000000000000000000000000000000000000000000000000000000" ] }, { address: "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", // gnosis safe master address storageKeys: [] } ] } endAuctionTX = await auction.withdraw(overrides) console.log({endAuctionTX}) resolved = await endAuctionTX.wait() console.log({resolved})
Gnosis Safe 需要超過 2300 個氣體(由 發送的預設氣體
transfer
)來接收乙太幣。您應該使用soliditycall
而不是transfer
.
我已經寫了一份如何恢復的指南:https ://github.com/rmeissner/safe-migrator
本指南涉及一些自定義契約,請務必查看它們。這裡的一般方法是將單例(又名主副本)更改為在接收資金時不發出事件的 Safe 版本,因此 gas 成本較低。Safe UI 和服務仍將支持此 Safe(至少現在是這樣),但建議切換回官方 Safe 單例合約。