Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • A Ahad Mobile
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • holatech
  • Ahad Mobile
  • Merge requests
  • !58

Draft: feat(lending): Epic 12 Ahad Loans — money market (Plan A/B/C)

  • Review changes

  • Download
  • Patches
  • Plain diff
Closed Khanh Pham requested to merge feat/lending-plan-a into develop Sep 14, 2026
  • Overview 1
  • Commits 207
  • Pipelines 2
  • Changes 169+

Epic 12 — Ahad Loans: custodial pooled money market (Compound v1 logic ported off-chain).

Draft MR — mở sớm để code không nằm một chỗ trên máy local. Chưa sẵn sàng merge, xem mục Blockers.

Phạm vi

  • Plan A — nền tảng: lending_markets, supply/borrow, sổ cái crypto, chỉ số lãi (supply_index / borrow_index).
  • Plan B — lãi suất theo utilization, health factor, margin call, đóng vị thế, hoàn trả.
  • Plan C — thanh lý, nợ xấu / write-off, admin console + RBAC, 4 runbook vận hành.

Toàn bộ chạy trên sổ cái crypto (user_crypto_balances + fireblocks_ledger_entries), không bao giờ chạm sổ fiat — ràng buộc này được kiểm bằng cổng AST lúc build, nên yarn build chính là bài kiểm tra đó.

Trạng thái kiểm thử

  • 72 suite / 1.388 test / 0 lỗi (yarn test:db src/modules/lending src/database/migrations)
  • yarn build sạch
  • eslint src/modules/lending 0
  • tsc --noEmit 57 lỗi toàn cây, 6 trong lending — tất cả có sẵn từ trước nhánh này

Đã qua review toàn nhánh 3 góc nhìn (3 BLOCKING / 9 MAJOR / 9 MINOR, tất cả đã đóng), một vòng sửa 2 dispatch, và một lượt re-review chạy 20 mutation — mỗi mutation đều làm đỏ đúng test được đặt tên để ghim nó.

Blockers — cần quyết trước khi merge

  1. Thanh lý chưa có driver tự động. Hệ thống phát hiện đúng, mở hồ sơ, gửi margin call, rồi dừng: không có gì đẩy CANDIDATE / READY_TO_EXECUTE đi tiếp, phải POST route thủ công cho từng tài khoản. Spec đòi hàng đợi (§6.3) và watchdog SLA (§9); kế hoạch không có task nào cho cả hai — đây là lỗ hổng kế hoạch, không phải lỗi triển khai. Phần im lặng đã được bịt trong MR này (vòng kẹt nay báo động, bản ghi quét phân biệt "không có việc" với "có việc không ai làm"), nhưng driver là việc cỡ một plan riêng.
  2. Write-off không có trần. Tha nợ lớn hơn quỹ dự phòng của market sẽ lật market thành INSOLVENT. Đúng spec, 7 test ghim hành vi, nhưng cần xác nhận đây là hành vi mong muốn.
  3. Chưa có cổng KYC. Spec §5.3 liệt kê KYC trong điều kiện vay; module không kiểm. Cần chốt trạng thái KYC nào đủ điều kiện vay.

Ghi chú triển khai

  • Hai migration mới cần migration:run trên staging/prod: 1788600000022 (lending_liquidations.status_changed_at, lending_settings.oracle_sla_minutes), 1788600000023 (mô tả quyền).
  • Spec §8.3 ghi sai chân hạch toán phía nhà tạo lập (USER_CRYPTO(house)); code dùng dòng hệ thống HOUSE và đó mới là đúng — sửa spec, không sửa code.
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: feat/lending-plan-a