跳转到主要内容
Injective 上的每笔交易都遵循相同的流程。该流程包含三个步骤:准备、签名和广播交易。让我们分别深入每个步骤,详细解释整个过程(包括示例),以便理解完整的交易流程。

准备交易

首先,我们需要准备交易以进行签名。 此时你不能使用一些在线抽象来根据提供的消息和签名者快速准备交易(例如使用 @cosmjs/stargate 包)。原因是这些包不支持 Injective 的 publicKey typeUrl,所以我们必须在客户端进行地址准备。 为了解决这个问题,我们在 @injectivelabs/sdk-ts 包中提供了可以准备 txRaw 交易的函数。txRaw 是 Cosmos 中使用的交易接口,包含有关交易和签名者本身的详细信息。 从 cosmos 钱包获取私钥通常是通过获取 chainId 的当前密钥并从中访问 pubKey 来完成的(例如:const key = await window.keplr.getKey(chainId) => const pubKey = key.publicKey)。

签名交易

准备好交易后,我们继续进行签名。从上一步获取 txRaw 交易后,使用任何 Cosmos 原生钱包进行签名(例如:Keplr)。
你也可以使用我们的 @injectivelabs/wallet-strategy 包来获取开箱即用的钱包提供者,它们提供了可用于签名交易的抽象方法。请参阅该包的文档,设置和使用都很简单。这是推荐的方式,因为你可以在 dApp 中使用多个钱包。WalletStrategy 提供的不仅仅是签名交易的抽象。

广播交易

签名准备好后,我们需要将交易广播到 Injective 链本身。从第二步获取签名后,我们需要将其包含在已签名的交易中并广播到链上。

示例(准备 + 签名 + 广播)

让我们看看完整的流程(使用 Keplr 作为签名钱包)

使用 WalletStrategy 的示例(准备 + 签名 + 广播)

示例可以在 wallet-core 包中找到。
最后修改于 2026年3月30日