@exponent-labs/kamino-vault-idl

中文文档
0.9.33发布于 2026/11/05AGPL-3.0TypeScriptCommonJS近 30 天下载 1.5万

套件也一样 args, accounts, programId? 指令构建器结构为 @exponent-labs/klend-idl现有原出口IDL,字符串 PROGRAM_ID,以及 decodeVault)被保留.

中文使用文档

卡米诺断层指令

套件也一样 args, accounts, programId? 指令构建器 结构为 @exponent-labs/klend-idl现有原出口IDL,字符串 PROGRAM_ID,以及 decodeVault)被保留.

  • @exponent-labs/kamino-vault-idl/instructions数字 : deposit, (中文(简体) ), withdraw,以及 getVaultReserveAccounts的参数/账户类型.
  • @exponent-labs/kamino-vault-idl/accounts数字 : fetchVaultReserves。 。 。 .

存款和提取账户布局与 上游 v 2.2.2 身份证 和主网程序上链IDL,2026-10-06检查. 捆绑的IDL的 退出条目包括所需 global_config 账户。 其余部分 捆绑的IDL保留了它现有的布局.

刷新和构建指令

import BN from "bn.js"

import { fetchVaultReserves } from "@exponent-labs/kamino-vault-idl/accounts"
import {
  type DepositAccounts,
  type WithdrawAccounts,
  deposit,
  getVaultReserveAccounts,
  withdraw,
} from "@exponent-labs/kamino-vault-idl/instructions"
import { refreshReservesBatch } from "@exponent-labs/klend-idl/instructions"

// connection, vaultAddress, depositAccounts, and withdrawAccounts are caller inputs.
const reserves = await fetchVaultReserves(connection, vaultAddress)
const refreshIx = refreshReservesBatch({ skipPriceUpdates: true })
refreshIx.keys.push(
  ...reserves.flatMap(({ reserveAddress, marketAddress }) => [
    { pubkey: reserveAddress, isSigner: false, isWritable: true },
    { pubkey: marketAddress, isSigner: false, isWritable: false },
  ]),
)

const remainingAccounts = getVaultReserveAccounts(reserves)
const depositIx = deposit(
  { maxAmount: new BN("1000000") }, // 1 USDC, including crank fees
  { ...depositAccounts, remainingAccounts } satisfies DepositAccounts,
)
const withdrawIx = withdraw(
  { sharesAmount: new BN("936761") }, // Raw vault shares, not a USDC amount
  { ...withdrawAccounts, remainingAccounts } satisfies WithdrawAccounts,
)

发送 [refreshIx, depositIx] 或者说 [refreshIx, withdrawIx] 在一次交易中, 在任何需要的符号账户创建指令之后。 刷新和金库 指令需要在同一位置执行. skipPriceUpdates: true 累积数 保留利息而不获取甲骨文更新 .

KLend 刷新账户替换 储备,市场KVault的剩余账户 包含 所有储备,然后所有市场,按分配顺序排列。 反复出现的市场 必须保留.

fetchVaultReserves 验证账户所有权、歧视者和收益 reserveAddress, (中文(简体) ), marketAddress, (中文(简体) ), ctokenVault解码的 KLend account。 。 。 . 它跳过未用的分配槽,如果缺少活动储备会扔出.

收回IDL的巢穴 withdrawFromAvailable 财务报告和审定财务报表 withdrawFromReserveAccounts 账户组。 选择足够数量的储备 可取回的流动性;已解码的储备暴露其抵押薄荷和 流动资金供应。 向贷款市场提供种子 [Buffer.from("lma"), marketAddress.toBuffer()] 在 KLend 程序下。 衍生 globalConfig 与 [Buffer.from("global_config")] 根据KVault计划. 这些构建者返回单个指令; 保留选择,ATA创建, 任何农事都由打电话者处理 如果保险库需要 授权权限,在保留/市场块后附加其签名元.

运行 yarn workspace @exponent-labs/kamino-vault-idl build 财务报告和审定财务报表 yarn workspace @exponent-labs/kamino-vault-idl test 以验证约束.

版本与发布记录

@exponent-labs/kamino-vault-idl 共发布 38 个版本,首次发布于 2025/09/10;过去 12 个月发布了 35 个版本。

版本发布日期距今
0.9.33latest2026/11/058 天前
0.9.322026/10/2816 天前
0.9.312026/10/2717 天前
0.9.302026/10/1530 天前
0.9.292026/09/231 个月前
0.9.282026/09/221 个月前

关于 @exponent-labs/kamino-vault-idl 的常见问题

@exponent-labs/kamino-vault-idl 是什么?

套件也一样 args, accounts, programId? 指令构建器结构为 @exponent-labs/klend-idl现有原出口IDL,字符串 PROGRAM_ID,以及 decodeVault)被保留.

如何安装 @exponent-labs/kamino-vault-idl?

在项目目录运行 npm install @exponent-labs/kamino-vault-idl,或使用 pnpm add / yarn add / bun add。

@exponent-labs/kamino-vault-idl 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@exponent-labs/kamino-vault-idl 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@exponent-labs/kamino-vault-idl 可以商用吗?

@exponent-labs/kamino-vault-idl 使用 AGPL-3.0 许可。最严格的 Copyleft:除分发外,通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括,不构成法律意见,请以许可原文为准。

@exponent-labs/kamino-vault-idl 的下载量有多少?

根据 npm 官方下载统计,@exponent-labs/kamino-vault-idl 在 2026/10/14 – 2026/11/12 这 30 天内被下载 14,593 次,日均约 486 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@exponent-labs/kamino-vault-idl 还在维护吗?

最新版本 0.9.33 发布于 2026/11/05(8 天前);至今共发布 38 个版本,其中过去 12 个月发布了 35 个;首次发布于 2025/09/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。