Skip to content

lishuailibertine/hyperliquidSwift

Repository files navigation

HyperliquidSwift 库说明文档

概述

HyperliquidSwift 是一个用于与 Hyperliquid 交易所交互的 Swift 库,提供了一系列 API 接口和签名功能,方便开发者在 Swift 项目中集成 Hyperliquid 交易所的相关功能。

文档与依赖

  • 官方文档:Hyperliquid Docs
  • 依赖库:
    • web3swift (3.5.3+)
    • Alamofire (5.9.1+)
    • Blake2.swift (0.1.3+)
    • swift-msgpack (0.7.0)
    • KeychainAccess (4.2.2+)

核心功能

1. 签名支持

  • sign_l1_action
  • HyperliquidTransaction:UsdClassTransfer
  • HyperliquidTransaction:UsdSend
  • HyperliquidTransaction:Withdraw
  • HyperliquidTransaction:SpotSend

2. 主要类与结构体

HyperliquidExchange

核心交互类,提供了与交易所 API 交互的各种方法:

// 初始化
let exchange = HyperliquidExchange(isMainnet: true)

// 获取元信息
let metaInfo = try await exchange.metaInfo()

// 下单
let placeOrderResult = try await exchange.placeOrder(action: placeOrderAction) { request in
    // 签名逻辑
}

// 撤单
let cancelResult = try await exchange.cancelOrder(action: cancelOrderAction) { request in
    // 签名逻辑
}

// 提现
let withdrawResult = try await exchange.withdraw(action: withdrawAction) { request in
    // 签名逻辑
}

ExchangeAddressRequest

生成地址请求结构体:

let request = ExchangeAddressRequest(
    src_chain: "bitcoin",
    dst_chain: "hyperliquid",
    asset: "btc",
    dst_addr: "0x99a5F7202c4983a6f0Ca9d8F0526Fcd9d2be9e1D"
)

数据模型

  • WsFill:成交记录数据模型
  • ExchangeClearingPositionDetail:持仓详情模型
  • ExchangeFeeSchedule:手续费 schedule 模型

3. 网络请求

支持多种 API 接口请求,包括:

  • 获取市场元信息
  • 获取现货市场元信息
  • 获取 K 线快照
  • 获取账户操作记录
  • 获取清算状态
  • 获取历史订单
  • 生成地址
  • 估算手续费
  • 下单、撤单、转账、提现等操作

4. 签名功能

ExchangeSign 类提供了签名相关功能,支持对各种交易行为进行签名:

let keypair = try ExchangeKeychain(privateData: privateKeyData)
let signer = ExchangeSign(keypair: keypair)
let signatureData = try signer.sign_l1_action(
    action: action,
    vaultAddress: vaultAddress,
    nonce: nonce,
    expiresAfter: expiresAfter
)

测试用例

库中包含多种测试用例,涵盖了签名、API 请求等功能:

  • 订单签名测试
  • USDC 签名测试
  • 下单 API 测试
  • 提现测试
  • 合约读取测试
  • 各种信息获取测试

许可证

本库基于 Apache License 2.0 许可协议开源,详情参见 LICENSE 文件。

About

Unofficial Hyperliquid API SDK written in Swift

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages