# @1inch/fusion-sdk 中文文档

规范地址：https://npmcn.com/package/%401inch/fusion-sdk/

版本：2\.4\.16
npm 元数据更新时间：2026-10-09T15:43:14.944Z
中文译文更新时间：2026-11-05T18:19:16.673Z
软件包许可：未声明

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

原始 npm 页面：https://www.npmjs.com/package/%401inch/fusion-sdk
原文对照：https://npmcn.com/package/%401inch/fusion-sdk/?lang=original
项目主页：https://github.com/1inch/fusion-sdk#readme
源码仓库：https://github.com/1inch/fusion-sdk

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

- 包体积（解压后）：1.5 MB，322 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：5 个
- peer 依赖：axios \>=1 \<2，assert ^2\.0\.0
- 首次发布：2023-01-30T13:47:16.599Z
- 最新版本发布：2026-10-07T14:15:52.563Z
- 近 30 天下载量：80795（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：186（近 12 个月 34 个）

## 中文简介

1英寸接合SDK

## 安装

```sh
npm install @1inch/fusion-sdk
```

也可以使用：`pnpm add @1inch/fusion-sdk`、`yarn add @1inch/fusion-sdk`、`bun add @1inch/fusion-sdk`

## README

# 1英寸融合模式的 SDK

## 安装

### 无

```
npm install @1inch/fusion-sdk@2
```

### 雅伦

```
yarn add @1inch/fusion-sdk@2
```

## 模块文件

