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%
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