SPB Git

spb/os-vault Public

Self-custody, multi-chain crypto wallet for macOS. One recovery phrase, six chain families, zero API keys — nothing leaves your Mac.

Swift 96% Shell 3.4% Makefile 0.6%
1.6 KB · 45 lines swift
Raw Blame History
1import Foundation23public struct APIEndPoint: Hashable, Codable {4    public init(address: String, network: Network, socketUrl: String? = nil, additionalQuery: String? = nil) {5        self.address = address6        self.network = network78        self.socketUrl = socketUrl ?? address.replacingOccurrences(of: "http", with: "ws")9        if let additionalQuery = additionalQuery {10            self.socketUrl += "/" + additionalQuery11        }1213        self.additionalQuery = additionalQuery14    }1516    public let address: String17    public var network: Network18    public var socketUrl: String19    public let additionalQuery: String?2021    public static var defaultEndpoints: [Self] {22        var endpoints: [Self] = [23            .init(address: "https://solana-api.projectserum.com", network: .mainnetBeta),24            .init(address: "https://api.mainnet-beta.solana.com", network: .mainnetBeta),25//                .init(address: "https://datahub-proxy.p2p.org", network: .mainnetBeta),26//                .init(address: "https://api.devnet.solana.com", network: .devnet),27//                .init(address: "https://api.testnet.solana.com", network: .testnet)28        ]29//            #if DEBUG30        endpoints.append(.init(address: "https://api.testnet.solana.com", network: .testnet))31        endpoints.append(.init(address: "https://api.devnet.solana.com", network: .devnet))32//            #endif3334        return endpoints35    }3637    public func getURL() -> String {38        var url = address39        if let query = additionalQuery {40            url += "/" + query41        }42        return url43    }44}45