UpbitSwift
Upbit API 的 Swift 封装
示例
要运行示例 SwiftUI 项目,首先克隆仓库,然后在 Example 目录下运行 pod install
。
要求
- Swift 5.0+
- iOS 13.0+
安装
CocoaPods
UpbitSwift 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:
pod 'UpbitSwift'
Swift 包管理器
dependencies: [
.package(url: "https://github.com/sihon321/UpbitSwift.git")
]
用法
报价 API
- 实时价格品种查询
let upSwift = UpbitSwift()
let marketList = UpbitMarketList()
upSwift.getMarketAll(isDetails: false) { result in
switch result {
case .success(let marketList):
self.marketList = marketList
case .failure(let error):
print(error.failureReason ?? "Not found error")
}
}
- 实时价格蜡烛图查询
蜡烛图查询可通过单个 getCandle() 函数实现。每个蜡烛图均以枚举形式存在,您可以选择所需的蜡烛图。
let upSwift = UpbitSwift()
let candles = UpbitCandles()
upbitSwift.getCandle(.minute(.one), market: "KRW-BTC") { result in
switch result {
case .success(let candles):
self.candles = candles
case .failure(let error):
print(error.failureReason ?? "Not found error")
}
}
public enum CandleType {
case minute(MinuteCandle)
case hour(HourCandle)
case days
case weeks
case months
}
public enum MinuteCandle: Int {
case one = 1
case three = 3
case five = 5
case ten = 10
case fifteen = 15
case thirty = 30
}
public enum HourCandle: Int {
case one = 60
case four = 240
}
- 实时价格 Ticker 查询
let upSwift = UpbitSwift()
let tickers = UpbitTickers()
upbitSwift.getTickers(market: ["KRW-BTC"]) { result in
switch result {
case .success(let tickers):
self.tickers = tickers
case .failure(let error):
print(error.failureReason ?? "Not found error")
}
}
交易所 API
- 全面账户查询
let upSwift = UpbitSwift(accessKey: "accessKey", secretKey: "secretKey")
let accounts = UpbitAccounts()
upbitSwift.getAccounts() { result in
switch result {
case .success(let accounts):
self.accounts = accounts
case .failure(let error):
print(error.failureReason ?? "Not found error")
}
}
- 单个订单查询,订单取消接收
在订单取消接收时,将方法修改为 delete 即可。
let upSwift = UpbitSwift(accessKey: "accessKey", secretKey: "secretKey")
let order = UpbitOrder()
upbitSwift.requestOrder(.get,
uuid: "5b72488b-fa82-4012-a9a4-7093cd529a16") { result in
switch result {
case .success(let order):
self.order = order
case .failure(let error):
print(error.failureReason ?? "Not found error")
}
}
- 创建订单
限价多头时:输入 volume 和 price
let upSwift = UpbitSwift(accessKey: "accessKey", secretKey: "secretKey")
let order = UpbitOrder()
upbitSwift.order(.buy, market: "KRW-BTC", volume: "0.001", price: "1000.0") { result in
switch result {
case .success(let order):
self.order = order
case .failure(let error):
print(error.failureReason ?? "Not found error")
}
}
市价多头时:仅输入 price
let upSwift = UpbitSwift(accessKey: "accessKey", secretKey: "secretKey")
let order = UpbitOrder()
upbitSwift.order(.buy, market: "KRW-BTC", price: "1000.0") { result in
switch result {
case .success(let order):
self.order = order
case .failure(let error):
print(error.failureReason ?? "Not found error")
}
}
限价空头时:输入 volume 和 price
let upSwift = UpbitSwift(accessKey: "accessKey", secretKey: "secretKey")
let order = UpbitOrder()
upbitSwift.order(.sell, market: "KRW-BTC", volume: "0.001", price: "1000.0") { result in
switch result {
case .success(let order):
self.order = order
case .failure(let error):
print(error.failureReason ?? "Not found error")
}
}
市价空头时:仅输入 volume
let upSwift = UpbitSwift(accessKey: "accessKey", secretKey: "secretKey")
let order = UpbitOrder()
upbitSwift.order(.sell, market: "KRW-BTC", volume: "0.001") { result in
switch result {
case .success(let order):
self.order = order
case .failure(let error):
print(error.failureReason ?? "Not found error")
}
}
作者
sihon321, [email protected]
许可
UpbitSwift 在 MIT 许可下可用。更多信息请参阅 LICENSE 文件。