Terkadang, kami hanya ingin mengirim ETH dengan aman. Masukkan 'safeMoveETH' baru Solady. Ada banyak cara untuk mengirim ETH pada kontrak pintar: - 'CALL': Terbuka untuk gas griefing, serangan reentrancy. - 'transfer': Ini sebenarnya adalah 'CALL' dengan tunjangan gas 3000 gas di bawah kap mesin. Jika harga gas berubah (misalnya L2 dengan biaya gas khusus), atau jika targetnya adalah kontrak dengan fungsi penggantian, ini akan rusak. - 'WETH': Tidak ada kontrak WETH kanonik di semua L2. Tidak ada yang memiliki ruang bytecode untuk mengkodekan semua alamat yang berbeda). Selain itu, Anda akan menghabiskan 20 ribu gas untuk SSTORE baru, 5 ribu gas untuk pembaruan SSTORE. Sangat mahal. - 'SELFDESTRUCT': Kita bisa memasak sesuatu dengannya. Setelah EIP-6780, ini dapat disalahgunakan untuk transfer gaya yang cukup efisien. 'safeMoveETH' menggunakan 'SELFDESTRUCT' minimal kanonik untuk memindahkan ETH tanpa memicu 'fallback' yang pernah ada. Jika 'SELFDESTRUCT' pernah dibataki di masa depan (pengembang inti tolong jangan), itu dengan anggun menurunkan menjadi per-address-just-in-time-create2-vault untuk mengumpulkan ETH dengan cara agnostik berantai. Pada dasarnya, apa pun yang terjadi, ETH tidak akan pernah macet.
21,43K