Trong phần này, chúng ta sẽ thảo luận về quy trình viết một hợp đồng thông minh cơ bản bằng Solidity. Chúng tôi sẽ đề cập đến các thành phần thiết yếu như biến, hàm và công cụ sửa đổi. Sau đó, chúng ta sẽ xem qua một ví dụ về việc triển khai một hợp đồng token đơn giản.
Biến, hàm và bộ điều chỉnh
Ví dụ 1: Thực hiện một hợp đồng token đơn giản
Hãy tạo một hợp đồng token đơn giản bằng cách sử dụng Solidity. Hợp đồng này sẽ cho phép người dùng chuyển đổi token giữa các tài khoản và kiểm tra số dư token của bất kỳ tài khoản nào.
pragma solidity ^0.8.0; hợp đồng SimpleToken { // Khai báo biến trạng thái địa chỉ công khai chủ sở hữu; ánh xạ (địa chỉ => uint256) công khai số dư; // Khởi tạo hợp đồng mã thông báo constructor(uint256 cung cấp ban đầu) { chủ sở hữu = msg.sender; số dư[chủ sở hữu] = cung cấp ban đầu; } // Chức năng chuyển các thông báo chức năng chuyển (địa chỉ đến, uint256 số lượng) công khai { yêu cầu(số dư[msg.sender] >= số lượng, "Số dư không đủ"); số dư[msg.sender] -= số lượng; số dư[đến] += số lượng; } // Chức năng kiểm tra số dư mã thông báo của một tài khoản chức năng balanceOf(địa chỉ tài khoản) công khai xem trả lại (uint256) { trả lại số dư[tài khoản]; }}
Trong hợp đồng này, chúng ta có:
chủ sở hữu
vàsố dư
để lưu địa chỉ chủ hợp đồng và số dư token của tất cả các địa chỉ tương ứng.người xây dựng
hàm thiết lập nguồn cung ban đầu của các token và gán chúng cho chủ sở hữu hợp đồng.chuyển khoản
hàm cho phép người dùng chuyển token sang tài khoản khác. Nó sử dụng yêu cầu
tuyên bố để đảm bảo người gửi có đủ token để chuyển nhượng.số dư của
hàm trả về số dư token của một tài khoản cụ thể.Ví dụ 2: Thực hiện một hệ thống bỏ phiếu đơn giản
TypeScriptpragma solidity ^0.8.0;contract VotingSystem { mapping (bytes32 => uint256) public votesReceived; bytes32[] public candidateList; constructor(bytes32[] memory candidateNames) { candidateList = candidateNames; } function voteForCandidate(bytes32 candidate) public { require(validCandidate(candidate), "Invalid candidate."); votesReceived[candidate] += 1; } function totalVotesFor(bytes32 candidate) public view returns (uint256) { require(validCandidate(candidate), "Invalid candidate."); return votesReceived[candidate]; } function validCandidate(bytes32 candidate) public view returns (bool) { for (uint256 i = 0; i < candidateList.length; i++) { if (candidateList[i] == candidate) { return true; } } return false; }}
Trong ví dụ này, Hệ thống bỏ phiếu
hợp đồng cho phép người dùng bỏ phiếu cho một trong số các ứng cử viên bằng cách gọi điện thoạibỏ phiếu cho ứng cử viên
Hàm. Hợp đồng theo dõi số phiếu bầu nhận được cho mỗi ứng cử viên bằng cách sử dụng một số phiếu nhận được
phân bố, trong đó key là tên của ứng cử viên và giá trị là số phiếu bầu.danh sách ứng viên
biến lưu trữ danh sách ứng cử viên hợp lệ. tổng số phiếu bầu cho
Hàm có thể được gọi để kiểm tra số phiếu mà một ứng cử viên cụ thể đã nhận được, và ứng cử viên hợp lệ
Hàm kiểm tra xem ứng cử viên có hợp lệ hay không. Đây là một ví dụ đơn giản về cách Solidity có thể được sử dụng để xây dựng ứng dụng phi tập trung với logic phức tạp.
Nổi bật
Biến, hàm và bộ điều chỉnh là các thành phần quan trọng trong hợp đồng thông minh Solidity.
Solidity có hai loại biến: biến trạng thái và biến cục bộ.
Các chức năng được sử dụng để thực hiện các nhiệm vụ và có thể có tham số đầu vào và giá trị trả về.
Các bộ điều chỉnh được sử dụng để điều chỉnh hành vi của một hàm và cải thiện tính đọc và quản lý mã.
Hợp đồng SimpleToken cho phép người dùng chuyển token và kiểm tra số dư token.
Hợp đồng SimpleToken thể hiện việc sử dụng biến trạng thái, hàm constructor và các hàm như transfer và balanceOf.
Hợp đồng VotingSystem cho phép người dùng bỏ phiếu cho ứng cử viên và theo dõi số phiếu bầu.
Hợp đồng VotingSystem trình bày việc sử dụng bảng ánh xạ, mảng và các hàm như voteForCandidate, totalVotesFor và validCandidate.
Trong phần này, chúng ta sẽ thảo luận về quy trình viết một hợp đồng thông minh cơ bản bằng Solidity. Chúng tôi sẽ đề cập đến các thành phần thiết yếu như biến, hàm và công cụ sửa đổi. Sau đó, chúng ta sẽ xem qua một ví dụ về việc triển khai một hợp đồng token đơn giản.
Biến, hàm và bộ điều chỉnh
Ví dụ 1: Thực hiện một hợp đồng token đơn giản
Hãy tạo một hợp đồng token đơn giản bằng cách sử dụng Solidity. Hợp đồng này sẽ cho phép người dùng chuyển đổi token giữa các tài khoản và kiểm tra số dư token của bất kỳ tài khoản nào.
pragma solidity ^0.8.0; hợp đồng SimpleToken { // Khai báo biến trạng thái địa chỉ công khai chủ sở hữu; ánh xạ (địa chỉ => uint256) công khai số dư; // Khởi tạo hợp đồng mã thông báo constructor(uint256 cung cấp ban đầu) { chủ sở hữu = msg.sender; số dư[chủ sở hữu] = cung cấp ban đầu; } // Chức năng chuyển các thông báo chức năng chuyển (địa chỉ đến, uint256 số lượng) công khai { yêu cầu(số dư[msg.sender] >= số lượng, "Số dư không đủ"); số dư[msg.sender] -= số lượng; số dư[đến] += số lượng; } // Chức năng kiểm tra số dư mã thông báo của một tài khoản chức năng balanceOf(địa chỉ tài khoản) công khai xem trả lại (uint256) { trả lại số dư[tài khoản]; }}
Trong hợp đồng này, chúng ta có:
chủ sở hữu
vàsố dư
để lưu địa chỉ chủ hợp đồng và số dư token của tất cả các địa chỉ tương ứng.người xây dựng
hàm thiết lập nguồn cung ban đầu của các token và gán chúng cho chủ sở hữu hợp đồng.chuyển khoản
hàm cho phép người dùng chuyển token sang tài khoản khác. Nó sử dụng yêu cầu
tuyên bố để đảm bảo người gửi có đủ token để chuyển nhượng.số dư của
hàm trả về số dư token của một tài khoản cụ thể.Ví dụ 2: Thực hiện một hệ thống bỏ phiếu đơn giản
TypeScriptpragma solidity ^0.8.0;contract VotingSystem { mapping (bytes32 => uint256) public votesReceived; bytes32[] public candidateList; constructor(bytes32[] memory candidateNames) { candidateList = candidateNames; } function voteForCandidate(bytes32 candidate) public { require(validCandidate(candidate), "Invalid candidate."); votesReceived[candidate] += 1; } function totalVotesFor(bytes32 candidate) public view returns (uint256) { require(validCandidate(candidate), "Invalid candidate."); return votesReceived[candidate]; } function validCandidate(bytes32 candidate) public view returns (bool) { for (uint256 i = 0; i < candidateList.length; i++) { if (candidateList[i] == candidate) { return true; } } return false; }}
Trong ví dụ này, Hệ thống bỏ phiếu
hợp đồng cho phép người dùng bỏ phiếu cho một trong số các ứng cử viên bằng cách gọi điện thoạibỏ phiếu cho ứng cử viên
Hàm. Hợp đồng theo dõi số phiếu bầu nhận được cho mỗi ứng cử viên bằng cách sử dụng một số phiếu nhận được
phân bố, trong đó key là tên của ứng cử viên và giá trị là số phiếu bầu.danh sách ứng viên
biến lưu trữ danh sách ứng cử viên hợp lệ. tổng số phiếu bầu cho
Hàm có thể được gọi để kiểm tra số phiếu mà một ứng cử viên cụ thể đã nhận được, và ứng cử viên hợp lệ
Hàm kiểm tra xem ứng cử viên có hợp lệ hay không. Đây là một ví dụ đơn giản về cách Solidity có thể được sử dụng để xây dựng ứng dụng phi tập trung với logic phức tạp.
Nổi bật
Biến, hàm và bộ điều chỉnh là các thành phần quan trọng trong hợp đồng thông minh Solidity.
Solidity có hai loại biến: biến trạng thái và biến cục bộ.
Các chức năng được sử dụng để thực hiện các nhiệm vụ và có thể có tham số đầu vào và giá trị trả về.
Các bộ điều chỉnh được sử dụng để điều chỉnh hành vi của một hàm và cải thiện tính đọc và quản lý mã.
Hợp đồng SimpleToken cho phép người dùng chuyển token và kiểm tra số dư token.
Hợp đồng SimpleToken thể hiện việc sử dụng biến trạng thái, hàm constructor và các hàm như transfer và balanceOf.
Hợp đồng VotingSystem cho phép người dùng bỏ phiếu cho ứng cử viên và theo dõi số phiếu bầu.
Hợp đồng VotingSystem trình bày việc sử dụng bảng ánh xạ, mảng và các hàm như voteForCandidate, totalVotesFor và validCandidate.