跳转到主要内容
在这个简短的系列中,我们将展示在 Injective 上构建 DEX 是多么容易。有一个开源的 DEX,每个人都可以参考并用于在 Injective 上构建。对于那些想从头开始的人,这是正确的起点。 该系列将包括:
  • 设置 API 客户端和环境,
  • 连接到链和 Indexer API,
  • 连接到用户钱包并获取其地址,
  • 获取现货和衍生品市场及其订单簿,
  • 在现货和衍生品市场上下市价单,
  • 查看 Injective 地址的所有仓位。

设置

首先,配置你想要的 UI 框架。你可以在这里找到有关配置的更多详细信息。 要开始使用 dex,我们需要设置 API 客户端和环境。要构建我们的 DEX,我们将从 Injective 链和 Indexer API 查询数据。在这个示例中,我们将使用现有的 Testnet 环境。 让我们首先设置一些我们需要查询数据的类。
然后,我们还需要设置钱包连接,以允许用户连接到我们的 DEX 并开始签名交易。为此,我们将使用 @injectivelabs/wallet-strategy 包,它允许用户使用各种不同的钱包提供商连接并使用它们在 Injective 上签名交易。
如果我们不想使用 Ethereum 原生钱包,只需在 WalletStrategy 构造函数中省略 evmOptions 最后,要在 Injective 上执行整个交易流程(准备 + 签名 + 广播),我们将使用 MsgBroadcaster 类。

连接到用户钱包

由于我们使用 WalletStrategy 来处理与用户钱包的连接,我们可以使用其方法来处理一些用例,如获取用户地址、签名/广播交易等。要了解更多关于钱包策略的信息,你可以探索文档接口和 WalletStrategy 提供的方法。 注意:我们可以使用 setWallet 方法在 WalletStrategy 中切换”活动”钱包(这是异步的,需要 await)。

查询

初始设置完成后,让我们看看如何从 IndexerAPI 查询(和流式传输)市场,以及直接从链上查询用户余额。
一旦我们有了这些函数,我们可以在应用程序的任何地方调用它们(通常是集中式状态管理服务,如 Nuxt 中的 Pinia,或 React 中的 Context providers 等)。

交易

最后,让我们进行一些交易。在这个示例中,我们将:
  1. 从一个地址向另一个地址发送资产,
  2. 下现货限价单,
  3. 下衍生品市价单。
有了消息后,你可以使用 msgBroadcaster 客户端广播这些交易:

最后的想法

剩下的就是围绕上面解释的业务逻辑构建一个漂亮的 UI :)
最后修改于 2026年3月30日