# @exponent-labs/kamino-vault-idl 中文文档

规范地址：https://npmcn.com/package/%40exponent-labs/kamino-vault-idl/

版本：0\.9\.33
npm 元数据更新时间：2026-11-05T09:21:55.759Z
中文译文更新时间：2026-11-14T05:35:10.502Z
软件包许可：AGPL-3\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40exponent-labs/kamino-vault-idl
原文对照：https://npmcn.com/package/%40exponent-labs/kamino-vault-idl/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：169 kB，40 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：4 个
- 首次发布：2025-09-09T17:43:24.324Z
- 最新版本发布：2026-11-05T09:21:55.580Z
- 近 30 天下载量：14593（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：38（近 12 个月 35 个）

## 中文简介

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

## 安装

```sh
npm install @exponent-labs/kamino-vault-idl
```

也可以使用：`pnpm add @exponent-labs/kamino-vault-idl`、`yarn add @exponent-labs/kamino-vault-idl`、`bun add @exponent-labs/kamino-vault-idl`

## README

# 卡米诺断层指令

套件也一样 `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 身份证](https://github.com/Kamino-Finance/klend-sdk/blob/master/src/idl/kvault.json) 和主网程序上链IDL,2026-10-06检查. 捆绑的IDL的 退出条目包括所需 `global_config` 账户。 其余部分 捆绑的IDL保留了它现有的布局.

## 刷新和构建指令

```typescript
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 是什么？

套件也一样 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 和提交记录判断。

