@1inch/fusion-sdk

中文文档
2.4.16发布于 2026/10/07TypeScriptESM + CJS构建来源已验证近 30 天下载 8.1万

1英寸接合SDK

中文使用文档
文档目录7 节
  1. 安装
  2. 无
  3. 雅伦
  4. 模块文件
  5. 如何与融合模式互换
  6. 如何与本地资产交换合并模式
  7. 解析器

1英寸融合模式的 SDK

安装

无

npm install @1inch/fusion-sdk@2

雅伦

yarn add @1inch/fusion-sdk@2

模块文件

如何与融合模式互换

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()

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

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 函数用法和解析器合同示例 这里

版本与发布记录

@1inch/fusion-sdk 共发布 186 个版本,首次发布于 2023/01/30;过去 12 个月发布了 34 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.4.16latest2026/10/071 个月前
2.4.152026/09/111 个月前
2.4.142026/09/091 个月前
2.1.14v2-latest2026/09/091 个月前
2.1.14-rc.1v2-next2026/09/052 个月前
2.4.14-rc.0next2026/09/052 个月前

关于 @1inch/fusion-sdk 的常见问题

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