名称: sushiswap-sdk 描述: > SushiSwap 聚合器及相关原语的 TypeScript SDK。该 SDK 是 SushiSwap API 的类型化封装,为代币金额、价格、报价和交换交易生成提供了符合人体工程学的辅助工具。
在以下情况使用此技能:
- 构建 TypeScript 或 JavaScript 应用程序
- 您需要强类型的代币、金额和分数原语
- 您需要通过代码请求交换报价或可执行的交换交易
- 您希望进行更安全的算术运算、格式化和比较,避免浮点数错误
- 您更喜欢基于 SDK 的集成,而不是原始的 HTTP 请求
SushiSwap SDK 集成
SushiSwap SDK 是 SushiSwap API 的 TypeScript 封装器。 它提供了用于处理代币、价格、交换报价和交易生成的 强类型原语 和实用工具。
此 SDK 不 替代 API —— 它在 API 之上构建了更安全、更具表现力的抽象。
安装
使用您选择的包管理器安装所需的包:
pnpm add sushi viem
npm add sushi viem
yarn add sushi viem
bun add sushi viem
使用方法
- 从
sushi/evm导入适当的 SushiSwap SDK 辅助工具 - 根据用户意图选择正确的 SDK 方法:
- 交换报价 →
getQuote() - 交换执行 →
getSwap()
- 交换报价 →
- 严格按照 SDK 类型定义提供所有必需的参数
- 始终包含有效的
referrer值 - 在执行前验证输入(chainId、代币地址、金额、滑点)
- 严格按照返回的交易数据进行模拟或执行
SDK 是 SushiSwap REST API 的薄封装层 —— 所有路由、定价和调用数据生成仍由 API 执行。
支持的网络
SushiSwap SDK 通过以下方式公开支持的交换网络列表:
import { SWAP_API_SUPPORTED_CHAIN_IDS } from 'sushi/evm'
- 代理和集成商在尝试以下操作前应始终检查此列表:
- 获取报价
- 生成交换交易数据
- 如果请求的 chainId 未包含在内:
- 代理必须提前失败或提示用户选择支持的网络
- 代理不得尝试猜测或硬编码支持的链
此列表反映了 SushiSwap 聚合器 API 当前支持的网络。支持的网络可能随时间变化,不应无限期缓存。
强制性的 referrer 参数
- 调用
getQuote()或getSwap()时 必须指定referrer参数 - 代理或集成商 必须使用此字段标识自身
- 不得在没有
referrer值的情况下执行与交换相关的 SDK 调用 - SDK 不得代表集成商自动生成或省略此值
费用定制
SushiSwap SDK 在使用 getQuote() 或 getSwap() 时支持定制的交换费用。
默认费用模型
- 与交换相关的请求默认遵循 80/20 费用分成
- 80% 归集成商(推荐人)
- 20% 归 SushiSwap
- 除非 SushiSwap 明确覆盖,否则此分成适用
自定义费用分成
- 替代的费用分成需要与 SushiSwap 建立 合作伙伴关系
- 代理和集成商不应假设自定义分成可用。如果用户请求替代费用分成,代理应引导他们联系 SushiSwap 团队,而不是尝试修改请求参数。
额外参考
有关详细的 SDK 示例和执行流程,请参阅: