2k1
  • Home
  • Programming
  • System
  • Design
  • Applications
  • Tech
No Result
View All Result
  • Login
2k1
  • Home
  • Programming
  • System
  • Design
  • Applications
  • Tech
No Result
View All Result
2k1
No Result
View All Result

Xây dựng todo app với smartcontract

Nguyen Pham by Nguyen Pham
16/05/2023
in Blockchain
Reading Time: 4 mins read
A A
0

Todo app web3

Cài đặt môi trường

node 14.19.2

$ node -v
v14.19.2

ganache desktop
https://trufflesuite.com/ganache/

Hardhat

Biên dịch contract

yarn compile

Deploy contract local

yarn deploy:local

Tạo typechain cho web3

yarn compile:web3

Contract

Todo.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract TodoList {
    uint256 public taskCount = 0;
    struct Task {
        uint256 id;
        string content;
        bool completed;
    }

    mapping(uint256 => Task) public tasks;
    event TaskAdded(uint256 id, string content);

    constructor() {
        createTask("Learn smartcontract");
    }

    // function for create task
    function createTask(string memory _content) public {
        taskCount++;
        tasks[taskCount] = Task(taskCount, _content, false);
        emit TaskAdded(taskCount, _content);
    }

    function getTask(uint256 _id) public view returns (Task memory) {
        return tasks[_id];
    }

    function completeTask(uint256 _id) public {
        tasks[_id].completed = true;
    }
}

Đây là một smart contract đơn giản viết trên nền tảng Ethereum bằng ngôn ngữ Solidity. Smart contract này định nghĩa một ứng dụng Todo List đơn giản, cho phép người dùng tạo mới một task, xem nội dung của task, và đánh dấu task đã hoàn thành.

Các thành phần chính của smart contract:

  • pragma solidity ^0.8.0;: Khai báo phiên bản Solidity cần thiết để biên dịch smart contract.
  • contract TodoList { ... }: Định nghĩa smart contract với tên là TodoList.
  • uint256 public taskCount = 0;: Biến public taskCount lưu trữ số lượng task hiện tại.
  • struct Task { ... }: Định nghĩa struct Task gồm các thông tin về task bao gồm id, nội dung và trạng thái hoàn thành.
  • mapping(uint256 => Task) public tasks;: Mapping public tasks lưu trữ các task theo id.
  • event TaskAdded(uint256 id, string content);: Sự kiện public TaskAdded được kích hoạt khi một task mới được tạo.
  • constructor() { ... }: Hàm khởi tạo của smart contract, được gọi khi contract được triển khai. Trong đó sẽ tạo một task mới để thử nghiệm.
  • function createTask(string memory _content) public { ... }: Hàm public createTask cho phép tạo một task mới. Trong đó tạo một task mới, tăng biến taskCount lên 1 và kích hoạt sự kiện TaskAdded.
  • function getTask(uint256 _id) public view returns (Task memory) { ... }: Hàm public getTask cho phép xem thông tin của một task dựa trên id. Hàm này trả về một biến kiểu Task và chỉ có thể xem, không thể sửa.
  • function completeTask(uint256 _id) public { ... }: Hàm public completeTask cho phép đánh dấu một task đã hoàn thành. Hàm này sẽ thay đổi trạng thái hoàn thành của task tương ứng trong mapping tasks.

Sourcecode

npv2k1/web3-todo-app: Learn and develop a simple web3 todo app (github.com)

Tags: Blockchainhardhatremixsmartcontract
Previous Post

Các cơ chế đồng thuận trên blockchain

Next Post

Chạy ứng dụng react native đầu tiên của bạn

Related Posts

Các cơ chế đồng thuận trên blockchain
Blockchain

Các cơ chế đồng thuận trên blockchain

by Nguyen Pham
16/05/2023
Load More
Next Post

Chạy ứng dụng react native đầu tiên của bạn

Please login to join discussion
Stock

Phân tích mã cổ phiếu VCB

by Nguyen Pham
26/04/2025
0

Phân tích mã cổ phiếu VCB (Ngân hàng TMCP Ngoại thương Việt Nam - Vietcombank) 1. Tổng quan về Vietcombank...

Read more

Facebook, Instagram bất ngờ sập trên diện rộng, liên tục đăng xuất người dùng!

05/03/2024
Xây dựng todo app với smartcontract

Web3 là gì?

30/06/2023
Xây dựng todo app với smartcontract

Giới thiệu về đa luồng trong ngôn ngữ lập trình go có code minh họa.

29/06/2023

Chạy ứng dụng react native đầu tiên của bạn

29/06/2023

@2021 2k1.org [email protected]

No Result
View All Result
  • Home
  • Review
  • Applications
  • Computers
  • Gaming
  • Microsoft

© 2021 NData

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In