Tiêu đề gốc: " Giới thiệu tối giản về Solidity: 17. Hợp đồng thư viện Đứng trên vai người khổng lồ 》
Tác giả gốc: 0xAA
Gần đây tôi đã học lại về sự vững chắc, củng cố các chi tiết và cũng viết một cuốn "Sự vững chắc tối giản" "Bắt đầu" dành cho người mới (chuyên gia lập trình có thể tìm hướng dẫn khác), với 1-3 bài giảng được cập nhật mỗi tuần.
Tất cả mã và hướng dẫn đều là nguồn mở trên github: github.com/AmazingAng/WTFSolidity
Ở đây Trong bài giảng đầu tiên, chúng tôi sử dụng Chuỗi hợp đồng thư viện được tham chiếu bởi ERC721 làm ví dụ để giới thiệu hợp đồng thư viện (thư viện) một cách vững chắc và tóm tắt các chức năng thư viện thường được sử dụng.
Chức năng của thư viện là một hợp đồng đặc biệt, chủ yếu là để nâng cao tính vững chắc. Nó tồn tại cho khả năng tái sử dụng mã và giảm phí gas. Hợp đồng thư viện nói chung là tập hợp các chức năng hữu ích (chức năng thư viện) do chủ hoặc các bên dự án tạo ra, chúng ta đứng trên vai những người khổng lồ và chỉ biết cách sử dụng chúng.

Hợp đồng thư viện: Đứng trên vai người khổng lồ
Nó chủ yếu khác với hợp đồng thông thường ở những điểm sau:
Biến trạng thái không thể tồn tại và không thể được kế thừa hoặc kế thừa
Không thể nhận tiền Ether
Không thể bị phá hủy
Hợp đồng thư viện chuỗi là thư viện mã chuyển đổi loại uint256 thành loại chuỗi tương ứng. Mã mẫu như sau:

Nó chủ yếu chứa hai hàm, toString() chuyển đổi uint256 thành chuỗi và toHexString() chuyển đổi uint256 thành thập lục phân rồi thành chuỗi.
Chúng ta sử dụng toHexString() của hàm thư viện String để trình bày hai cách A để sử dụng các chức năng từ hợp đồng thư viện.
Directive sử dụng A cho B;  ; có thể được sử dụng để gắn các hàm thư viện (từ thư viện A) vào bất kỳ loại (B) nào. Sau khi thêm lệnh, hàm trong thư viện A sẽ tự động được thêm làm thành viên của biến loại B và có thể được gọi trực tiếp. Lưu ý: Khi được gọi, biến này sẽ được truyền vào hàm dưới dạng tham số đầu tiên:


Chúng tôi triển khai hợp đồng và nhập 170 để kiểm tra. Cả hai phương pháp đều có thể trả về chuỗi thập lục phân chính xác "0xaa". Chứng minh rằng chúng ta đã gọi thành công hàm thư viện!

Đã gọi thành công hàm thư viện
Trong bài giảng này, chúng tôi sử dụng hàm thư viện String được tham chiếu bởi ERC721 làm ví dụ để giới thiệu hàm thư viện (Library) một cách vững chắc. 99% nhà phát triển không cần phải tự viết hợp đồng thư viện, miễn là họ có thể sử dụng những gì một bậc thầy đã viết. Chúng ta chỉ cần biết nên sử dụng hợp đồng thư viện nào trong tình huống nào. Những cái thường được sử dụng là:
Chuỗi: Chuyển uint256 thành Chuỗi
Địa chỉ: Xác định xem địa chỉ là địa chỉ hợp đồng
Create2: Sử dụng opcode Create2 EVM an toàn hơn
Mảng: Các hàm thư viện liên quan đến mảng
Liên kết gốc
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia