Lowballer.org
Screenshot any Facebook Marketplace listing or Copart lot. Lowballer pulls live comps, prices the repairs, and hands you the exact lowball offer or max bid to make.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗DApp quản lý vé sự kiện chống vé giả và hạn chế đầu cơ.
Nhóm xây nền tảng vé sự kiện cho người tham dự và ban tổ chức để chống vé giả, hạn chế đầu cơ và đảm bảo mỗi vé chỉ được check-in một lần.
Vé sự kiện giới hạn bán lại.
DApp công khai: https://hce-event-ticket-k57-git-main-nguyenhoangthao.vercel.app
Contract chính: contracts/project/ProjectCore.sol (Solidity ^0.8.20).
Cách 1 — Remix (dùng trong lớp):
ProjectCore.sol.0.8.20 trở lên → Compile.createEvent(name, startTime, maxResaleBps, maxPerWallet) (VD 11000, 4 = trần 110%, tối đa 4 vé/ví; 0 = không giới hạn) → createTier(eventId, name, price, maxSupply) → mintTicket(tierId) kèm value đúng giá hạng vé → listForResale(ticketId, price) / buyResaleTicket(ticketId) để thử bán lại → setStaff(eventId, víCTV, true) (Organizer cấp quyền CTV) → checkIn(eventId, ticketId) (Organizer hoặc CTV) → cancelResale(ticketId) nếu muốn gỡ rao bán → withdrawProceeds().Cách 2 — biên dịch nhanh bằng dòng lệnh (kiểm tra không lỗi cú pháp, không deploy):
npx solc --bin --abi contracts/project/ProjectCore.sol
Kiểm thử tự động (ca hợp lệ + ca vi phạm quy tắc R3): xem evidence/lab-11/resale.test.js và log kết quả tại evidence/lab-11/test-log.txt.
web/) — kết nối Sepolia✅ Đang dùng hợp đồng v4 (27/10/2026): Organizer tự đặt trần giá bán lại (100–200%, mặc định 110%) và số vé tối đa mỗi ví cho từng sự kiện; hợp đồng tự chặn mua vé mới sau giờ bắt đầu; mỗi lần bán lại trả 5% phí bản quyền cho Organizer. Giữ nguyên CTV soát vé, chặn vé sai sự kiện, gỡ rao bán từ v3. Test 19/19 + giao diện 28/28:
evidence/lab-15-v4/. Địa chỉ cũ không dùng nữa: v30x7c574216844854C04878B41D68d58F50a54cA0AF, v20x0f96cafe4C603D706c786C503A5c903090706916(dữ liệu demo 13–20/10 nằm lại ở đó), v10x09967aeeb595236e74BD5F283a9Ff1960e695AF2.
| Thành phần | Giá trị của nhóm |
|---|---|
| Địa chỉ contract | 0x0845EEB1Ed93C373173680a859fB255f168b9Fd0 (Sepolia, v4 — deploy tại 0x69af8ed8…, khối 12004619) |
| ABI lấy từ đâu | Remix → tab Solidity Compiler → biên dịch contracts/project/ProjectCore.sol → nút ABI (copy). Bản lưu sẵn để đối chiếu: web/ProjectCore.abi.json |
Hàm đọc không tốn phí (view, không cần ký ví) | nextEventId(), nextTierId(), nextTicketId(), ROYALTY_BPS(), events(id) (gồm maxResaleBps, maxPerWallet), mintedBy(eventId, ví), tiers(id), tickets(id), isStaff(eventId, ví), pendingWithdrawals(address) |
| Hàm ghi cần xác nhận ví (gửi transaction, tốn gas) | createEvent(), createTier() (Organizer), mintTicket() (ai cũng gọi được), listForResale(), cancelResale(), buyResaleTicket(), setStaff() (Organizer), checkIn() (Organizer hoặc CTV), withdrawProceeds() |
Mô hình mới: Organizer tạo sự kiện rồi tạo từng hạng vé (createTier: tên + giá + tổng cung, VD "Standard" 0.02 ETH × 50). Sau đó ai cũng tự mintTicket(tierId) được trực tiếp (trả đúng giá, không cần Organizer phát hành hộ) — kiểu "public mint" của NFT. Tại cửa, chủ vé tạo mã QR check-in có chữ ký ví (hết hạn sau 5 phút); Organizer quét ở trang #/check-in, hệ thống kiểm tra người ký là chủ vé hiện tại trên chain rồi mới gọi checkIn().
Cấu trúc web/: index.html (khung trang) + styles.css (design system) + app.js (router, logic contract) + api/metadata.js (Vercel Function lưu ảnh/mô tả/địa chỉ/danh mục vào Vercel Blob, ghi phải kèm chữ ký ví của Organizer) + assets/vn-units.json (34 tỉnh/thành, 3.321 phường/xã). CONTRACT_ADDRESS nằm ở đầu file web/app.js và trong web/api/metadata.js. Kiến trúc chi tiết: docs/PROGRESS.md.
python -m http.server 4173 trong thư mục web/, mở http://localhost:4173. Ảnh/mô tả chỉ lưu trên máy vì không có /api./api):
web, tắt Deployment Protection để URL công khai.BLOB_READ_WRITE_TOKEN (mẫu: web/.env.example; file web/.env thật không commit).main, Vercel tự deploy lại.ProjectCore.sol): Remix → Injected Provider - MetaMask → Sepolia → Deploy. Đổi địa chỉ trong web/app.js, web/api/metadata.js, FIRST_LOG_BLOCK trong web/app.js (khối có log đầu tiên của hợp đồng mới) và README này. Dữ liệu cũ sẽ không còn hiển thị.