> ## Documentation Index
> Fetch the complete documentation index at: https://docs.li.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# 限制

> 了解 Composer 的当前限制和约束。

Composer 是一个强大的工具，但有一些当前的技术和设计限制。了解这些限制有助于您设计更好的集成。

***

## 技术限制

### 仅支持 EVM 链

Composer 目前仅支持 EVM 兼容链。不支持以下链：

* **Solana**：不同的执行模型和账户系统
* **Cosmos 链**：不同的共识和交易结构
* **Bitcoin**：UTXO 模型不支持智能合约

**受支持的链**：Ethereum、Base、Arbitrum、Optimism、Polygon、Avalanche 等（完整的 LI.FI 支持链列表）。

### 仅支持代币化头寸

Composer 目标必须返回代币。不支持：

* **NFT**：非同质化代币
* **无代币头寸**：某些协议的收益头寸
* **时间锁定头寸**：有锁定期的头寸

**支持的代币类型**：

* 金库代币（如 Morpho 金库代币）
* 流性质押代币（如 wstETH）
* 借贷代币（如 aUSDC）
* 收益代币（如 Pendle PT）

***

## 协议限制

### 协议可用性

Composer 仅支持已集成的协议。当前支持的协议包括：

* **借贷**：Aave V3、Euler、HyperLend、Seamless、Maple
* **金库**：Morpho V1/V2、Felix Vanilla、Neverland
* **质押**：Lido wstETH、EtherFi、Kinetiq
* **收益**：Pendle、Ethena、USDai

完整列表请参见 [支持的协议](/composer/reference/supported-protocols)。

### 协议状态

Composer 依赖目标协议的可用性：

* **协议暂停**：如果协议暂停，Composer 将失败
* **金库容量**：金库可能达到最大容量
* **紧急暂停**：协议的紧急机制可能阻止操作

### 仅存款协议

某些协议仅支持存款，不支持通过 Composer 取款：

* **Maple**：机构借贷，仅存款
* **Ethena**：USDe/sUSDe 转换，仅存款
* **Kinetiq**：质押，仅存款

***

## 执行限制

### Gas 限制

Composer 交易可能需要大量 gas：

* **复杂路径**：多步骤操作需要更多 gas
* **高 Gas 费链**：Ethereum 主网可能非常昂贵
* **失败成本**：失败的交易仍消耗 gas

**缓解策略**：

* 在 Layer 2 链上使用 Composer
* 监控 gas 价格
* 设置适当的 gas 限制

### Slippage

复杂路径可能经历更高的 slippage：

* **多步骤兑换**：每个步骤都有 slippage
* **跨链价格变化**：跨链期间价格可能变化
* **流动性变化**：大额交易影响价格

**建议**：

* 设置适当的 slippage 容忍度
* 考虑较小的交易金额
* 监控执行价格

### 时间延迟

跨链 Composer 有时间延迟：

* **跨链桥时间**：从几秒到几分钟
* **确认时间**：取决于目标链的出块时间
* **网络拥堵**：可能显著延迟

***

## 设计限制

### 单向操作

Composer 主要设计用于存款操作：

* **存款**：完全支持
* **取款**：仅部分协议支持
* **复合操作**：有限支持

### 无条件执行

Composer 交易是预编译的：

* **无条件**：执行时无法更改参数
* **预模拟**：基于模拟时的状态
* **状态依赖**：状态变化可能导致失败

### 不可逆性

链上执行是不可逆的：

* **原子性**：同链操作要么全部成功，要么全部失败
* **跨链**：部分失败可能需要手动干预
* **无撤销**：无法撤销已执行的交易

***

## 集成考虑

### 用户体验

* **复杂性**：用户可能不理解多步骤操作
* **等待时间**：跨链操作需要时间
* **错误处理**：需要清晰的错误消息

### 成本管理

* **Gas 费用**：可能高于简单交易
* **跨链费用**：额外的跨链桥费用
* **失败成本**：失败交易的 gas 损失

### 风险管理

* **智能合约风险**：额外的合约交互
* **协议风险**：依赖目标协议的安全性
* **执行风险**：多步骤增加失败概率

***

## 未来路线图

### 计划中的改进

* **更多链支持**：未来可能支持非 EVM 链
* **更多协议**：持续集成新协议
* **取款支持**：扩展取款功能
* **条件执行**：基于链上状态的执行

### 当前开发重点

* **协议集成**：添加更多借贷和金库协议
* **成本优化**：减少 gas 使用
* **用户体验**：改进错误处理和反馈

***

## 最佳实践

### 1. 验证支持

```ts theme={"system"}
const isSupported = async (toToken: string) => {
  const supportedProtocols = await getSupportedProtocols();
  return supportedProtocols.some(protocol => 
    protocol.tokens.includes(toToken)
  );
};
```

### 2. 成本检查

```ts theme={"system"}
const checkCosts = async (route: Route) => {
  const gasCosts = await estimateGasCosts(route);
  const bridgeCosts = route.estimate.bridgeCosts || 0;
  const totalCost = gasCosts + bridgeCosts;
  
  if (totalCost > maxAcceptableCost) {
    throw new Error('交易成本过高');
  }
};
```

### 3. 用户教育

* 清晰解释多步骤操作
* 显示预估时间和成本
* 提供进度更新

***

## 下一步

<CardGroup cols={2}>
  <Card title="支持的协议" icon="list" href="/composer/reference/supported-protocols">
    查看所有支持的协议
  </Card>

  <Card title="错误处理" icon="triangle-exclamation" href="/composer/reference/error-handling">
    了解如何处理错误
  </Card>

  <Card title="API 参数" icon="settings" href="/composer/reference/api-parameters">
    完整 API 参数参考
  </Card>

  <Card title="集成指南" icon="code" href="/composer/guides/api-integration">
    分步集成指南
  </Card>
</CardGroup>
