Soms willen we gewoon ETH veilig verzenden. Voer Solady's nieuwe `safeMoveETH` in. Er zijn veel manieren om ETH op het slimme contract te verzenden: - `CALL`: Dit opent de deur naar gas griefing en reentrancy-aanvallen. - `transfer`: Dit is eigenlijk een `CALL` met een gasvergoeding van 3000 gas onder de motorkap. Als de gasprijzen veranderen (bijv. een L2 met aangepaste gaskosten), of als het doel een contract is met een fallback-functie, dan werkt dit niet meer. - `WETH`: Er is geen canoniek WETH-contract over alle L2's. Niemand heeft bytecode-ruimte om al die verschillende adressen hardcoded in te voeren). Ook zul je 20k gas uitgeven voor een verse SSTORE, 5k gas voor een SSTORE-update. Erg duur. - `SELFDESTRUCT`: We kunnen er iets mee doen. Na EIP-6780 kan dit worden misbruikt voor een vrij efficiënte gedwongen overdracht. `safeMoveETH` gebruikt een canonieke minimale `SELFDESTRUCT` om ETH te verplaatsen zonder ooit de `fallback` te activeren. Als `SELFDESTRUCT` in de toekomst ooit geblokkeerd wordt (kernontwikkelaars, alsjeblieft niet), degradeert het elegant naar een per-adres-just-in-time-create2-vault om ETH op een ketonafhankelijke manier te accumuleren. Kortom, ongeacht wat er gebeurt, zal de ETH nooit vast komen te zitten.
24,2K