Lição 3

Quản lý danh sách trên thị trường

Sau khi đề cập đến việc tạo, niêm yết và mua các mặt hàng trên thị trường phi tập trung của chúng tôi, giờ đây chúng tôi sẽ tập trung vào việc nâng cao hợp đồng thông minh của mình bằng cách thêm chức năng loại bỏ các mặt hàng khỏi bán và cập nhật giá của một mặt hàng.

Tăng cường hợp đồng thị trường

Trong phần này, chúng tôi sẽ giới thiệu hai chức năng mới: removeItemFromSaleupdateItemPrice. Các chức năng này sẽ cho phép người bán xóa mặt hàng của họ khỏi chương trình bán và cập nhật giá tương ứng cho mặt hàng của họ.

Đây là hợp đồng Marketplace nâng cao:

Độ rắn 
 // SPDX-Mã định danh giấy phép: MIT 
 độ rắn pragma ^0.8.6; 

 Contract Marketplace { 
 // Xác định cấu trúc mới cho Item 
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Mảng chứa tất cả các item 
 Item[] public items; 

 // Các định nghĩa sự kiện được bỏ qua để ngắn gọn 

 // Các định nghĩa hàm khác bị bỏ qua để ngắn gọn 

 // Hàm xóa một mặt hàng khỏi đợt giảm giá 
 hàm getItemFromSale(uint _itemId) public {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can remove the item from sale");
        item.forSale = false;
    }

    // Hàm cập nhật giá của một mặt hàng 
 hàm updateItemPrice(uint _itemId, uint _newPrice) public {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can update the price");
        item.price = _newPrice;
    }
}

Trong hàm removeItemFromSale , trước tiên chúng tôi truy xuất mục có _itemId được cung cấp. Sau đó, chúng tôi kiểm tra xem người gọi hàm (msg.sender) có phải là người bán mặt hàng đó hay không. Nếu trường hợp này xảy ra, chúng tôi đặt thuộc tính forSale của mặt hàng đó thành false, loại bỏ mặt hàng đó khỏi việc bán một cách hiệu quả.

Tương tự, trong hàm updateItemPrice , chúng ta truy xuất mặt hàng có _itemId được cung cấp, kiểm tra xem msg.sender có phải là người bán không và nếu có thì chúng ta sẽ cập nhật giá của mặt hàng đó thành _newPrice được cung cấp.

Triển khai và tương tác với Hợp đồng thị trường nâng cao

Sau khi nâng cao hợp đồng Marketplace , hãy biên dịch và triển khai nó giống như bạn đã làm trong các bài học trước. Hãy nhớ chọn đúng hợp đồng từ menu thả xuống trong plugin trình biên dịch Solidity trước khi biên dịch và triển khai.

Sau khi hợp đồng được triển khai, nó sẽ xuất hiện trong phần Hợp đồng đã triển khai trong plugin Triển khai & Chạy giao dịch. Tại đây, bạn có thể tương tác với hợp đồng.

Để xóa một mặt hàng khỏi bán, hãy nhập ID mặt hàng vào chức năng removeItemFromSale và nhấp vào nút. Để cập nhật giá của một mặt hàng, nhập ID mặt hàng và giá mới vào chức năng updateItemPrice và nhấp vào nút.

Với điều này, giờ đây bạn đã xây dựng một thị trường phi tập trung cơ bản nhưng đầy đủ chức năng trên chuỗi khối Ethereum. Bạn có thể tạo, liệt kê, mua, xóa và cập nhật các mặt hàng bằng hợp đồng thông minh này. Bạn đã làm rất tốt!

Trong bài học tiếp theo, chúng ta sẽ thảo luận cách xử lý các lỗ hổng bảo mật tiềm ẩn trong hợp đồng của chúng ta và giới thiệu các công cụ sửa đổi để hợp lý hóa mã của chúng ta hơn nữa. Giữ nguyên!

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.
Catálogo
Lição 3

