BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR
Partnered With:

Giới thiệu về sự vững chắc theo chủ nghĩa tối giản|Bài giảng 17: Hợp đồng thư viện đứng trên vai những người khổng lồ

Đọc bài viết này mất 8 phút
Bài viết này sử dụng Chuỗi hàm thư viện được tham chiếu bởi ERC721 làm ví dụ để giới thiệu các hàm thư viện một cách vững chắc.
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


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


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.


Cách sử dụng hợp đồng thư viện


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.


1. Sử dụng lệnh use for:


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:



2. Gọi hàm thư viện thông qua tên hợp đồng thư việ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

Tóm tắt


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

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi