- ✅ Node.js đã cài đặt
- ✅ MetaMask extension đã cài đặt trên browser
- ✅ Đã chạy
npm installtrong cả 2 thư mụcbackendvàfrontend
taskkill //F //IM node.execd backend
rm -rf cache artifacts deployments/localhost.json node_modules/.cache- Mở MetaMask
- Settings → Advanced
- Kéo xuống, click "Clear activity tab data"
- Đóng và mở lại MetaMask
cd backend
npm run nodeĐợi thấy message:
Started HTTP and WebSocket JSON-RPC server at http://127.0.0.1:8545/
Đợi 5-10 giây sau khi Terminal 1 khởi động xong
cd backend
# Deploy contracts
npm run deploy
# Seed sample data
npm run seedKết quả mong đợi:
- ✅ Deploy thành công 6 contracts
- ✅ Seed ~25+ transactions
- ✅ Exit code: 0
cd frontend
npm run devFrontend sẽ chạy tại: http://localhost:3000 hoặc http://localhost:3001
- Mở MetaMask
- Click dropdown network → Add Network → Add a network manually
- Điền thông tin:
- Network Name:
Hardhat Local - RPC URL:
http://127.0.0.1:8545 - Chain ID:
31337 - Currency Symbol:
ETH
- Network Name:
- Click Save
Chọn một trong các account test từ Hardhat (có trong Terminal 1):
Account #1 (User 1):
- Address:
0x70997970C51812dc3A010C7d01b50e0d17dc79C8 - Private Key:
0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d
Cách import:
- MetaMask → Click icon account → Import Account
- Dán private key:
0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d - Click Import
- Click dropdown network trong MetaMask
- Chọn Hardhat Local
Truy cập: http://localhost:3000 hoặc http://localhost:3001
- Click "Connect Wallet" ở góc phải
- Chọn account đã import
- Approve connection
- 🏠 Home - Trang chủ với tổng quan
- 👨💼 Admin - Mint NFTs (chỉ deployer)
- 💰 Supply - Gửi USDC vào lending pool
- 📤 Borrow - Thế chấp NFT để vay USDC
- 🔨 Auctions - Đấu giá NFTs bị thanh lý
- 📜 History - Lịch sử tất cả transactions trên blockchain
- Vào tab History (📜)
- Mở Console (F12)
- Kiểm tra logs:
Logs mong đợi:
[App] Read-only provider initialized
[TransactionHistory] loadTransactions called
Loading all transactions from blockchain...
Latest block: 45 ← SỐ NHỎ (40-50), KHÔNG PHẢI HÀNG TRIỆU!
USDC Transfers: 15
NFT Transfers: 10
Deposits: 3
Borrows: 3
...
Total transactions loaded: 25+
➡️ MetaMask đang cache blockchain cũ!
Giải pháp:
- MetaMask → Settings → Advanced → Clear activity tab data
- Hoặc: Xóa network "Hardhat Local" và thêm lại
- Reload trang
Nguyên nhân: Node chưa khởi động hoặc đã crash
Giải pháp:
taskkill //F //IM node.exe
cd backend
npm run nodeNguyên nhân:
- MetaMask cache blockchain cũ
- Hoặc seed script chưa chạy
Giải pháp:
- Clear MetaMask activity data
- Chạy lại
npm run seedtrong backend - Reload trang frontend
Nguyên nhân: Contract address trùng với address bị blacklist trên mainnet
Giải pháp:
- Click "I want to proceed anyway"
- Đây là false positive, an toàn trên localhost
Nguyên nhân: Node.js v25 không tương thích với Hardhat
Giải pháp:
- Downgrade Node.js xuống v20 LTS
- Hoặc bỏ qua warning (operations vẫn thành công)
Xem trong file: backend/deployments/localhost.json
Account #0 (Deployer): 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
Account #1 (User1): 0x70997970C51812dc3A010C7d01b50e0d17dc79C8
Account #2 (User2): 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC
Account #3 (User3): 0x90F79bf6EB2c4f870365E785982E1f101E93b906
- 5 NFTs được mint
- 3 users có USDC
- 3 deposits vào lending pool
- 3 borrows với NFT collateral
- 1 repayment
- 1 withdrawal
- 1 liquidation auction với 2 bids
Nếu mọi thứ chạy đúng:
- ✅ Transaction History hiển thị 25+ transactions
- ✅ Latest block < 100
- ✅ Có thể filter transactions theo type
- ✅ Có thể xem "All Transactions" hoặc "My Transactions"
Happy Testing! 🚀