# @cowprotocol/sdk-order-book 中文文档

规范地址：https://npmcn.com/package/%40cowprotocol/sdk-order-book/

版本：4\.6\.1
npm 元数据更新时间：2026-11-04T11:30:42.445Z
中文译文更新时间：2026-11-10T21:08:10.343Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40cowprotocol/sdk-order-book
原文对照：https://npmcn.com/package/%40cowprotocol/sdk-order-book/?lang=original
源码仓库：https://github.com/cowprotocol/cow-sdk

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

- 包体积（解压后）：234 kB，6 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：5 个
- 首次发布：2025-08-01T17:45:37.334Z
- 最新版本发布：2026-11-04T11:30:41.887Z
- 近 30 天下载量：104375（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：69（近 12 个月 53 个）

## 中文简介

牛议定书顺序书包

## 安装

```sh
npm install @cowprotocol/sdk-order-book
```

也可以使用：`pnpm add @cowprotocol/sdk-order-book`、`yarn add @cowprotocol/sdk-order-book`、`bun add @cowprotocol/sdk-order-book`

## README

![](https://github.com/cowprotocol/cow-sdk/raw/main/docs/images/CoW.png)

# SDK 顺序书

## 测试覆盖率

| 发言 | 分支 | 职能 | 行数 |
| --- | --- | --- | --- |
| ![Statements](https://img.shields.io/badge/statements-85.51%25-yellow.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-75.92%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-82.6%25-yellow.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-86.05%25-yellow.svg?style=flat) |

这个软件包提供了一个全面的API客户端,用于与 CoW 协议命令书的交互. 它处理订单提交,检索,取消,以及使用内置速率限制,重试和错误处理来交换数据.

## 安装

```bash
npm install @cowprotocol/sdk-order-book
or
pnpm add @cowprotocol/sdk-order-book
or
yarn add @cowprotocol/sdk-order-book
```

## 使用量

```typescript
import { OrderBookApi, SupportedChainId, OrderQuoteRequest, OrderCreation } from '@cowprotocol/sdk-order-book'
import { setGlobalAdapter } from '@cowprotocol/sdk-common'
import { EthersV6Adapter } from '@cowprotocol/sdk-ethers-v6-adapter'
import { JsonRpcProvider, Wallet } from 'ethers'

// Configure the adapter
const provider = new JsonRpcProvider('YOUR_RPC_URL')
const wallet = new Wallet('YOUR_PRIVATE_KEY', provider)
const adapter = new EthersV6Adapter({ provider, signer: wallet })
setGlobalAdapter(adapter)

// Initialize Order Book API
const orderBookApi = new OrderBookApi({
  chainId: SupportedChainId.MAINNET,
  env: 'prod', // or 'staging'
})

// Get a quote
const quoteRequest: OrderQuoteRequest = {
  sellToken: '0xA0b86a33E6417b528874E10EB3a95beb4F25A0E3', // GNO
  buyToken: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', // WETH
  from: await wallet.getAddress(),
  receiver: await wallet.getAddress(),
  sellAmountBeforeFee: '1000000000000000000', // 1 GNO
  kind: 'sell',
}

const { quote } = await orderBookApi.getQuote(quoteRequest)

// Submit an order (after signing)
const signedOrder: OrderCreation = {
  ...quote,
  signature: 'SIGNED_SIGNATURE',
  signingScheme: 'eip712',
  from: await wallet.getAddress(),
}

const orderId = await orderBookApi.sendOrder(signedOrder)

// Get order details
const order = await orderBookApi.getOrder(orderId)

// Get user's orders
const orders = await orderBookApi.getOrders({
  owner: await wallet.getAddress(),
  limit: 10,
  offset: 0,
})

// Get trades
const trades = await orderBookApi.getTrades({
  owner: await wallet.getAddress(),
})
```

### 使用 CoW SDK 软件

```typescript
import { CowSdk, SupportedChainId, OrderQuoteRequest } from '@cowprotocol/cow-sdk'
import { EthersV6Adapter } from '@cowprotocol/sdk-ethers-v6-adapter'
import { JsonRpcProvider, Wallet } from 'ethers'

// Configure the adapter
const provider = new JsonRpcProvider('YOUR_RPC_URL')
const wallet = new Wallet('YOUR_PRIVATE_KEY', provider)
const adapter = new EthersV6Adapter({ provider, signer: wallet })

// Initialize the unified SDK
const sdk = new CowSdk({
  chainId: SupportedChainId.MAINNET,
  adapter,
})

const { quote } = await sdk.orderBook.getQuote(quoteRequest)
const orderId = await sdk.orderBook.sendOrder(signedOrder)
const order = await sdk.orderBook.getOrder(orderId)
const orders = await sdk.orderBook.getOrders({ owner: address })
```

## 配置选项

### 环境配置

```typescript
const orderBookApi = new OrderBookApi({
  chainId: SupportedChainId.MAINNET,
  env: 'staging', // Use staging environment
})
```

### 自定义 API 终点

```typescript
const orderBookApi = new OrderBookApi({
  chainId: SupportedChainId.MAINNET,
  baseUrls: {
    [SupportedChainId.MAINNET]: 'https://your-custom-endpoint.com',
    [SupportedChainId.GNOSIS_CHAIN]: 'https://your-gnosis-endpoint.com',
  },
})
```

### 伙伴 API (认证访问)

合作伙伴可以使用伙伴API进行认证的、有费率限制的访问,并有更高的申请配额。 提供您的 API 密钥, SDK 将自动通过伙伴网关路径请求并附加 `X-API-Key` 头曰.

| 环境 | 伙伴 API 基础 URL |
| --- | --- |
| 生产 | `https://partners.cow.fi` |
| 粘贴 | `https://partners.barn.cow.fi` |

```typescript
const orderBookApi = new OrderBookApi({
  chainId: SupportedChainId.MAINNET,
  apiKey: 'your-partner-api-key',
})
```

要使用 Trading SDK 的伙伴 API, 请通过配置 `OrderBookApi` 实例:

```typescript
import { TradingSdk } from '@cowprotocol/sdk-trading'

const orderBookApi = new OrderBookApi({
  chainId: SupportedChainId.MAINNET,
  apiKey: 'your-partner-api-key',
})

const sdk = new TradingSdk(
  { chainId: SupportedChainId.MAINNET, appCode: 'YOUR_APP_CODE' },
  { orderBookApi },
  adapter,
)
```

### 速率限制配置

```typescript
import { RateLimiterOpts } from 'limiter'
import { BackoffOptions } from 'exponential-backoff'

const limiterOpts: RateLimiterOpts = {
  tokensPerInterval: 5,
  interval: 'second',
}

const backOffOpts: BackoffOptions = {
  numOfAttempts: 5,
  maxDelay: Infinity,
  jitter: 'none',
}

const orderBookApi = new OrderBookApi({
  chainId: SupportedChainId.MAINNET,
  limiterOpts,
  backOffOpts,
})
```

> **说明:** 这个软件包可以直接访问 CoW 协议令 Book API. 对于自动处理签名和订单管理的更高级交易接口,考虑与本套件并用Trading SDK.

## 常见问题

### @cowprotocol/sdk-order-book 是什么？

牛议定书顺序书包

### 如何安装 @cowprotocol/sdk-order-book？

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

### @cowprotocol/sdk-order-book 支持 TypeScript 吗？

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

### @cowprotocol/sdk-order-book 支持 ESM 还是 CommonJS？

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

### @cowprotocol/sdk-order-book 可以商用吗？

@cowprotocol/sdk-order-book 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @cowprotocol/sdk-order-book 的下载量有多少？

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

### @cowprotocol/sdk-order-book 还在维护吗？

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

