Skip to content

Thiết kế: NFT Marketplace

Tài liệu này mô tả thiết kế hệ thống Marketplace đa chuỗi trong blockchain service.

1. Marketplace Logic

1.1 Buy from Admin (EVM/Solana)

Admin giữ NFT trong ví tổng. Khi user thực hiện mua, service sẽ trích xuất private key Admin để thực hiện transfer.

1.2 User-to-User (Marketplace Program)

NFT được khóa vào một Escrow account của Marketplace Program (trên Solana) hoặc được Approve cho Marketplace contract (trên EVM).

2. Hệ thống Queue và Trạng thái đơn hàng

Sử dụng Bull MQ để đảm bảo tính nhất quán (Atomicity).

stateDiagram-v2
    [*] --> PENDING_LIST: User gửi yêu cầu list
    PENDING_LIST --> ON_CHAIN_LIST: Đang ghi lên chuỗi
    ON_CHAIN_LIST --> LISTED: Thành công
    ON_CHAIN_LIST --> ERROR: Lỗi (RPC, Balance)

    LISTED --> SOLD: Có người mua on-chain
    LISTED --> CANCELLED: User hủy listing

3. Quản lý Ticket (ERC1155)

Hệ thống xử lý việc "Burn" ticket thông qua một worker chuyên biệt, đảm bảo sau khi burn thành công on-chain mới cập nhật quyền lợi cho user ở database backend.