@dydxprotocol/protocol

中文文档
1.1.0发布于 2019/08/24Apache-2.0CommonJS近 30 天下载 2770

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

中文使用文档
文档目录5 节
  1. Npm 软件包
  2. Docker 容器
  3. 发展
  4. 建筑
  5. 合同

CI Coverage Status License NPM Docker Slack

看我们的新协议 这里

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

白皮书

短长托肯斯白纸( L)

Npm 软件包

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

安装

npm install --save @dydxprotocol/protocol

合同

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(...);
}

种子职位/命令

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

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重置为默认状态. 这在运行自动测试套件时可能有用

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

await resetEVM(web3.currentProvider);

Docker 容器

多克容器 协议的部署版本运行在一个有网络 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

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

更多关于我们的智能合同架构 这里

版本与发布记录

@dydxprotocol/protocol 共发布 71 个版本,首次发布于 2018/03/12;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.0latest2019/08/247 年前
1.0.202019/03/197 年前
1.0.192019/02/087 年前
1.0.182018/12/157 年前
1.0.172018/11/207 年前
1.0.162018/11/157 年前

关于 @dydxprotocol/protocol 的常见问题

@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 和提交记录判断。