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+)
sign_l1_actionHyperliquidTransaction:UsdClassTransferHyperliquidTransaction:UsdSendHyperliquidTransaction:WithdrawHyperliquidTransaction:SpotSend
核心交互类,提供了与交易所 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
// 签名逻辑
}生成地址请求结构体:
let request = ExchangeAddressRequest(
src_chain: "bitcoin",
dst_chain: "hyperliquid",
asset: "btc",
dst_addr: "0x99a5F7202c4983a6f0Ca9d8F0526Fcd9d2be9e1D"
)WsFill:成交记录数据模型ExchangeClearingPositionDetail:持仓详情模型ExchangeFeeSchedule:手续费 schedule 模型
支持多种 API 接口请求,包括:
- 获取市场元信息
- 获取现货市场元信息
- 获取 K 线快照
- 获取账户操作记录
- 获取清算状态
- 获取历史订单
- 生成地址
- 估算手续费
- 下单、撤单、转账、提现等操作
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 文件。