Tiêu đề gốc: " Giới thiệu tối giản về Solidity: 8. Công cụ xây dựng và trang trí 》
Tác giả gốc: 0xAA
Gần đây tôi đang học lại sự vững chắc Tổng hợp chi tiết, đồng thời viết "Giới thiệu theo chủ nghĩa tối giản Solidity" cho người mới sử dụng (chuyên gia lập trình có thể tìm bài hướng dẫn khác) và cập nhật 1-3 bài giảng mỗi tuần.
Tất cả các mã đều là mã nguồn mở trên github: github.com/AmazingAng/WTFSolidity
Cái này bài giảng, chúng ta sẽ sử dụng ví dụ về kiểm soát quyền hợp đồng (Ownable) để giới thiệu hàm tạo và công cụ sửa đổi duy nhất trong ngôn ngữ Solidity.
Constructor là một hàm đặc biệt, mỗi hợp đồng A có thể được định nghĩa và chạy tự động khi hợp đồng được triển khai. Nó có thể được sử dụng để khởi tạo một số tham số của hợp đồng, chẳng hạn như khởi tạo địa chỉ chủ sở hữu của hợp đồng:
Modifier là một cú pháp dành riêng cho độ vững chắc, tương tự như trình trang trí trong lập trình hướng đối tượng, giúp khai báo các đặc điểm của hàm và giảm sự dư thừa mã. Nó giống như bộ giáp thông minh của Iron Man, mặc vào sẽ có những hành vi cụ thể nhất định. Kịch bản sử dụng chính của công cụ sửa đổi là kiểm tra trước khi chạy các chức năng, chẳng hạn như địa chỉ, biến, số dư, v.v.
Công cụ sửa đổi của Iron Man
Us Xác định công cụ sửa đổi có tên onlyOwner:

Các hàm có công cụ sửa đổi onlyOwner chỉ có thể được gọi theo địa chỉ chủ sở hữu, chẳng hạn như ví dụ sau:

Chúng tôi xác định hàm ChangeOwner và chạy nó có thể thay đổi chủ sở hữu của hợp đồng. Tuy nhiên, do sự tồn tại của công cụ sửa đổi onlyOwner nên chỉ chủ sở hữu ban đầu mới có thể gọi nó và sẽ báo lỗi khi người khác gọi nó. Đây cũng là phương pháp được sử dụng phổ biến nhất để kiểm soát quyền của hợp đồng thông minh.
Triển khai tiêu chuẩn có thể sở hữu của OppenZepplin: https://github.com/OpenZeppelin/openzeppelin-contracts/blob / master/contracts/access/Ownable.sol
Trong bài giảng này, chúng tôi đã giới thiệu các hàm tạo và hàm sửa đổi một cách vững chắc, đồng thời đưa ra một ví dụ về kiểm soát các quyền của hợp đồng Hợp đồng sở hữu .
Liên kết gốc blockquote>
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