# @anton-seriesfi/doppler-v3-sdk 中文文档

规范地址：https://npmcn.com/package/%40anton-seriesfi/doppler-v3-sdk/

版本：1\.0\.44-b
npm 元数据更新时间：2025-07-11T20:10:10.843Z
中文译文更新时间：2026-11-08T05:29:56.793Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40anton-seriesfi/doppler-v3-sdk
原文对照：https://npmcn.com/package/%40anton-seriesfi/doppler-v3-sdk/?lang=original
项目主页：https://github.com/whetstoneresearch/doppler-sdk
源码仓库：https://github.com/whetstoneresearch/doppler-sdk

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

- 包体积（解压后）：433 kB，98 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：6 个
- 首次发布：2025-02-21T18:46:43.516Z
- 最新版本发布：2025-07-11T20:10:10.653Z
- 近 30 天下载量：1893（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：9（近 12 个月 0 个）

## 中文简介

与 Doppler v3 协议交互的 SDK

## 安装

```sh
npm install @anton-seriesfi/doppler-v3-sdk
```

也可以使用：`pnpm add @anton-seriesfi/doppler-v3-sdk`、`yarn add @anton-seriesfi/doppler-v3-sdk`、`bun add @anton-seriesfi/doppler-v3-sdk`

## README

# 多普勒 V3 SDK 软件

