Đã từng tồn tại một lỗi trong solidity từ v0.5.8 đến 0.8.15, và đã được cải thiện rồi phát hành trong v0.8.16.
Bài viết này tập trung dịch và tổng hợp các phần cốt lõi, đồng thời cũng đã tự chạy thử mã ví dụ.
Tóm lại, nếu trong tuple có kiểu dữ liệu kích thước động và thành phần cuối cùng là kiểu dữ liệu kích thước tĩnh, thì khi biên dịch bằng ABI coder v2 sẽ có vấn đề một phần dữ liệu cụ thể bị ghi đè bằng giá trị 0.
ABI coder v2 được sử dụng mặc định từ phiên bản 0.8.
Bạn nên kiểm tra xem cấu trúc contract đã triển khai có phải là mã có thể phát sinh lỗ hổng như trên hay không và nên khắc phục nếu cần.
Chưa có bình luận nào.