# @duneanalytics/client-sdk 中文文档

规范地址：https://npmcn.com/package/%40duneanalytics/client-sdk/

版本：0\.5\.3
npm 元数据更新时间：2026-11-09T08:40:36.633Z
中文译文更新时间：2026-11-13T00:17:51.419Z
软件包许可：未声明

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

原始 npm 页面：https://www.npmjs.com/package/%40duneanalytics/client-sdk
原文对照：https://npmcn.com/package/%40duneanalytics/client-sdk/?lang=original
项目主页：https://github.com/duneanalytics/ts-dune-client#readme
源码仓库：https://github.com/duneanalytics/ts-dune-client

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

- 包体积（解压后）：183 kB，95 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2024-02-21T09:34:19.588Z
- 最新版本发布：2026-11-09T08:40:36.140Z
- 近 30 天下载量：70755（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：35（近 12 个月 12 个）

## 中文简介

Dune Analytics的节点客户端正式支持API.

## 安装

```sh
npm install @duneanalytics/client-sdk
```

也可以使用：`pnpm add @duneanalytics/client-sdk`、`yarn add @duneanalytics/client-sdk`、`bun add @duneanalytics/client-sdk`

## README

[![Styled With Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://prettier.io/) [![Build](https://github.com/bh2smith/ts-dune-client/actions/workflows/pull-request.yaml/badge.svg)](https://github.com/duneanalytics/ts-dune-client/actions/workflows/pull-request.yaml)

# 沙丘客户端 TS

这个 [国家防范机制一揽子计划](https://www.npmjs.com/package/@duneanalytics/client-sdk) 执行在 [Dune API 文档](https://dune.com/docs/api/)它还引入了一种便利方法 `refresh` 结合 `executeQuery`, (中文(简体) ), `getExecutionStatus` 财务报告和审定财务报表 `gettExecutionResults` 来获取查询执行结果 几乎是微不足道的.

安装软件包

```sh
pnpm add @duneanalytics/client-sdk
```

```ts
import { QueryParameter, DuneClient, RunQueryArgs } from "@duneanalytics/client-sdk";
const { DUNE_API_KEY } = process.env;

const client = new DuneClient(DUNE_API_KEY ?? "");
const queryId = 1215383;
const opts: RunQueryArgs = {
  queryId,
  query_parameters: [
    QueryParameter.text("TextField", "Plain Text"),
    QueryParameter.number("NumberField", 3.1415926535),
    QueryParameter.date("DateField", "2022-05-04 00:00:00"),
    QueryParameter.enum("ListField", "Option 1"),
  ],
};

client
  .runQuery(opts)
  .then((executionResult) => console.log(executionResult.result?.rows));

// should look like
// [
//    {
//      date_field: "2022-05-04 00:00:00.000",
//      list_field: "Option 1",
//      number_field: "3.1415926535",
//      text_field: "Plain Text",
//    },
//  ]
```

## 执行 Raw SQL

您可以直接使用 `executeSql` 方法 :

```ts
const { DUNE_API_KEY } = process.env;

const client = new DuneClient(DUNE_API_KEY ?? "");
const execution = await client.exec.executeSql({
  sql: "SELECT * FROM dex.trades WHERE block_time > now() - interval '1' day LIMIT 10",
  performance: QueryEngine.Medium, // optional
});

const executionId = execution.execution_id;
const status = await client.exec.getExecutionStatus(executionId);
const results = await client.exec.getExecutionResults(executionId);
```

## 自定义 API

```ts
const { DUNE_API_KEY } = process.env;

const client = new DuneClient(DUNE_API_KEY ?? "");
const results = await client.custom.getResults({
  username: "your_username",
  slug: "endpoint-slug"
  // optional arguments: see `GetResultParams`
  limit: 100,
});
```

## 用法 API

获取您的 API 使用情况, 包括信用和存储 :

```ts
const { DUNE_API_KEY } = process.env;

const client = new DuneClient(DUNE_API_KEY ?? "");
const usage = await client.usage.getUsage();

console.log(`Credits used: ${usage.billing_periods[0].credits_used}`);
console.log(`Private queries: ${usage.private_queries}`);
console.log(`Storage: ${usage.bytes_used} / ${usage.bytes_allowed} bytes`);
```

## 合同 API

提交分批解码合同并跟踪其状况。 提交文件的用户是创建 API 密钥的用户;请参见 [文档](https://docs.dune.com/api-reference/contracts/introduction) 关于计划要求.

```ts
const { DUNE_API_KEY } = process.env;

const client = new DuneClient(DUNE_API_KEY ?? "");
const { results } = await client.contracts.decode({
  submissions: [
    {
      blockchain_name: "ethereum",
      address: "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",
      project_name: "uniswap",
      contract_name: "UniswapToken",
      abi: uniswapTokenAbi, // JSON array, or a string containing it
      idempotency_key: "uniswap-token/ethereum/1", // optional, makes retries safe
    },
  ],
});
// One result per submission, matched by index: { submission_id, status: "pending" } or { error }

const page = await client.contracts.listSubmissions({ status: "pending", limit: 20 });
// Pass page.next_cursor back as `cursor` to fetch the next page
```

也注意客户有方法 `executeQuery`, (中文(简体) ), `getExecutionStatus`, (中文(简体) ), `getExecutionResult` 财务报告和审定财务报表 `cancelExecution`

看这个 [演示项目](https://github.com/bh2smith/demo-ts-dune-client)来啊!

## 常见问题

### @duneanalytics/client-sdk 是什么？

Dune Analytics的节点客户端正式支持API\.

### 如何安装 @duneanalytics/client-sdk？

在项目目录运行 npm install @duneanalytics/client-sdk，或使用 pnpm add / yarn add / bun add。

### @duneanalytics/client-sdk 支持 TypeScript 吗？

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

### @duneanalytics/client-sdk 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @duneanalytics/client-sdk 可以商用吗？

@duneanalytics/client-sdk 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @duneanalytics/client-sdk 的下载量有多少？

根据 npm 官方下载统计，@duneanalytics/client-sdk 在 2026/10/13 – 2026/11/11 这 30 天内被下载 70,755 次，日均约 2,359 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @duneanalytics/client-sdk 还在维护吗？

最新版本 0\.5\.3 发布于 2026/11/09（4 天前）；至今共发布 35 个版本，其中过去 12 个月发布了 12 个；首次发布于 2024/02/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

