Đôi khi, chúng ta chỉ muốn gửi ETH một cách an toàn. Hãy nhập vào `safeMoveETH` mới của Solady. Có nhiều cách để gửi ETH trên hợp đồng thông minh: - `CALL`: Mở ra khả năng bị tấn công gas griefing, tấn công tái nhập. - `transfer`: Thực tế đây là một `CALL` với một khoản gas stipend là 3000 gas bên dưới. Nếu giá gas thay đổi (ví dụ: một L2 với chi phí gas tùy chỉnh), hoặc nếu mục tiêu là một hợp đồng có chức năng fallback, điều này sẽ bị hỏng. - `WETH`: Không có hợp đồng WETH chuẩn nào trên tất cả các L2. Không ai có không gian bytecode để mã hóa cứng tất cả các địa chỉ khác nhau). Ngoài ra, bạn sẽ tiêu tốn 20k gas cho một SSTORE mới, 5k gas cho một bản cập nhật SSTORE. Rất tốn kém. - `SELFDESTRUCT`: Chúng ta có thể nấu nướng một cái gì đó với nó. Sau EIP-6780, điều này có thể bị lạm dụng cho một chuyển giao cưỡng bức khá hiệu quả. `safeMoveETH` sử dụng một `SELFDESTRUCT` tối thiểu chuẩn để di chuyển ETH mà không bao giờ kích hoạt `fallback`. Nếu `SELFDESTRUCT` bị brick trong tương lai (các nhà phát triển cốt lõi làm ơn đừng), nó sẽ tự động chuyển đổi thành một vault create2 theo địa chỉ để tích lũy ETH theo cách không phụ thuộc vào chuỗi. Cơ bản là, bất kể điều gì xảy ra, ETH sẽ không bao giờ bị kẹt.
21,43K