用途:在发布任何 Injective 浏览器交易流程前使用本技能。Injective 在交易层看似 Cosmos,但账户和公钥是 Ethereum 风格,通用 Cosmos 前端代码常在签名或 CheckTx 阶段失败。
主要能力与用法:先选定签名栈——应用已用 Injective SDK 且交易类型覆盖时,优先 @injectivelabs/sdk-ts / Injective broadcaster 工具;仅当显式处理 Injective 账户与公钥兼容性时,才对 CosmWasm 前端使用 CosmJS。不要假设 Keplr/Leap 的 inj1... 地址能用通用 /cosmos.crypto.secp256k1.PubKey 通过链上验证。
必要检查:从 LCD 查询账户元数据 GET /cosmos/auth/v1beta1/accounts/{injAddress};若 @type 为 /injective.types.v1beta1.EthAccount,解析 base_account.account_number 与 base_account.sequence,不依赖 CosmJS 默认 accountFromAny;确保 AuthInfo.signer_infos[0].public_key.type_url 为 /injective.crypto.v1beta1.ethsecp256k1.PubKey,公钥字节按 protobuf 字段 1 编码;直接签名时签署含该 Injective 公钥的 SignDoc;使用 injective-1 链返回的钱包地址。
浏览器交易流程:用单钱包级 in-flight 锁保护所有发起交易的操作,前一交易确认或失败前禁用开仓、平仓、提现及批量按钮;钱包连接、账户切换和页面重载后,重新校验本地会话、grantee 或自动签名令牌;将账户 sequence 不匹配视为并发问题优先排查。常见失败包括账户解析器不兼容、公钥类型错误、账户未上链、签名验证失败。
限制:资料未提供收费、价格、平台或效果信息;CosmJS 兼容需自行补丁 getSequence 与直接签名;上线前须在目标钱包族上验证账户与公钥类型检查。