Quản lý danh sách trên thị trường

Sau khi đề cập đến việc tạo, niêm yết và mua các mặt hàng trên thị trường phi tập trung của chúng tôi, giờ đây chúng tôi sẽ tập trung vào việc nâng cao hợp đồng thông minh của mình bằng cách thêm chức năng loại bỏ các mặt hàng khỏi bán và cập nhật giá của một mặt hàng.

Tăng cường hợp đồng thị trường

Trong phần này, chúng tôi sẽ giới thiệu hai chức năng mới: removeItemFromSaleupdateItemPrice. Các chức năng này sẽ cho phép người bán xóa mặt hàng của họ khỏi chương trình bán và cập nhật giá tương ứng cho mặt hàng của họ.

Đây là hợp đồng Marketplace nâng cao:

Độ rắn 
 // SPDX-Mã định danh giấy phép: MIT 
 độ rắn pragma ^0.8.6; 

 Contract Marketplace { 
 // Xác định cấu trúc mới cho Item 
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Mảng chứa tất cả các item 
 Item[] public items; 

 // Các định nghĩa sự kiện được bỏ qua để ngắn gọn 

 // Các định nghĩa hàm khác bị bỏ qua để ngắn gọn 

 // Hàm xóa một mặt hàng khỏi đợt giảm giá 
 hàm getItemFromSale(uint _itemId) public {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can remove the item from sale");
        item.forSale = false;
    }

    // Hàm cập nhật giá của một mặt hàng 
 hàm updateItemPrice(uint _itemId, uint _newPrice) public {
        Item storage item = items[_itemId];
        require(msg.sender == item.seller, "Only the owner can update the price");
        item.price = _newPrice;
    }
}

Trong hàm removeItemFromSale , trước tiên chúng tôi truy xuất mục có _itemId được cung cấp. Sau đó, chúng tôi kiểm tra xem người gọi hàm (msg.sender) có phải là người bán mặt hàng đó hay không. Nếu trường hợp này xảy ra, chúng tôi đặt thuộc tính forSale của mặt hàng đó thành false, loại bỏ mặt hàng đó khỏi việc bán một cách hiệu quả.

Tương tự, trong hàm updateItemPrice , chúng ta truy xuất mặt hàng có _itemId được cung cấp, kiểm tra xem msg.sender có phải là người bán không và nếu có thì chúng ta sẽ cập nhật giá của mặt hàng đó thành _newPrice được cung cấp.

Triển khai và tương tác với Hợp đồng thị trường nâng cao

Sau khi nâng cao hợp đồng Marketplace , hãy biên dịch và triển khai nó giống như bạn đã làm trong các bài học trước. Hãy nhớ chọn đúng hợp đồng từ menu thả xuống trong plugin trình biên dịch Solidity trước khi biên dịch và triển khai.

Sau khi hợp đồng được triển khai, nó sẽ xuất hiện trong phần Hợp đồng đã triển khai trong plugin Triển khai & Chạy giao dịch. Tại đây, bạn có thể tương tác với hợp đồng.

Để xóa một mặt hàng khỏi bán, hãy nhập ID mặt hàng vào chức năng removeItemFromSale và nhấp vào nút. Để cập nhật giá của một mặt hàng, nhập ID mặt hàng và giá mới vào chức năng updateItemPrice và nhấp vào nút.

Với điều này, giờ đây bạn đã xây dựng một thị trường phi tập trung cơ bản nhưng đầy đủ chức năng trên chuỗi khối Ethereum. Bạn có thể tạo, liệt kê, mua, xóa và cập nhật các mặt hàng bằng hợp đồng thông minh này. Bạn đã làm rất tốt!

Trong bài học tiếp theo, chúng ta sẽ thảo luận cách xử lý các lỗ hổng bảo mật tiềm ẩn trong hợp đồng của chúng ta và giới thiệu các công cụ sửa đổi để hợp lý hóa mã của chúng ta hơn nữa. Giữ nguyên!

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.