Web3 with Solidity
Code in https://remix.ethereum.org/:
Lesson 6:
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
contract SimpleStorage {
//Kiểu dữ liệu: uint, int, bool, string, bytes, address
// int8 a=4; // range from -2^7 to 2^7-1
// uint8 b=10; // range from 0 to 2^8-1
// uint256 c=399; // range from 0 to 2^256-1
// bool isTrue; // default is False
// string thisString = “hello world”;
// bytes thisByte= “3f43fw3”; // lưu chuỗi dữ liệu nhị phân, thường sử bytes32 (chứa 32 ký tự)
// address ad = 0x1c85F4FF08507d0Dc36C59Be4fce48D800AFDB18; // lưu địa chỉ ví
uint256 public number; // có 3 trạng thái của biến: public (sử bất cứ đâu), private (sử dụng trong contract thôi), internal (có thể kế thừa)
uint256[] public arrayOfNumber;
uint256[5] public fixedArrayOfNumber;
struct Person {
string name;
uint256 number;
}
Person[] public dynamicArrayOfPerson;
function setNumber(uint256 newNumber) public {
number = newNumber;
}
function pushToArrayOfNumber (uint256 newNumber) public {
arrayOfNumber.push(newNumber);
}
function pushToFixedArrayNumber (uint256 index, uint256 newNumber) public {
fixedArrayOfNumber[index] = newNumber;
}
function pushToDynamicArrayOfPerson (string memory name, uint256 _number) public {
dynamicArrayOfPerson.push(Person({name: name,number: _number}));
}
}
Dưới đây là tóm tắt về các khái niệm và quy trình liên quan đến Solidity và Remix IDE mà chúng ta đã thảo luận:
Giới thiệu về Solidity
- Solidity là ngôn ngữ lập trình cho hợp đồng thông minh trên Ethereum.
- Hỗ trợ lập trình hướng đối tượng, kiểu dữ liệu phức tạp, và bảo mật.
Remix IDE
- Môi trường phát triển tích hợp cho hợp đồng thông minh Ethereum.
- Hỗ trợ viết, biên dịch, triển khai, và gỡ lỗi hợp đồng.
Bố cục tệp nguồn Solidity
- Bắt đầu với chỉ định phiên bản và giấy phép.
- Định nghĩa hợp đồng, biến trạng thái, sự kiện, và hàm.
Biến và Kiểu Dữ Liệu
- Các kiểu dữ liệu cơ bản:
boolean
,integer
,address
,string
,bytes
. - Kiểu dữ liệu phức tạp:
array
,struct
,mapping
.
Hàm trong Solidity
- Các loại hàm:
public
,private
,internal
,external
. - Từ khóa quan trọng:
view
,pure
,payable
. - Modifiers và các hàm
fallback
/¨C16C.
Mảng và Cấu trúc
- Mảng tĩnh và động.
Struct
để tạo kiểu dữ liệu phức tạp.
Mapping
- Ánh xạ khóa với giá trị, không thể duyệt qua.
- Thường dùng với
structs
để lưu trữ dữ liệu phức tạp.
Storage, Calldata, và Memory
storage
: lưu trữ vĩnh viễn, dùng cho biến trạng thái.calldata
: chỉ đọc, dùng cho tham số hàmexternal
.memory
: tạm thời, dùng cho biến cục bộ và tham số hàmpublic
/internal
.
Triển khai Hợp đồng với Remix
- Tạo tệp hợp đồng, biên dịch, và triển khai.
- Chọn môi trường triển khai và tương tác với hợp đồng.
Tương tác với Hợp đồng đã Triển khai
- Sử dụng Remix để gọi các hàm trong hợp đồng.
- Kiểm tra kết quả và xử lý lỗi.
Những kiến thức này cung cấp nền tảng vững chắc để bạn bắt đầu phát triển và triển khai các hợp đồng thông minh trên Ethereum.