Chuyển đến nội dung
Góc nhìn toàn cầu về tài sản sốGÓC NHÌN TOÀN CẦU · BỐI CẢNH ĐỊA PHƯƠNG
ChainView BTC866CHAIN VIEW
Học tập

Đọc ABI hợp đồng: hàm, sự kiện và lỗi tùy chỉnh

ABI mô tả cách mã hóa lời gọi và kết quả, không chứng minh mã triển khai đúng mô tả thương mại hoặc an toàn.

Đọc bằngTiếng Việt简体中文繁體中文English한국어РусскийالعربيةEspañol (México)ไทย
Đọc ABI hợp đồng: hàm, sự kiện và lỗi tùy chỉnh

Minh họa chủ đề nguyên bản: Sơ đồ chủ đề nguyên bản của ChainView BTC866 · ChainView BTC866 Editorial · CC BY 4.0

Mô tả cách mã hóa

ABI mô tả cách mã hóa lời gọi và kết quả, không chứng minh mã triển khai đúng mô tả thương mại hoặc an toàn. Để diễn giải dữ liệu, xác định mạng, địa chỉ và phiên bản thực thi thật sự trả lời. Một định nghĩa hợp lệ về cú pháp vẫn có thể không khớp hợp đồng mà công cụ đang truy vấn.

Chữ ký hàm đầy đủ

Selector và tham số mã hóa giúp công cụ trình bày lời gọi. Khi có nhiều hàm cùng tên nhưng khác kiểu, cần chữ ký đầy đủ gồm kiểu dữ liệu. Chỉ đọc tên hiển thị có thể hiểu nhầm đối số hoặc quyền; so chữ ký và từng giá trị trước khi suy luận thao tác nào đã xảy ra.

Sự kiện không chỉ là văn bản

Topic, tham số đánh chỉ mục và trường dữ liệu tuân theo quy tắc mã hóa khác nhau. Một giá trị động được đánh chỉ mục có thể xuất hiện dưới dạng hash, không cho lấy lại văn bản gốc từ trường đó. Xem đặc tả trước khi cố dựng lại thông tin mà nhật ký thực tế không lưu trực tiếp.

Diễn giải lỗi có giới hạn

Dữ liệu hoàn tác có thể là lỗi tùy chỉnh hoặc thông điệp tiêu chuẩn. ABI thiếu, proxy hoặc trạng thái thay đổi làm việc giải mã khó hơn. Trong ví dụ chỉ đọc, đối chiếu phản hồi đã biết với định nghĩa; một lỗi giải mã không phải bằng chứng số dư bằng không hay hợp đồng không tồn tại.

Quy trình có thể lặp lại

Giữ ABI, độ cao khối, địa chỉ và phản hồi thô. Bắt đầu với truy vấn đọc vô hại, kiểm tra kiểu cùng đơn vị kết quả. Nếu triển khai đổi, không tự dùng định nghĩa cũ. Nhãn dễ đọc giúp phân tích nhưng phải đối chiếu với bằng chứng mã và thành phần phụ thuộc, không xem nhãn là bản kiểm toán.

Lưu nguồn của định nghĩa

Ghi ABI đến từ đâu và gắn với phiên bản nào. Một trình khám phá có thể hiển thị giao diện proxy trong khi nhà phát triển cần giao diện phần thực thi. Nếu không xác định được mối liên hệ, đánh dấu kết quả diễn giải là chưa chắc chắn, thay vì chỉnh dữ liệu đầu vào cho đến khi một nhãn có vẻ hợp lý xuất hiện. Đơn vị trả về cũng cần kiểm tra số thập phân; một số nguyên hợp lệ chưa tự nói nó đại diện bao nhiêu đơn vị hiển thị.

Nguồn tham khảo

  1. Solidity contract ABI specification (mở trong thẻ mới)
  2. Solidity contract ABI specification (mở trong thẻ mới)