> ## 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.

# Solana 提供商

export const SupportedTools = ({chainId}) => {
  const [chains, setChains] = useState(null);
  const [tools, setTools] = useState(null);
  const [error, setError] = useState(null);
  useEffect(() => {
    const fetchChains = async () => {
      try {
        const response = await fetch('https://li.quest/v1/chains?chainTypes=EVM,SVM,UTXO,MVM,TVM');
        if (!response.ok) {
          throw new Error(`HTTP error! status: ${response.status}`);
        }
        const jsonData = await response.json();
        setChains(jsonData.chains);
      } catch (err) {
        setError(err.message);
      }
    };
    fetchChains();
  }, []);
  useEffect(() => {
    const fetchTools = async () => {
      try {
        const response = await fetch('https://li.quest/v1/tools');
        if (!response.ok) {
          throw new Error(`HTTP error! status: ${response.status}`);
        }
        const jsonData = await response.json();
        setTools(jsonData);
      } catch (err) {
        setError(err.message);
      }
    };
    fetchTools();
  }, []);
  const parseBridges = (bridges, selectedChainId) => bridges.map(bridge => {
    const fromChainIds = bridge.supportedChains.filter(connection => connection.toChainId === selectedChainId).map(connection => connection.fromChainId);
    const toChainIds = bridge.supportedChains.filter(connection => connection.fromChainId === selectedChainId).map(connection => connection.toChainId);
    const connectedChainIds = [...new Set([...fromChainIds, ...toChainIds])];
    return {
      ...bridge,
      fromChainIds,
      toChainIds,
      connectedChainIds
    };
  }).filter(bridge => bridge.connectedChainIds.length).sort((a, b) => b.connectedChainIds.length - a.connectedChainIds.length);
  const parseExchanges = (exchanges, selectedChainId) => exchanges.filter(exchange => exchange.supportedChains.includes(selectedChainId));
  const renderChains = chains => <div className="p-2">
      <div className="flex flex-wrap gap-4">
        {chains.map(chain => <div key={chain.key} className="relative group flex-shrink-0">
            <img src={chain.logoURI} alt={chain.name} className="w-10 h-10 rounded-full object-cover not-prose" />
            <div className="absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 hidden group-hover:block bg-gray-800 text-white text-xs rounded py-1 px-2 whitespace-nowrap z-10">
              {chain.name}
            </div>
          </div>)}
      </div>
    </div>;
  const renderTools = (tools, chains) => {
    const bridges = parseBridges(tools.bridges, Number(chainId));
    const exchanges = parseExchanges(tools.exchanges, Number(chainId));
    return <div>
      <h2>Supported Bridges</h2>
      <ul>
        {bridges.map(bridge => <li>
            {bridge.name} (<code>{bridge.key}</code>) connects to:
            {renderChains(chains.filter(chain => bridge.connectedChainIds.includes(chain.id)))}
          </li>)}
      </ul>

      <h2>Supported Exchanges</h2>
      <ul>
        {exchanges.map(exchange => <li>{exchange.name} (<code>{exchange.key}</code>)</li>)}
        {exchanges.length === 0 ? '-' : ''}
      </ul>
    </div>;
  };
  if (error) return <div>Error: {error}</div>; else if (chains && tools) return renderTools(tools, chains); else return <div>Loading...</div>;
};

## 简介

LI.FI 通过多个桥接器和交易所提供与 Solana 区块链的无缝集成。

<Note>
  目前我们仅支持每个生态系统的单步交易。目前正在扩展以支持两个生态系统之间的两步交易。
</Note>

<Note>
  向后端发出请求时，原生 SOL 使用系统程序地址 `11111111111111111111111111111111` 表示。原生 Solana 实际上没有地址，所以这是我们系统特定的表示。

  包装的 Solana 应使用 wSOL 地址 `So11111111111111111111111111111111111111112`

  Solana 在 LI.FI 后端的链 ID 是 `1151111081099710`。
</Note>

<SupportedTools chainId="1151111081099710" />

## Mayan 集成

使 Solana 和 Mayan 支持的 EVM 链之间能够进行蓝筹代币转账。此集成还支持原生 USDC 桥接 CCTP。

<Note>
  Mayan 由提供商分为三个不同的键：

  `mayan` - Swift

  `mayanMCTP` - CCTP

  `mayanWH` - Wormhole
</Note>

***

## AllBridge 集成

Allbridge 使 Solana（USDC）和其他支持的以太坊虚拟机（EVM）兼容链之间能够进行成本效益高的稳定币转账，包括 ETH、POL、BSC（仅 USDT）、OPT、AVA、ARB 和 BAS。

## Jupiter 集成

使能够进行广泛代币的 Solana 交换。

<Note>
  LI.FI 仅支持 Jupiter 验证的代币。
</Note>

## 与 EVM 的架构差异

Solana 在 LI.FI 后端中的工作方式与任何其他链相同，因此报价请求相同，除了代币地址和链 ID。

由于 EVM 和 SVM 之间的基本差异，链上交易提交与 EVM 不同。更详细的信息和交易示例可以在 [Solana 示例页面](/zh-Hans/introduction/user-flows-and-examples/solana-tx-execution)上找到。
