# @balancer-labs/sor 中文文档

规范地址：https://npmcn.com/package/%40balancer-labs/sor/

版本：4\.1\.3
npm 元数据更新时间：2025-02-03T20:53:57.957Z
中文译文更新时间：2026-11-07T15:31:57.827Z
软件包许可：GPL-3\.0-only

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

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

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

- 包体积（解压后）：6.7 MB，334 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：@ethersproject/abi ^5\.4\.1，@ethersproject/address ^5\.4\.0，@ethersproject/bignumber ^5\.4\.2，@ethersproject/constants ^5\.4\.0，@ethersproject/contracts ^5\.4\.1，@ethersproject/providers ^5\.4\.4
- 首次发布：2020-02-25T23:22:35.733Z
- 最新版本发布：2025-02-03T20:53:57.657Z
- 近 30 天下载量：13065（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：108（近 12 个月 0 个）

## 中文简介

有两种互换方式:

## 安装

```sh
npm install @balancer-labs/sor
```

也可以使用：`pnpm add @balancer-labs/sor`、`yarn add @balancer-labs/sor`、`bun add @balancer-labs/sor`

## README

 [![](https://img.shields.io/badge/License-GPLv3-green.svg)](https://www.gnu.org/licenses/gpl-3.0)[![](https://img.shields.io/badge/npm-v0.2.4-blue.svg?style=flat-square)](https://www.npmjs.com/package/@balancer-labs/sor)

# `Smart Order Router (SOR)`

Smart Order路由器,或称SOR,是跨池的路由订单的脱链线性优化,用于最佳价格执行.

SOR存在于"青铜发行"中,作为将所有"平衡"集合的流动性集合起来的一种方式. " 平衡器 " 未来发行将实现这一链上目标,并允许合同总的可填充流动资金.

流动性聚合器可以自由使用 SOR npm 软件包或创建自己的顺序路由跨池.

[更多信息](https://docs.balancer.fi/developers/smart-order-router)

## 使用概览和示例

有两种互换方式:

**互换正则** - 也就是说... 您想要将 1 ETH 转换为输入, SOR 将计算您收到的 BAL 的 X 量 .  
或者说  
**交换快取** - 也就是说... 您想要得到准确的 BAL 和 SOR 将计算您必须输入的 X ETH 量 .

SOR将返回总返回/总输入以及列表互换以实现总计. 互换可以通过直接泳池,即A > POOL1 > B,也可以通过多跳泳池,即A > POOL1 > C > POOL2 > B. 互换以可以直接到Vault执行交易的格式返回.

示例文件 `swapExample.ts` 用于: [./测试脚本](https://npmcn.com/package/%40balancer-labs/sor/test/testScripts/)中,用评论来显示全部实例.

要运行 :

在 root dir 中创建 .env 文件 。 根据使用的网络,添加一个RPC URL(如Alchemy,Infura),例如: `RPC_URL_MAINNET=alchemy/infura`

例如,框外支持的网络有:

```
RPC_URL_MAINNET
RPC_URL_POLYGON
RPC_URL_ARBITRUM
RPC_URL_GNOSIS
RPC_URL_ZKEVM
RPC_URL_GOERLI
```

安装依赖性 : `$ yarn install`

运行示例 : `$ ts-node ./test/testScripts/swapExample.ts`

## 捐出/添加新池

正在本地测试 :

1.  添加.env并添加以下 RPC URL( 如 Alchemy, Infura)

```
RPC_URL_MAINNET=
RPC_URL_POLYGON=
```

2.  启动本地节点以测试:

`$ yarn run node`

`$ yarn run node:polygon`

3.  运行测试 : `$ yarn test`

运行单一测试文件使用 `test:only`,例如:

`$ yarn test:only test/composableStable.integration.spec.ts`

添加新池 :

见信息 [这里](https://www.notion.so/SOR-Adding-New-Pools-fa073ec6fecb4c22b1ba13504b04f5bf?pvs=4)

## 环境变量

可选配置值可以在.env文件中设置:

PICE ERROR TOLENCE - 我们期望交换后的价格在 SOR 建议的路径中有多接近. 默认为0.00001.

INFINITESIMAL - Infinitesimal是一个用于初始化互换金额的金额,所以它们不是零或者路径的极限. 默认为0.00001.

示例

```
PRICE_ERROR_TOLERANCE=0.00001
INFINITESIMAL=0.000001
```

## 关于许可证发放的说明

除另有说明外,本寄存器中的代码为许可GPLv3.

超流体实验室有限公司是目录的拥有者 `balancer-sor/src/pools/gyro2Pool/`, (中文(简体) ), `balancer-sor/src/pools/gyro3Pool/`, (中文(简体) ), `balancer-sor/src/pools/gyroEPool/`, (中文(简体) ), `balancer-sor/src/pools/gyro2V2Pool/`,以及 `balancer-sor/src/pools/gyroEV2Pool/` 以及本文件所载的任何随附文件(统称这些“软件”)。 这些软件的使用仅须符合下列条件: [调色镜池许可证](https://npmcn.com/package/%40balancer-labs/sor/src/pools/gyroEPool/LICENSE),在所提供的链接中提供(“电极池许可证”)。 这些软件不属于通用公共许可证的涵盖范围,除陀螺仪池许可证规定的有限权利外,不赋予用户任何其他权利。 超级流体实验室有限公司和平衡实验室之间的特殊混合许可证 Oü 管理超流体实验室有限公司使用平衡实验室 Oü 代码 [特别许可](https://npmcn.com/package/%40balancer-labs/sor/src/pools/gyroEPool/GyroscopeBalancerLicense.pdf),该链接可在提供的链接中获取。 通过使用这些软件,你同意受"陀螺仪池许可证"的条款和条件的约束. 如果你不同意电极池许可证的所有条款和条件,请不要使用任何这些软件.

## 常见问题

### @balancer-labs/sor 是什么？

有两种互换方式:

### 如何安装 @balancer-labs/sor？

在项目目录运行 npm install @balancer-labs/sor，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@ethersproject/abi（^5\.4\.1）、@ethersproject/address（^5\.4\.0）、@ethersproject/bignumber（^5\.4\.2）、@ethersproject/constants（^5\.4\.0）、@ethersproject/contracts（^5\.4\.1）、@ethersproject/providers（^5\.4\.4）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @balancer-labs/sor 支持 TypeScript 吗？

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

### @balancer-labs/sor 支持 ESM 还是 CommonJS？

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

### @balancer-labs/sor 可以商用吗？

@balancer-labs/sor 使用 GPL-3\.0-only 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以 GPL-3\.0 兼容许可开源，并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @balancer-labs/sor 的下载量有多少？

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

### @balancer-labs/sor 还在维护吗？

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