-   [拍卖详情](https://npmcn.com/package/%401inch/fusion-sdk/src/fusion-order/auction-details/README.md)
-   [聚变顺序](https://npmcn.com/package/%401inch/fusion-sdk/src/fusion-order/README.md)
-   [标准](https://npmcn.com/package/%401inch/fusion-sdk/src/sdk/README.md)
-   [s- api](https://npmcn.com/package/%401inch/fusion-sdk/src/ws-api/README.md)

## 如何与融合模式互换

```typescript
import {FusionSDK, NetworkEnum, OrderStatus, PrivateKeyProviderConnector, Web3Like,} from "@1inch/fusion-sdk";
import {computeAddress, formatUnits, JsonRpcProvider} from "ethers";

const PRIVATE_KEY = 'YOUR_PRIVATE_KEY'
const NODE_URL = 'YOUR_WEB3_NODE_URL'
const DEV_PORTAL_API_TOKEN = 'YOUR_DEV_PORTAL_API_TOKEN'

const ethersRpcProvider = new JsonRpcProvider(NODE_URL)

const ethersProviderConnector: Web3Like = {
    eth: {
        call(transactionConfig): Promise<string> {
            return ethersRpcProvider.call(transactionConfig)
        }
    },
    extend(): void {}
}

const connector = new PrivateKeyProviderConnector(
    PRIVATE_KEY,
    ethersProviderConnector
)

const sdk = new FusionSDK({
    url: 'https://api.1inch.com/fusion',
    network: NetworkEnum.BINANCE,
    blockchainProvider: connector,
    authKey: DEV_PORTAL_API_TOKEN
})

async function main() {
    const params = {
        fromTokenAddress: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d', // USDC
        toTokenAddress: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',  // BNB
        amount: '10000000000000000000', // 10 USDC
        walletAddress: computeAddress(PRIVATE_KEY),
        source: 'sdk-test'
    }

    const quote = await sdk.getQuote(params)

    const dstTokenDecimals = 18
    console.log('Auction start amount', formatUnits(quote.presets[quote.recommendedPreset].auctionStartAmount, dstTokenDecimals))
    console.log('Auction end amount', formatUnits(quote.presets[quote.recommendedPreset].auctionEndAmount), dstTokenDecimals)

    const preparedOrder = await sdk.createOrder(params)

    const info = await sdk.submitOrder(preparedOrder.order, preparedOrder.quoteId)

    console.log('OrderHash', info.orderHash)

    const start = Date.now()

    while (true) {
        try {
            const data = await sdk.getOrderStatus(info.orderHash)

            if (data.status === OrderStatus.Filled) {
                console.log('fills', data.fills)
                break
            }

            if (data.status === OrderStatus.Expired) {
                console.log('Order Expired')
                break
            }
            
            if (data.status === OrderStatus.Cancelled) {
                console.log('Order Cancelled')
                break
            }
        } catch (e) {
            console.log(e)
        }

    }

    console.log('Order executed for', (Date.now() - start) / 1000, 'sec')
}

main()
```

## 如何与本地资产交换合并模式

```typescript
import {FusionSDK, NetworkEnum, OrderStatus, PrivateKeyProviderConnector, Web3Like, Address, NativeOrdersFactory} from "@1inch/fusion-sdk";
import {computeAddress, formatUnits, JsonRpcProvider, Wallet} from "ethers";

const PRIVATE_KEY = 'YOUR_PRIVATE_KEY'
const NODE_URL = 'YOUR_WEB3_NODE_URL'
const DEV_PORTAL_API_TOKEN = 'YOUR_DEV_PORTAL_API_TOKEN'

const ethersRpcProvider = new JsonRpcProvider(NODE_URL)

const ethersProviderConnector: Web3Like = {
    eth: {
        call(transactionConfig): Promise<string> {
            return ethersRpcProvider.call(transactionConfig)
        }
    },
    extend(): void {}
}

const connector = new PrivateKeyProviderConnector(
    PRIVATE_KEY,
    ethersProviderConnector
)

const sdk = new FusionSDK({
    url: 'https://api.1inch.com/fusion',
    network: NetworkEnum.BINANCE,
    blockchainProvider: connector,
    authKey: DEV_PORTAL_API_TOKEN
})

const wallet = new Wallet(PRIVATE_KEY, ethersRpcProvider)

async function main() {
    const params = {
        fromTokenAddress: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', // ETH
        toTokenAddress: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',  // USDC
        amount: '2000000000000000', // 0.002 ETH
        walletAddress: computeAddress(PRIVATE_KEY),
        source: 'sdk-test'
    }
    
    const quote = await sdk.getQuote(params)

    const dstTokenDecimals = 6
    console.log('Auction start amount', formatUnits(quote.presets[quote.recommendedPreset].auctionStartAmount, dstTokenDecimals))
    console.log('Auction end amount', formatUnits(quote.presets[quote.recommendedPreset].auctionEndAmount), dstTokenDecimals)

    const preparedOrder = await sdk.createOrder(params)

    const info = await sdk.submitNativeOrder(preparedOrder.order, new Address(params.walletAddress), preparedOrder.quoteId)

    console.log('OrderHash', info.orderHash)

    const factory = NativeOrdersFactory.default(NetworkEnum.BINANCE)
    const call = factory.create(new Address(wallet.address), preparedOrder.order.build())

    const txRes = await wallet.sendTransaction({
        to: call.to.toString(),
        data: call.data,
        value: call.value
    })

    console.log('TxHash', txRes.hash)

    await wallet.provider.waitForTransaction(txRes.hash)


    const start = Date.now()

    while (true) {
        try {
            const data = await sdk.getOrderStatus(info.orderHash)

            if (data.status === OrderStatus.Filled) {
                console.log('fills', data.fills)
                break
            }

            if (data.status === OrderStatus.Expired) {
                console.log('Order Expired')
                break
            }
            
            if (data.status === OrderStatus.Cancelled) {
                console.log('Order Cancelled')
                break
            }
        } catch (e) {
            console.log(e)
        }

    }

    console.log('Order executed for', (Date.now() - start) / 1000, 'sec')
}

main()
```

## 解析器

`settleOrders` 函数用法和解析器合同示例 [这里](https://github.com/1inch/fusion-resolver-example)

## 常见问题

### @1inch/fusion-sdk 是什么？

1英寸接合SDK

### 如何安装 @1inch/fusion-sdk？

在项目目录运行 npm install @1inch/fusion-sdk，或使用 pnpm add / yarn add / bun add。

### @1inch/fusion-sdk 支持 TypeScript 吗？

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

### @1inch/fusion-sdk 支持 ESM 还是 CommonJS？

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

### @1inch/fusion-sdk 可以商用吗？

@1inch/fusion-sdk 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @1inch/fusion-sdk 的下载量有多少？

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

### @1inch/fusion-sdk 还在维护吗？

最新版本 2\.4\.16 发布于 2026/10/07（1 个月前）；至今共发布 186 个版本，其中过去 12 个月发布了 34 个；首次发布于 2023/01/30。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

