FilRep API - Swift 封装库

一个围绕 filrep.io API 构建的轻量级 Swift 封装库。您可以使用回调或 async/await (iOS 15/macOS 12.0) 进行数据获取。

import FilRepSwift

filrep = FilRepSwift()
let miners = try await filrep.getMiners()
// or
filrep.getMiners() { result in
    switch result {
    case .success(let miners):
        // use list of miners
    case .failure(let error):
        // handle error
    }
}

默认情况下,getMiners 函数会获取限制为 10 个矿工的数据,并且其他参数使用 API 的默认值。所有查询参数都已实现在 getMiners 函数中,因此您可以使用该函数请求来自欧洲、按 freeSpace 排序的前 100 个矿工。

let miners = try await filrep.getMiners(limit: 100, region: .Europe, sortBy: .freeSpace)

Miner 类公开了以下带有常量的类,这些常量直接从 JSON 响应中解析而来。

public class Miner: Codable {
    let id: Int
    let address: String
    let status: Bool
    let uptimeAverage: Float
    let price: String
    let rawPower: String
    let qualityAdjPower: String
    let isoCode: String
    let region: Region
    let freeSpace: String
    let storageDeals: MinerStorageDeals
    let scores: MinerScores
    
    let rank: String
    let regionRank: String
    
    public class MinerStorageDeals: Codable {
        let total: Int
        let noPenalties: Int
        let successRate: String
        let averagePrice: String
        let dataStored: String
        let slashed: Int
    }
    
    public class MinerScores: Codable {
        let total: String
        let uptime: String
        let storageDeals: String
        let committedSectorsProofs: String
    }
}