# @bluefin-exchange/pro-sdk 中文文档

规范地址：https://npmcn.com/package/%40bluefin-exchange/pro-sdk/

版本：2\.4\.0
npm 元数据更新时间：2026-10-29T17:23:55.196Z
中文译文更新时间：2026-11-08T08:29:02.930Z
软件包许可：Unlicense

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

原始 npm 页面：https://www.npmjs.com/package/%40bluefin-exchange/pro-sdk
原文对照：https://npmcn.com/package/%40bluefin-exchange/pro-sdk/?lang=original
项目主页：https://github.com/fireflyprotocol/pro-sdk#readme
源码仓库：https://github.com/fireflyprotocol/pro-sdk

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

- 包体积（解压后）：690 kB，22 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：7 个
- peer 依赖：@mysten/sui ^2\.13\.0
- 首次发布：2025-02-19T20:46:39.905Z
- 最新版本发布：2026-10-29T17:23:54.729Z
- 近 30 天下载量：3910（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：89（近 12 个月 26 个）

## 中文简介

@ bluefin- exchange/ pro- sdk 的 OpenAPI 客户端

## 安装

```sh
npm install @bluefin-exchange/pro-sdk
```

也可以使用：`pnpm add @bluefin-exchange/pro-sdk`、`yarn add @bluefin-exchange/pro-sdk`、`bun add @bluefin-exchange/pro-sdk`

## README

# 用于类型Script/JavaScript的 Bluefin Pro SDK

TypeScript/JavaScript SDK用于与Bluefin Pro交换API和Sui区块链合同的互动.

