# Factory

Hợp đồng thông minh xSwapFactory là thành phần cốt lõi của giao thức xSwap, được thiết kế để đơn giản hóa việc tạo và quản lý các cặp token và các nhóm thanh khoản trong sàn giao dịch phi tập trung (DEX). xSwapFactory mang đến một khung vững chắc cho các tương tác DeFi trên nền tảng.

### Các tính năng chính của xSwap Factory

#### Events

* PairCreated: Sự kiện này được phát ra bất cứ khi nào một cặp mới được tạo ra bằng cách sử dụng xSwapFactory. Nó ghi lại địa chỉ của hai token đó (token0 và token1), địa chỉ của cặp mới được tạo ra và mã nhận diện tuần tự cho từng cặp.
  * token0 luôn được sắp xếp nhỏ hơn token1 để đảm bảo thứ tự nhất quán.
  * Mã nhận diện tuần tự bắt đầu từ 1 cho cặp đầu tiên được tạo và tăng dần theo từng cặp mới.

### Hàm Read-Only

* **getPair**: Cho địa chỉ của hai token (tokenA và tokenB), hàm này trả về địa chỉ của hợp đồng cặp nếu nó tồn tại hoặc địa chỉ rỗng nếu không có.
  * Thứ tự của tokenA và tokenB có thể hoán đổi cho nhau
  * Địa chỉ cặp có thể được tính toán một cách xác định bằng cách sử dụng SDK để có thể dự đoán được các tương tác.
* **allPairs**: Hàm này truy xuất địa chỉ của một cặp dựa trên thứ tự nó được tạo tuần tự trong hợp đồng thông minh factory.
  * Dữ liệu đầu vào được lập chỉ mục bằng 0; 0 sẽ trả về cặp đầu tiên được tạo, 1 sẽ trả về cặp thứ hai, v.v.
* **allPairsLength**: Trả về tổng số cặp được tạo bởi xSwapFactory cho đến nay, mang lại cái nhìn về tính đa dạng thanh khoản của giao thức.&#x20;
* **feeTo**: Trả về địa chỉ được chỉ định để nhận phí giao dịch do giao thức tính, đây là một phần trong cơ chế khuyến khích của xSwap dành cho các nhà cung cấp thanh khoản.
* **feeToSetter**: Xác định địa chỉ có quyền thay đổi địa chỉ phí To, đảm bảo khả năng quản lý có kiểm soát các ưu đãi giao thức.

### Hàm State-Changing

* **createPair**: Bắt đầu tạo cặp thanh khoản mới cho hai token nếu nó chưa tồn tại. Hàm này rất quan trọng trong việc mở rộng khả năng giao dịch của giao thức.
  * Hiển thị sự kiện PairCreated khi tạo thành công.
  * tokenA và tokenB có thể hoán đổi cho nhau, mang lại sự linh hoạt khi tạo cặp.


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.xswap.ms/xswap-vn/lap-trinh-vien/tong-quan-ve-cong-nghe-hop-dong-thong-minh/factory.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