[![npm version](https://img.shields.io/npm/v/doppler-v3-sdk.svg)](https://www.npmjs.com/package/doppler-v3-sdk) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

用于与多普勒 V3 协议交互的 TypeScript SDK - 一个基于 Uniswap V3 的流动性启动协议.

## 特征

-   多普勒合同创建和管理的工厂互动
-   包括DERC20和本土ETH处理在内的托肯操作
-   QQ 历史事件查询池和令牌

## 安装

```bash
# Using npm
npm install doppler-v3-sdk

# Using bun
bun add doppler-v3-sdk
```

## 核心概念

### 工厂相互作用

```typescript
import { ReadFactory } from "doppler-v3-sdk";

const factory = new ReadFactory("0x...factoryAddress");
const assetData = await factory.getAssetData(tokenAddress);
const createEvents = await factory.getCreateEvents();
```

### 调试操作

```typescript
// ERC20 Token
const derc20 = new ReadDerc20(tokenAddress);
const balance = await derc20.getBalanceOf(userAddress);

// Native ETH
const eth = new ReadEth();
const ethBalance = await eth.getBalanceOf(userAddress);
```

### 集合分析

```typescript
const pool = new ReadUniswapV3Pool(poolAddress);
const [slot0, swapEvents] = await Promise.all([
  pool.getSlot0(),
  pool.getSwapEvents(),
]);
```

### 报价

```typescript
const quoter = new ReadQuoter(quoterAddress);
const quote = await quoter.quoteExactInput({
  params: {
    tokenIn: "0x...",
    tokenOut: "0x...",
    amountIn: parseUnits("1", 18),
    fee: 3000,
  },
  options: {
    tokenDecimals: 18,
    formatDecimals: 4,
  },
});
```

## 关键部件

| 构成部分 | 说明 |
| --- | --- |
| `ReadFactory` | 从多普勒气闸合同读取的接口 |
| `ReadWriteFactory` | 写入多普勒气闸合同的接口 |
| `ReadDerc20` | DERC20 附带支持的象征性操作 |
| `ReadEth` | 本地ETH 操作 |
| `ReadUniswapV3Pool` | Uniswap V3 集合合同业务接口 |
| `ReadInitializer` | UniswapV3 启动器合同接口 |
| `ReadQuoter` | 精确引用定点引擎的价格 |
| `ReadMigrator` | V4印花机合同与费用流的接口 |

## 实例

### 基本交换模拟

```typescript
import { ReadQuoter, fixed } from "doppler-v3-sdk";

const quoter = new ReadQuoter("0x...quoterAddress");
const amountIn = fixed(1.5, 18); // 1.5 tokens with 18 decimals

const quote = await quoter.quoteExactInput(
  {
    tokenIn: "0x...",
    tokenOut: "0x...",
    amountIn: amountIn.toBigInt(),
    fee: 3000,
  },
  { tokenDecimals: 18, formatDecimals: 4 }
);

console.log(`Expected output: ${quote.formattedAmountOut}`);
```

注:关于执行互换,见多普勒-路由器 [这里](https://github.com/whetstoneresearch/doppler-sdk/tree/main/packages/doppler-router)

### Uniswap V3 集合数据查询

```typescript
import { ReadUniswapV3Pool } from "doppler-v3-sdk";

const pool = new ReadUniswapV3Pool("0x...poolAddress");
const [slot0, liquidityEvents] = await Promise.all([
  pool.getSlot0(),
  pool.getMintEvents(),
]);

console.log(`Current price: ${slot0.sqrtPriceX96}`);
console.log(`${liquidityEvents.length} liquidity positions found`);
```

### 创建 V4 迁移和费用流的 V3 池

V3 SDK现在支持创建多普勒V3集合,这些集合可以以先进的收费流能力迁移到Uniswap V4. 这使得您可以在一段时间内向多个受益人发放交易费.

```typescript
import { 
  ReadWriteFactory, 
  BeneficiaryData,
  V4MigratorData,
  WAD,
  addresses 
} from "doppler-v3-sdk";

// Step 1: Set up beneficiaries for fee streaming
// Shares must sum to exactly WAD (1e18)
const beneficiaries: BeneficiaryData[] = [
  { 
    beneficiary: "0x...", // Treasury address
    shares: WAD * 70n / 100n  // 70% of fees
  },
  { 
    beneficiary: "0x...", // Development fund
    shares: WAD * 20n / 100n  // 20% of fees
  },
  { 
    beneficiary: "0x...", // Community rewards
    shares: WAD * 10n / 100n  // 10% of fees
  }
];

// Step 2: Sort beneficiaries (required by the contract)
const factory = new ReadWriteFactory(
  addresses.unichain.airlock,
  addresses.unichain.bundler
);
const sortedBeneficiaries = factory.sortBeneficiaries(beneficiaries);

// Step 3: Configure the V4 migrator
const migratorConfig: V4MigratorData = {
  fee: 3000,                    // 0.3% fee tier
  tickSpacing: 60,              // Tick spacing for the V4 pool
  lockDuration: 365 * 24 * 60 * 60, // 1 year lock
  beneficiaries: sortedBeneficiaries
};

// Step 4: Encode the migrator data (automatically includes 5% for airlock owner)
const encodedMigratorData = await factory.encodeV4MigratorData(migratorConfig);

// Or exclude the default beneficiary:
// const encodedMigratorData = await factory.encodeV4MigratorData(migratorConfig, false);

// Step 5: Create the pool with V4 migration configuration
const createParams = await factory.buildConfig({
  integrator: "0x...",
  userAddress: userAddress,
  numeraire: addresses.unichain.weth,
  contracts: {
    tokenFactory: addresses.unichain.tokenFactory,
    governanceFactory: addresses.unichain.governanceFactory,
    poolInitializer: addresses.unichain.v3Initializer,
    liquidityMigrator: addresses.unichain.liquidityMigrator, // V4 migrator
  },
  tokenConfig: {
    name: "My Token",
    symbol: "MTK",
    tokenURI: "https://example.com/token-metadata.json"
  },
  // Pass the encoded migrator data
  liquidityMigratorData: encodedMigratorData,
  // ... other parameters
});

await factory.create(createParams);
```

#### 查询 V4 移民国

部署后,您可以查询映射器配置 :

```typescript
import { ReadMigrator } from "doppler-v3-sdk";

const migrator = new ReadMigrator(addresses.unichain.liquidityMigrator);

// Get the V4 pool configuration that will be created
const poolKey = await migrator.getAssetData(token0, token1);
console.log(`Fee tier: ${poolKey.fee}`);
console.log(`Tick spacing: ${poolKey.tickSpacing}`);

// Get important contract addresses
const locker = await migrator.locker(); // StreamableFeesLocker address
const poolManager = await migrator.poolManager(); // V4 PoolManager address
```

#### 手续费

带有可流性FeesLocker的V4相机提供了几个优点:

1.  **多个受益人**: 根据股份分配多个地址的费用
2.  **流动性**: 在指定期限内锁定流动性
3.  **电流收费**:受益人可以长期要求累积费用
4.  **无操作治理**: 通过将接收者设置为 DEAD ADDES 来永久锁定流动性的选项
5.  **受助人**:受益人可以更新其接收地址

## 许可证

这个项目根据麻省理工学院许可证颁发——见 [自由主义](https://npmcn.com/package/%40anton-seriesfi/doppler-v3-sdk/LICENSE) 详细文件.

## 常见问题

### @anton-seriesfi/doppler-v3-sdk 是什么？

与 Doppler v3 协议交互的 SDK

### 如何安装 @anton-seriesfi/doppler-v3-sdk？

在项目目录运行 npm install @anton-seriesfi/doppler-v3-sdk，或使用 pnpm add / yarn add / bun add。

### @anton-seriesfi/doppler-v3-sdk 支持 TypeScript 吗？

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

### @anton-seriesfi/doppler-v3-sdk 支持 ESM 还是 CommonJS？

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

### @anton-seriesfi/doppler-v3-sdk 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @anton-seriesfi/doppler-v3-sdk 可以商用吗？

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

### @anton-seriesfi/doppler-v3-sdk 的下载量有多少？

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

### @anton-seriesfi/doppler-v3-sdk 还在维护吗？

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