[![npm version](https://badge.fury.io/js/@bluefin-exchange%2Fpro-sdk.svg)](https://www.npmjs.com/package/@bluefin-exchange/pro-sdk)

## 安装

使用 npm 或纱线安装 SDK :

```bash
npm install @bluefin-exchange/pro-sdk
# or
yarn add @bluefin-exchange/pro-sdk
```

### 同伴依赖关系

SDK 需要以下对等关系:

```bash
npm install @mysten/sui
```

## 快速启动

### 1\. 初始化SDK

```typescript
import {
  BluefinProSdk,
  BluefinRequestSigner,
  makeSigner,
} from "@bluefin-exchange/pro-sdk";
import { SuiGrpcClient } from "@mysten/sui/grpc";
import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
import { hexToBytes } from "@noble/hashes/utils.js";

// Create wallet from private key
const wallet = Ed25519Keypair.fromSecretKey(
  hexToBytes("YOUR_PRIVATE_KEY_HEX")
);

// Or create wallet from mnemonic
// const wallet = Ed25519Keypair.deriveKeypair("your mnemonic phrase here");

// Create request signer
const signer = new BluefinRequestSigner(makeSigner(wallet, false));

// Initialize SDK client
const client = new BluefinProSdk(
  signer,
  "mainnet", // or "testnet" for staging, "devnet" for development
  new SuiGrpcClient({ network: "mainnet", baseUrl: "https://fullnode.mainnet.sui.io:443" })
);

// Initialize the SDK (authenticates and loads exchange configuration)
await client.initialize();
```

> SDK接受任何一个 `@mysten/sui` 客户端执行 Core API 。 使用 `SuiGrpcClient` ——Sui的JSON-RPC接口被贬值. 如果你正在升级 从 `SuiJsonRpcClient`,交换客户端是唯一需要更改的.

### 2\. 获取市场数据

```typescript
// Get exchange information and available markets
const exchangeInfo = await client.exchangeDataApi.getExchangeInfo();
console.log("Available markets:", exchangeInfo.data.markets);

// Get market ticker
const ticker = await client.exchangeDataApi.getMarketTicker("BTC-PERP");
console.log("BTC-PERP ticker:", ticker.data);

// Get orderbook depth
const orderbook = await client.exchangeDataApi.getOrderbookDepth("BTC-PERP");
console.log("Orderbook:", orderbook.data);

// Get recent trades
const trades = await client.exchangeDataApi.getRecentTrades("BTC-PERP");
console.log("Recent trades:", trades.data);
```

### 3\. 发布命令

```typescript
import { OrderType, OrderSide, OrderTimeInForce } from "@bluefin-exchange/pro-sdk";

const orderParams = {
  clientOrderId: "unique-order-id-123",
  type: OrderType.Limit,
  symbol: "BTC-PERP",
  priceE9: "45000000000000", // Price in E9 format (45000 * 1e9)
  quantityE9: "100000000", // Quantity in E9 format (0.1 BTC * 1e9)
  side: OrderSide.Long,
  leverageE9: "2000000000", // 2x leverage
  isIsolated: false,
  expiresAtMillis: Date.now() + 24 * 60 * 60 * 1000, // 24 hours
  postOnly: false,
  reduceOnly: false,
  timeInForce: OrderTimeInForce.Gtt,
};

const result = await client.createOrder(orderParams);
console.log("Order created:", result.data);
```

### 4\. 获取账户信息

```typescript
import { TradeType } from "@bluefin-exchange/pro-sdk";

// Get account details
const accountDetails = await client.accountDataApi.getAccountDetails(
  wallet.getPublicKey().toSuiAddress()
);
console.log("Account details:", accountDetails.data);

// Get account trade history
const tradeHistory = await client.accountDataApi.getAccountTrades(
  "BTC-PERP",
  Date.now() - 7 * 24 * 60 * 60 * 1000, // Last 7 days
  Date.now(),
  100,
  TradeType.Order,
  1
);
console.log("Trade history:", tradeHistory.data);
```

## WebSocket 流线

### 市场数据流

订阅实时市场数据更新 :

```typescript
import { MarketDataStreamName } from "@bluefin-exchange/pro-sdk";

// Create market data stream listener
const marketListener = await client.createMarketDataStreamListener(
  async (msg) => {
    console.log("Market update:", msg);
  }
);

// Subscribe to market data streams
await marketListener.send(
  JSON.stringify({
    method: "Subscribe",
    dataStreams: [
      {
        symbol: "BTC-PERP",
        streams: [
          MarketDataStreamName.Ticker,
          MarketDataStreamName.RecentTrade,
          MarketDataStreamName.PartialDepth5,
        ],
      },
    ],
  })
);
```

### 账户数据流

订阅账户更新 :

```typescript
import { AccountDataStream } from "@bluefin-exchange/pro-sdk";

// Create account data stream listener
const accountListener = await client.createAccountDataStreamListener(
  async (msg) => {
    console.log("Account update:", msg);
  }
);

// Subscribe to account data streams
await accountListener.send(
  JSON.stringify({
    method: "Subscribe",
    dataStreams: [
      AccountDataStream.AccountOrderUpdate,
      AccountDataStream.AccountPositionUpdate,
      AccountDataStream.AccountTradeUpdate,
      AccountDataStream.AccountTransactionUpdate,
      AccountDataStream.AccountUpdate,
    ],
  })
);
```

## 高级特性

### 交存和撤回

```typescript
// Deposit USDC to exchange (amount in base units)
await client.deposit("1000000000"); // 1 USDC (1 * 1e9)

// Withdraw USDC from exchange
await client.withdraw("USDC", "500000000"); // 0.5 USDC (0.5 * 1e9)
```

### 更新杠杆

```typescript
// Update leverage for a specific market
await client.updateLeverage("BTC-PERP", "5000000000"); // 5x leverage
```

### 调整隔离边距

```typescript
// Add margin to isolated position
await client.adjustIsolatedMargin("BTC-PERP", "100000000000", true); // Add 100 USDC
```

### 批量索赔奖励

```typescript
// Get available rewards
const rewards = await client.rewardsDataApi.getCampaignRewards(
  "TRADE_AND_EARN",
  wallet.getPublicKey().toSuiAddress()
);

// Claim rewards (see docs/batch-claim-rewards-guide.md for detailed guide)
const claimPayloads = /* transform rewards to BatchClaimParams */;
const txResult = await client.batchClaimRewards(claimPayloads);
```

见 [文件/批次-索偿-奖励-指南.md](https://npmcn.com/package/%40bluefin-exchange/pro-sdk/docs/batch-claim-rewards-guide.md) 为索取报酬的完整指南.

## API 参考

SDK提供下列API类别的访问:

-   **交换数据Api**:市场数据、计票机、订货簿、蜡烛、供资率
-   **账户数据Api**: 账户细节、职位、订单、贸易历史、交易
-   **贸易Api**: 排序、取消、杠杆更新
-   **奥特阿皮**: 认证和会话管理
-   **奖励**:运动奖励和索赔

关于详细的API文档,请参见: [标准文件/文件](https://npmcn.com/package/%40bluefin-exchange/pro-sdk/src/docs) 目录.

## 环境配置

SDK支持三种环境:

-   **主网**生产环境
-   **测试网**:用于测试的固定环境
-   **脱网**发展环境

每个环境都有不同的API端点自动配置.

见 [实例.ts](https://npmcn.com/package/%40bluefin-exchange/pro-sdk/example.ts) 用于完整的示例代码.

## 常见问题

### @bluefin-exchange/pro-sdk 是什么？

@ bluefin- exchange/ pro- sdk 的 OpenAPI 客户端

### 如何安装 @bluefin-exchange/pro-sdk？

在项目目录运行 npm install @bluefin-exchange/pro-sdk，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@mysten/sui（^2\.13\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @bluefin-exchange/pro-sdk 支持 TypeScript 吗？

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

### @bluefin-exchange/pro-sdk 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @bluefin-exchange/pro-sdk 需要什么版本的 Node\.js？

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

### @bluefin-exchange/pro-sdk 可以商用吗？

@bluefin-exchange/pro-sdk 使用 Unlicense 许可。作者将代码贡献到公共领域，可不受限制地使用。以上为概括，不构成法律意见，请以许可原文为准。

### @bluefin-exchange/pro-sdk 的下载量有多少？

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

### @bluefin-exchange/pro-sdk 还在维护吗？

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

