date
Aug 9, 2024
slug
solidity-basic-1
status
Published
tags
Solidity
summary
Solidity basic 1
type
Post
  1. Bố cục Solidity Source File
Tại sao phải có giấy phép? Một cách đơn giản thì giấy phép giúp cho code của bạn được chứng nhận là mã nguồn mở. Vì code trong các smart contract trên blockchain là public, ai cũng có thể xem code.
Bằng cách thêm giấy phép vào mã nguồn của bạn, bạn xác nhận rằng mã đó là mã nguồn mở, cho phép người khác sử dụng, sửa đổi và phân phối lại theo các điều khoản mà bạn đã chọn. Điều này không chỉ giúp bảo vệ quyền lợi của bạn mà còn thúc đẩy sự phát triển cộng đồng, bởi vì người khác có thể đóng góp và cải thiện mã nguồn của bạn.
  • Pragma Version: xác định phiên bản giúp cố định mã nguồn của contract ở một hoặc vài phiên bản Solidity nhất định.
Bởi vì Solidity liên tục cập nhật với các tính năng mới, cải tiến hiệu suất và sửa lỗi. Xác định version cho contract giúp đảm bão mã được biên dịch và chạy chính xác, không gặp phải các vấn đề không tương thích của các phiên bản cập nhật mới hơn.
  1. Những kiểu dữ liệu (type) cơ bản của Solidity
  • uint256: số nguyên dương, có giá trị từ 0 đổ lên. Mặc định là số 0.
  • int256: số nguyên, có thể có giá trị âm, dương, hoặc bằng 0. Mặc định là số 0.
  • bool: đúng hoặc sai, true hoặc false. Mặc định là false.
  • string: chuỗi ký tự, độ dài của chuỗi không được cố định và có thể thay đổi. Thường dùng để lưu văn bản. Mặc định là chuỗi rỗng.
  • bytes: dùng để lưu dữ liệu nhị phân, không phải là văn bản. bytes là kiểu dữ liệu động, độ dài có thể thay đổi, còn bytes32 là kiểu dữ liệu tĩnh, có độ dài cố định. Mặc định là rỗng.
  • address: địa chỉ address, dùng để xác định người dùng, các hợp đồng trong mạng lưới blockchain. Mặc định là address(0) 0x0000000000000000000000000000000000000000
  • Functions
    • Visibility: public, external, internal, private.
    • public có thể gọi function trong hợp đồng ở đâu cũng được, không có giới hạn.
    • external chỉ có thể gọi từ bên ngoài vào trong hợp đồng.
    • internal có thể gọi từ bên trong hợp đồng và từ các hợp đồng được kế thừa.
    • private chỉ có thể gọi bên trong hợp đồng mà không thể gọi từ hợp đồng con được kế thừa nào.
    • Deploy một contract (smart contract có một địa chỉ address cũng giống như wallet của chúng ta).
    • view & pure functions.
  • Array
    Struct
    Memory, Storage & Calldata
    Mappings
    mapping là một loại cấu trúc dữ liệu được sử dụng để lưu trữ cặp key-value, cho phép bạn ánh xạ một giá trị (value) tới một key (khóa) duy nhất và không thứ tự.

    “Success is not final, failure is not fatal: it is the courage to continue that counts.“

    Winston Churchill


    © Hiếu Trần 2020 - 2025

    Tip: Use console.table() for better array logging!
    Anime Character