> For the complete documentation index, see [llms.txt](https://docs.hann.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hann.finance/th/developers/technical-overview.md).

# ภาพรวมทางเทคนิค

สัญญาสาธารณะ บัญชีสินทรัพย์ และธุรกรรมวอลเล็ตสำหรับ Lending, USDHN, สเตก และสวอป

Hann Finance รวมตลาดกู้ยืม กู้ USDHN ด้วยหลักประกัน liquid staking และสวอป แต่ละผลิตภัณฑ์มีสัญญาสำหรับยอดสินทรัพย์ หนี้ และเจ้าของโพซิชัน การเชื่อมต่ออ่านผ่าน RPC ของเชนและส่งธุรกรรมจากวอลเล็ตผู้ใช้

## อ่านสัญญาและธุรกรรมวอลเล็ต

### อ่านสถานะสัญญา

```mermaid
flowchart TB
  INTEGRATION[ระบบที่เชื่อมต่อ] -->|อ่านข้อมูล| RPC[RPC ของเชน]
  RPC --> CONTRACTS[สัญญาสาธารณะของผลิตภัณฑ์]
```

### ธุรกรรมวอลเล็ต

ระบบเตรียมคำสั่ง วอลเล็ตลงนามและส่ง ปลายทางตามรายการคือ Lending Pool, CDP Zapper, vault bKAIA หรือ HNKAIA หรือ StableSwap Router ส่วน CDP Zapper ประสานการกู้กับสวอปดังนี้

```mermaid
flowchart TB
  APP[ระบบที่เชื่อมต่อ] -->|ขอลายเซ็น| WALLET[วอลเล็ตผู้ใช้]
  WALLET --> ZAP[CDP Zappers]
  ZAP --> BO[BorrowerOperations]
  ZAP --> FLASH[FlashSwapper]
  BO --> TM[TroveManager]
  BO -->|สร้างหรือเผา| USDHN[USDHNToken]
  TM -->|หักล้างหนี้ชำระบัญชี| SP[StabilityPool]
  FLASH --> POOL[พูลสวอป]
```

การอ่านคืนยอด โพซิชัน ราคา และราคาเสนอ สัญญาบังคับเจ้าของ การโอน การเปลี่ยนหนี้ และขีดจำกัด การจำลองประเมินคำสั่งที่เตรียม ส่วนใบรับรองและ log บันทึกผลจริง อ่านยอดและโพซิชันหลังยืนยัน

| ผลิตภัณฑ์  | สัญญาบัญชี                                           | ผลสำหรับผู้ใช้                                        |
| ---------- | ---------------------------------------------------- | ----------------------------------------------------- |
| Lending    | `Pool`, aToken และโทเคนหนี้                          | ฝาก กู้ ชำระ และถอน                                   |
| กู้ USDHN  | `BorrowerOperations`, `TroveManager` แยกแต่ละสาขา    | ล็อกหลักประกันใน Trove และสร้างหนี้ USDHN             |
| Earn       | `StabilityPool` แต่ละสาขา                            | ฝาก USDHN รับดอกเบี้ยและหลักประกันชำระบัญชี           |
| สเตก bKAIA | `LSTVault`, `LSTToken`                               | ฝาก KAIA รับ bKAIA ขอถอนและรับตั๋วที่พร้อม            |
| HNKAIA     | `HNKAIA`, `HNKAIAAssetVault`                         | ฝากสินทรัพย์สเตกรับส่วนแบ่ง และแลกคืนสินทรัพย์อ้างอิง |
| สวอปและ LP | `StableSwap`, `StableSwapRouter`, LP, `RewardStaker` | แลก USDT กับ USDHN ให้สภาพคล่องและสเตก LP             |

## สาขาหลักประกัน USDHN

มี KAIA, HNKAIA และ earnUSDT สาขา KAIA ถือ WKAIA โดย zapper แรปก่อนฝาก สาขา earnUSDT ถือโทเคนหลักประกัน wEarnUSDT

แต่ละสาขามี:

* `BorrowerOperations` เปิด ปรับ ปิด Trove และเปลี่ยนการตั้งค่าดอกเบี้ย
* `TroveManager` คำนวณหนี้กับหลักประกันล่าสุด จัดการชำระบัญชี ไถ่ถอน และสถานะ
* `TroveNFT` ระบุเจ้าของ และ `SortedTroves` เรียงตามอัตราดอกเบี้ย
* `ActivePool`, `DefaultPool`, `CollSurplusPool`, `GasPool` ถือหลักประกันและบันทึกหนี้ การกระจาย ส่วนเกิน และชดเชยแก๊ส
* `StabilityPool` เผา USDHN ที่ฝากเพื่อหักล้างหนี้และรับหลักประกัน
* `PriceFeed`, `AddressesRegistry` ให้ราคาและการตั้งค่าสัญญา

`CollateralRegistry` ส่วนกลางส่งการไถ่ถอนไปสาขาที่เปิดและเข้าเกณฑ์ `HintHelpers` ให้คำแนะนำแทรกลำดับ `RedemptionHelper` คำนวณไถ่ถอน หนี้ล่าสุดรวมดอกเบี้ยค้าง การกระจาย และค่าจัดการกลุ่ม ใช้ `getLatestTroveData()` อ่านค่าโพซิชันครบล่าสุด

### ความเสี่ยงโพซิชัน

CDP ที่เปิดและมีหนี้ใช้มูลค่า USD ของหลักประกันหารหนี้ USDHN ทั้งหมด สัญญาใช้หน่วย `1e18` สำหรับหลักประกัน หนี้ ราคา และอัตราส่วน:

```
ICR18 = entireColl × price18 / entireDebt
```

สาขาใช้ `MCR` รายโพซิชัน `CCR` จำกัดการกู้และถอนทั้งสาขา `SCR` ปิดสาขา และขีดจำกัดเพิ่มสำหรับกลุ่ม ชำระบัญชี CDP ใช้ `ICR < MCR` ไถ่ถอนปกติตรวจ Trove หนี้ต่ำที่บันทึกก่อน แล้วลดหนี้กับหลักประกันจากอัตราต่ำขึ้นไป ค่าธรรมเนียมอยู่ใน Trove การชำระบัญชีหักล้างผ่านพูลเสถียรภาพแล้วกระจายส่วนที่เหลือในสาขา

Lending ใช้ Health Factor จากหลักประกันที่เปิดใช้ เกณฑ์ชำระบัญชี และหนี้รวม `Pool.getUserAccountData()` คืนความละเอียด `1e18` หากต่ำกว่า `1e18` เข้าเกณฑ์ชำระบัญชี CDP และ Lending ดูแลหนี้กับกฎชำระบัญชีแยกกัน

## Zapper และ flash

Zapper รับโทเคนที่อนุมัติหรือ KAIA native ทำตามเส้นทางแล้วคืนส่วนเกินให้ผู้รับ ทางเข้า Permit2 ใช้ลายเซ็นร่วม allowance ต่อ Permit2 และมีเส้นทาง allowance ปกติแยก

| สัญญา                                                                   | รายการ                                               |
| ----------------------------------------------------------------------- | ---------------------------------------------------- |
| `WKAIAZapper`                                                           | หลักประกัน KAIA native และ WKAIA                     |
| `HNKAIAZapper`                                                          | หลักประกัน HNKAIA                                    |
| `EarnUSDTZapper`                                                        | แรป earnUSDT และจัดการหลักประกันที่แรป               |
| `LeverageWKAIAZapper`, `LeverageHNKAIAZapper`, `LeverageEarnUSDTZapper` | เปิด เพิ่ม ลด หรือปิดโพซิชัน flash ตามหลักประกัน     |
| `FlashSwapper`                                                          | callback DEX flash swap, StableSwap และชำระในธุรกรรม |
| `StableSwapZapper`                                                      | สภาพคล่องและสเตก LP                                  |

ช่วง callback ส่งสิทธิ์จัดการ Trove ให้ FlashSwapper ที่อนุญาตแล้วคืนภายหลัง สถานะรวม add manager, remove manager และ receiver การตรวจสิทธิ์ callback โทเคน ค่า flash และหนี้สุดท้ายผูกเส้นทางกับรายการ snapshot ยอดแยกส่วนเกินจากยอดเดิม

`openLeveragedTrove`, `leverUpTrove`, `leverDownTrove` รับเพดานหนี้ทั้งหมด `maxDebt` ส่วน `closeTroveByCollateral` ขายหลักประกันชำระหนี้แล้วคืนโทเคน stable ที่เหลือ struct มี `troveId` กับ `profitReceiver` โดยไม่มีขั้นต่ำรับที่ผู้ใช้ส่ง ใช้ขีดจำกัดจริงของแต่ละทางเข้าเตรียมธุรกรรม

## สเตก สวอป และข้ามเชน

ใช้ **ที่อยู่ `LSTVault`** สำหรับฝาก ขอถอน รับ และอ่าน bKAIA `requestUnstakeByShares` สร้างตั๋วตามจำนวนที่โหนดยอมรับ ส่วนที่ไม่ประมวลผลอยู่ในวอลเล็ต ตั๋วมีเวลาพร้อมและรับแยก `claimMany` ประมวลผลรวมผลบางส่วน `RequestUnstake`, `ClaimPayout`, `TicketStatusUpdated`, `ClaimManySummary` บันทึกคำขอ จ่าย สถานะ และยอดชุด

HNKAIA แทนส่วนแบ่งโทเคนสเตกใน vault `redeemProRata` เผา HNKAIA และจ่ายแต่ละโทเคนตามสัดส่วนยอด โดยปัดลงในหน่วยจำนวนเต็ม การแลกตะกร้าไม่มีค่าธรรมเนียมและยังใช้ได้ขณะฝากอิงราคาหรือแลกสินทรัพย์เดียวหยุด `RedeemProRata`, `RedeemProRataAsset` บันทึกส่วนแบ่งและผลรับ

StableSwap มีราคาเสนอ input/output แน่นอน ราคาเสนอ LP deadline ขั้นต่ำรับ และสูงสุดจ่าย `StableSwapRouter` ตรวจพูล allowlist และผู้รับ พูลบันทึกทุนสำรองกับค่าใช้จ่าย ส่วน `RewardStaker` ดูแล LP กับรางวัล `LiquidityAdded`, `LiquidityRemoved` บันทึก router ส่วน `Stake`, `Unstake`, `Claim` บันทึก RewardStaker

`USDHNToken` รองรับ ERC-20 กับ permit `USDHNOFTAdapter` ล็อกและปลดล็อกโทเคนหลักสำหรับ LayerZero `USDHNOFT` สร้างและเผาบนเชนปลายทาง บริดจ์ในแอปใช้ Rhino.fi แปลง USDT หรือ USDC ต้นทางเป็น USDT บน Kaia ใบรับรองต้นทางยืนยันธุรกรรมต้นทาง การส่งมอบมีธุรกรรมและสถานะของตน

## อ่าน จำลอง ส่ง และยืนยัน

1. เลือกเชน ที่อยู่ และ ABI จาก[เอกสารสัญญา](/th/developers/smart-contracts.md) ระบุโทเคนด้วยเชนและที่อยู่ รวมโทเคนเงินฝากและหนี้
2. อ่านยอด allowance โพซิชัน ราคา และราคาเสนอ Trove ใช้หนี้ทั้งหมดล่าสุด Lending ใช้หลักประกัน หนี้ และ Health Factor ระดับบัญชี
3. เตรียมอนุมัติโทเคน Permit2 มอบสิทธิ์กู้ หรือผู้จัดการ/operator แล้วจึงทำรายการสินทรัพย์หรือโพซิชัน
4. จำลอง sender, calldata, value native, receiver, deadline และขีดจำกัดตามจริง สถานะเปลี่ยนก่อนทำจริงอาจทำให้ย้อนกลับ
5. ส่งจากวอลเล็ต เก็บแฮช และตรวจใบรับรองเชนเดียวกัน หากย้อนกลับจะคงสถานะก่อนรายการและยังเสียแก๊ส สิทธิ์ที่สำเร็จก่อนหน้ายังอยู่
6. ถอด log ด้วย ABI และที่อยู่ผู้ส่ง event แล้วอ่านโพซิชัน ตรวจจำนวนที่ประมวลผลจริงสำหรับตั๋วสเตกและไถ่ถอน

## เครือข่ายและที่อยู่

Kaia Mainnet ใช้ `8217` ส่วน Kairos ใช้ `1001` สัญญา mainnet Hann Finance ยังไม่ deploy [สัญญาอัจฉริยะ](/th/developers/smart-contracts.md) แยกที่อยู่แต่ละเครือข่าย ใช้ที่อยู่ของเป้าหมายและระบุโทเคนด้วยเครือข่าย ผลิตภัณฑ์ และที่อยู่ร่วมกัน

[เอกสารสัญญา](/th/developers/smart-contracts.md) มีชื่อ ฟังก์ชัน event สถานะ deploy และที่อยู่ [คู่มือเชื่อมต่อ](/th/developers/integrator-kit.md) อธิบายธุรกรรมกับ event [TroveManager](/th/developers/trove-manager.md) อธิบายสถานะ และ[Zapper](/th/protocol/zapper.md) อธิบายเส้นทาง


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.hann.finance/th/developers/technical-overview.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
