Bài 11: Tự học Solidity cơ bản. Bài ôn tập. Vận dụng kiến thức 10 bài đã học để đọc hiểu một Smart Contract
Ôn tập Solidity
Vận dụng kiến thức 10 bài đã học để đọc hiểu một Smart Contract Solidity. Trong khoá học online miễn phí Tự học lập trình web3 - Tự học ngôn ngữ lập trình Solidity
Xin chào các bạn, như vậy là sau 10 bài học đầu tiên chúng ta đã có một lượng kiến thức cơ bản nhất về ngôn ngữ lập trình Solidity và lập trình web3 Smart Contract. Ở bài học này chúng ta dừng lại một chút để hệ thống lại những thứ mà chúng ta đã học bằng một bài ôn tập. Tôi sẽ liệt kê lại danh sách 10 bài chúng ta đã học và link trực tiếp đến bài giảng đó nếu bạn cần ôn lại.
- Bài giới thiệu: Đối tượng phù hợp.
- Bài 1: Contracts & Pragma. Hợp Đồng và phiên bản Pragma.
- Bài 2: State Variables & Integers. Biến trạng thái & số nguyên.
- Bài 3: Math Operations. Các phép toán trong Solidity.
- Bài 4: Structs. Cấu trúc struct trong ngôn ngữ lập trình Solidity.
- Bài 5: Arrays. Cấu trúc mảng trong ngôn ngữ lập trình Solidity.
- Bài 6: Function Declarations. Khai báo hàm ngôn ngữ lập trình Solidity.
- Bài 7: Structs & Arrays. Làm việc với structs và mảng trong Solidity.
- Bài 8: Private / Public Functions. Thuộc tính của hàm trong ngôn ngữ Solidity.
- Bài 9: Return Values of Functions. Giá trị trả về của các hàm trong ngôn ngữ Solidity.
- Bài 10: Hàm băm Keccak256 và Typecasting - ép kiểu dữ liệu trong ngôn ngữ Solidity.
Nhiệm vụ của các bạn là hãy viết commnet cho đoạn code sau, hãy viết comment cho từng dòng lệnh. Hãy viết ý nghĩa của dòng code và những điều cần chú ý.
pragma solidity >=0.5.0 <0.6.0;
contract ZombieFactory {
uint dnaDigits = 16;
uint dnaModulus = 10 ** dnaDigits;
struct Zombie {
string name;
uint dna;
}
Zombie[] public zombies;
function _createZombie(string memory _name, uint _dna) private {
zombies.push(Zombie(_name, _dna));
}
function _generateRandomDna(string memory _str) private view returns (uint) {
uint rand = uint(keccak256(abi.encodePacked(_str)));
return rand % dnaModulus;
}
function createRandomZombie(string memory _name) public {
uint randDna = _generateRandomDna(_name);
_createZombie(_name, randDna);
}
}
Nếu bạn chưa biết cách TẠO FILE, COMPILER và DEPLOY thì hãy xem lại trong bài giới thiệu nhé. Có hướng dẫn chi tiết ở đó.