This project demonstrates a Decentralized Exchange (DEX) implementation. It includes smart contracts for DEX functionality, a web application for interacting with the blockchain, and essential configurations for deployment.
Try running some of the following tasks:
npx hardhat help
npx hardhat test
npx hardhat node
npx hardhat run scripts/deploy.js
- Giới thiệu
- Yêu cầu hệ thống
- Cài đặt project
- Chức năng chính của DEX
- Các lệnh cơ bản
- Ứng dụng Web
- Thông tin bổ sung
- Minh họa
- Dự án này xây dựng một sàn giao dịch phi tập trung (DEX) với các chức năng cơ bản như cung cấp thanh khoản (liquidity), hoán đổi token (swap), và rút thanh khoản. Hệ thống được triển khai trên BSC Testnet, kèm theo một giao diện web đơn giản để tương tác với hợp đồng thông minh.
- Hợp đồng thông minh quản lý pool thanh khoản và giao dịch.
- Các bài kiểm thử để đảm bảo tính đúng đắn của hệ thống.
- Cấu hình Hardhat cho phát triển, triển khai và kiểm thử.
- Giao diện web để tương tác trực tiếp với DEX.
- Node.js và npm phiên bản mới nhất.
- Hardhat để triển khai và quản lý project.
- Git để quản lý mã nguồn.
git clone https://github.com/CptDat9/CS251-Project4.git
cd CS251-Project4
npm install
npm install --save-dev hardhat
- Tạo file .env để lưu thông tin API và khóa cá nhân:
API_URL=https://<Infura_or_Alchemy_URL>
PRIVATE_KEY=<Your_Private_Key>
- Cập nhật hardhat.config.js:
require("dotenv").config();
module.exports = {
solidity: "0.8.17",
networks: {
bscTestnet: {
url: process.env.API_URL,
accounts: [process.env.PRIVATE_KEY],
},
},
};
- Người dùng có thể gửi ETH và token vào pool để nhận lại Liquidity Tokens.
- Giá trị gửi được điều chỉnh dựa trên tỷ lệ hiện tại của pool.
- Người dùng có thể hoán đổi ETH lấy token hoặc ngược lại.
- Giá hoán đổi được xác định bằng công thức
x * y = k
(Constant Product Market Maker).
- Người dùng có thể rút ETH và token khỏi pool bằng cách trả lại Liquidity Tokens.
- Giá trị nhận lại dựa trên tỷ lệ thanh khoản trong pool.
- Một phần phí giao dịch được tính vào mỗi lần swap để đảm bảo sự cân bằng và khuyến khích nhà cung cấp thanh khoản.
- Hiển thị trợ giúp:
npx hardhat help
- Kiểm thử hợp đồng:
npx hardhat test
- Khởi động mạng Hardhat:
npx hardhat node
- Triển khai hợp đồng:
npx hardhat run scripts/deploy.js
- Cung cấp thanh khoản và nhận lại token thanh khoản.
- Thực hiện giao dịch hoán đổi giữa ETH và token.
- Rút thanh khoản đã gửi vào pool.
- Frontend (web_app/):
- index.html: Giao diện chính.
- style.css: Thiết kế giao diện.
- script.js: Tương tác với blockchain thông qua Web3.js hoặc Ethers.js.
- Các hợp đồng DEX triển khai bằng Solidity.
- Bao gồm hợp đồng quản lý thanh khoản và swap.
- Git: Dùng để quản lý và theo dõi các thay đổi của project.
- Hardhat Network: Cho phép thử nghiệm tính năng mà không cần sử dụng phí gas thực.
- BSC Testnet: Là môi trường triển khai chính của dự án này.