# @dydxprotocol/protocol 中文文档

规范地址：https://npmcn.com/package/%40dydxprotocol/protocol/

版本：1\.1\.0
npm 元数据更新时间：2026-03-11T19:06:49.857Z
中文译文更新时间：2026-11-13T02:12:38.802Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：1.6 MB，185 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：3 个
- 首次发布：2018-03-11T22:05:48.184Z
- 最新版本发布：2019-08-23T21:32:36.466Z
- 近 30 天下载量：2770（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：71（近 12 个月 0 个）

## 中文简介

DYdX边缘贸易协议的Ethereum智能合同

## 安装

```sh
npm install @dydxprotocol/protocol
```

也可以使用：`pnpm add @dydxprotocol/protocol`、`yarn add @dydxprotocol/protocol`、`bun add @dydxprotocol/protocol`

## README

![](https://s3.amazonaws.com/dydx-assets/logo_large_white.png)

 [![CI](https://img.shields.io/circleci/project/github/dydxprotocol/protocol_v1.svg)](https://circleci.com/gh/dydxprotocol/workflows/protocol_v1/tree/master)[![Coverage Status](https://coveralls.io/repos/github/dydxprotocol/protocol/badge.svg?branch=master) ](https://coveralls.io/github/dydxprotocol/protocol)[![License](https://img.shields.io/github/license/dydxprotocol/protocol.svg?longCache=true) ](https://github.com/dydxprotocol/protocol/blob/master/LICENSE)[![NPM](https://img.shields.io/npm/v/@dydxprotocol/protocol.svg) ](https://www.npmjs.com/package/@dydxprotocol/protocol)[![Docker](https://img.shields.io/badge/docker-container-blue.svg?logo=docker&longCache=true) ](https://store.docker.com/community/images/dydxprotocol/protocol/tags)[![Slack](https://img.shields.io/badge/chat-on%20slack-brightgreen.svg?longCache=true)](https://slack.dydx.exchange/)

**看我们的新协议 [这里](https://github.com/dydxprotocol/solo)**

DYdX 边际交易协议使用的Ethereum智能合同源代码

[白皮书](https://whitepaper.dydx.exchange/)

[短长托肯斯白纸( L)](https://margintokens.dydx.exchange/)

## Npm 软件包

Npm包中包含合同的已部署地址,并允许访问嵌入测试容器上的种子位置和订单

#### 安装

```
npm install --save @dydxprotocol/protocol
```

#### 合同

```javascript
import { Margin as MarginContract } from '@dydxprotocol/protocol';
import truffleContract from 'truffle-contract';

async function openPosition(provider, networkId) {
  const Margin = truffleContract(MarginContract);

  Margin.setProvider(provider);
  Margin.setNetwork(networkId);

  const margin = await Margin.deployed();

  await margin.openPosition(...);
}
```

#### 种子职位/命令

已有种子位置,并已部署在道克容器上

```javascript
import { seeds } from '@dydxprotocol/protocol';

const position = seeds.positions[2];

console.log(position.id);
console.log(position.isTokenized);

// Test 0x V1 orders. Maker already has balance and allowance set
const order = seeds.orders[1];

console.log(order.maker);
```

#### 抓图

在使用道克容器时,可以将evm重置为默认状态. 这在运行自动测试套件时可能有用

```javascript
import { resetEVM } from '@dydxprotocol/protocol';

await resetEVM(web3.currentProvider);
```

## Docker 容器

[多克容器](https://store.docker.com/community/images/dydxprotocol/protocol/tags) 协议的部署版本运行在一个有网络 id=1212的ganache-cli节点上. Docker 容器版本与本套件的 npm 版本相对应, 因此对两者使用相同的版本

```
docker pull dydxprotocol/protocol
docker run dydxprotocol/protocol
```

#### 多克编曲

```
# docker-compose.yml

version: '3'
services:
  protocol:
    image: dydxprotocol/protocol:latest
    ports:
      - 8545:8545
```

## 发展

#### 安装

```
npm install
```

#### 编译

```
npm run compile
```

#### 测试

```
npm test
```

#### 林特

打开 Javascript 文件( 测试, 部署脚本)

```
npm run lint
```

缩小固态文件( 所有智能合同)

```
npm run solint
```

显示固态文件( Custom dYdX linter)

```
npm run dydxlint
```

## 建筑

### 合同

#### 基本协议

##### 边际. sol

包含利润交易的商业逻辑。 保证金交易的所有外部功能都在本合同中.

##### TokenProxy.sol (英语)

用于转出用户资金. 用户为授权其转移资金的代理机构设定了代号津贴。 只允许授权的合同转移资金.

##### 断层. 索尔

持有所有象征性基金. 授权通过TokenProxy转账用户资金. 允许授权的合同取出资金.

#### 第二层

##### ZeroExV1 交换器。 sol

允许使用0x命令打开或关闭位置. 将 0x 交换合同包在一个由 Margin 使用的标准界面中 .

##### ERC20Short.sol (英语)

允许将短位置作为 ERC20 令牌来表示. 短期债券的所有权赋予了一定比例的支持地位的所有权.

##### ERC20Long.sol (英语)

允许杠杆长位置被作为ERC20令牌来表示. 杠杆长期象征物的所有权赋予了一定比例的支持地位的所有权.

##### ERC721 方案. sol

允许将比值位置作为ERC721令牌来表示.

##### ERC721 马金路. sol

允许贷款作为ERC721令牌进行代理.

##### 荷兰拍卖客户端. sol

允许通过荷兰拍卖自动关闭比值位置.

##### 共享Loan.sol

允许多个出贷人共同分享贷款职位.

_更多关于我们的智能合同架构 [这里](https://docs.google.com/document/d/19mc4Jegby5o2IPkhrR2QawNmE45NMYVL6U23YygEfts/edit?usp=sharing)_

## 常见问题

### @dydxprotocol/protocol 是什么？

DYdX边缘贸易协议的Ethereum智能合同

### 如何安装 @dydxprotocol/protocol？

在项目目录运行 npm install @dydxprotocol/protocol，或使用 pnpm add / yarn add / bun add。

### @dydxprotocol/protocol 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/dydxprotocol\_\_protocol 是否存在。

### @dydxprotocol/protocol 支持 ESM 还是 CommonJS？

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

### @dydxprotocol/protocol 可以商用吗？

@dydxprotocol/protocol 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @dydxprotocol/protocol 的下载量有多少？

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

### @dydxprotocol/protocol 还在维护吗？

最新版本 1\.1\.0 发布于 2019/08/24（7 年前）；至今共发布 71 个版本，其中过去 12 个月发布了 0 个；首次发布于 2018/03/12。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

