Ibland vill vi bara skicka ETH på ett säkert sätt. Här kommer Soladys nya "safeMoveETH" in i bilden. Det finns många sätt att skicka ETH på det smarta kontraktet: - 'CALL': Öppnar upp för gassorg, reentrancy-attacker. - "transfer": Detta är faktiskt ett "CALL" med ett gasstipendium på 3000 gas under huven. Om gaspriserna ändras (t.ex. en L2 med anpassade gaskostnader), eller om målet är ett kontrakt med en reservfunktion, bryts detta. - 'WETH': Det finns inget kanoniskt WETH-kontrakt för alla L2:or. Det finns ingen som har bytekodsutrymme för att hårdkoda alla de olika adresserna). Dessutom kommer du att spendera 20k gas för en ny SSTORE, 5k gas för en SSTORE-uppdatering. Väldigt dyrt. - 'SELFDESTRUCT': Vi kan laga något med det. Efter EIP-6780 kan detta missbrukas för en ganska effektiv kraftöverföring. 'safeMoveETH' använder en kanonisk minimal 'SELFDESTRUCT' för att flytta ETH utan att utlösa "reserven" någonsin. Om "SELFDESTRUCT" någonsin muras i framtiden (kärnutvecklare gör det inte), degraderas det graciöst till ett per-adress-just-in-time-create2-vault för att ackumulera ETH på ett kedjeagnostiskt sätt. I grund och botten, oavsett vad som händer, kommer ETH aldrig att fastna.
29,06K