Skip to content

Commit

Permalink
Merge pull request #49 from torusresearch/replace_fatal_error
Browse files Browse the repository at this point in the history
fix: replace fatal error
  • Loading branch information
chaitanyapotti authored Jul 5, 2024
2 parents 22bfadf + 8c9d28d commit 4bd96c3
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 11 deletions.
5 changes: 3 additions & 2 deletions Sources/CommonSources/Error.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@

import Foundation

/// An error that occurs during the decoding of a value.
public enum FetchNodeError : Error {
case InvalidURL
case InvalidInput
case GeneralError(String)
case InvalidNetwork(String)
case InvalidMigrationNetwork(String)

}
14 changes: 11 additions & 3 deletions Sources/FetchNodeDetails/NodeDetailManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,15 @@ open class NodeDetailManager {
fndResult = nodeDetails

do {
guard let url = URL(string: "\(fndServerEndpoint)?network=\(network.name)&verifier=\(verifier)&verifierId=\(verifierID)") else {
fatalError("Invalid URL ")
guard let urlEncodedVerifier = verifier.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed),
let urlEncodedVerifierID = verifierID.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed),
let urlEncodedNetwork = network.name.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
else {
throw FetchNodeError.InvalidInput
}

guard let url = URL(string: "\(fndServerEndpoint)?network=\(urlEncodedNetwork)&verifier=\(urlEncodedVerifier)&verifierId=\(urlEncodedVerifierID)") else {
throw FetchNodeError.InvalidURL
}
let (data, _) = try await URLSession.shared.data(from: url)
let response = try JSONDecoder().decode(NodeDetailsResponse.self, from: data)
Expand All @@ -60,7 +67,8 @@ open class NodeDetailManager {
} catch let error {
os_log("Failed to fetch node details from server, using local. %s", log: getTorusLogger(log: FNDLogger.core, type: .error), type: .error, error.localizedDescription)
}
let nodeDetails = try fetchLocalConfig(network: self.network)!

let nodeDetails = try fetchLocalConfig(network: self.network)
fndResult.setNodeDetails(nodeDetails: nodeDetails, updated: false)
return fndResult
}
Expand Down
6 changes: 3 additions & 3 deletions Sources/FndBase/Endpoints/Endpoints.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ func getSSSEndpoints(network: TorusNetwork) throws -> [String] {
case .sapphire(let network) :

guard let endpoints = SAPPHIRE_NETWORK_URLS[network] else {
fatalError("Unsupported network: \(network)")
throw FetchNodeError.InvalidNetwork("Unsupported network: \(network)")
}

return endpoints.map { "\($0)/sss/jrpc" }
Expand All @@ -44,7 +44,7 @@ func getRSSEndpoints(network: TorusNetwork) throws -> [String] {
case .sapphire(let network) :

guard let endpoints = SAPPHIRE_NETWORK_URLS[network] else {
fatalError("Unsupported network: \(network)")
throw FetchNodeError.InvalidNetwork("Unsupported network: \(network)")
}

return endpoints.map { "\($0)/rss" }
Expand All @@ -67,7 +67,7 @@ func getTSSEndpoints(network: TorusNetwork) throws -> [String] {
case .sapphire(let network) :

guard let endpoints = SAPPHIRE_NETWORK_URLS[network] else {
fatalError("Unsupported network: \(network)")
throw FetchNodeError.InvalidNetwork("Unsupported network: \(network)")
}

return endpoints.map { "\($0)/tss" }
Expand Down
4 changes: 2 additions & 2 deletions Sources/FndBase/Utils/Utils.swift
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
public func fetchLocalConfig(network: TorusNetwork) throws -> AllNodeDetailsModel? {
public func fetchLocalConfig(network: TorusNetwork) throws -> AllNodeDetailsModel {

switch network {
case .legacy(let network ) :
if (network.migration_map.migrationCompleted) {
return try SapphireConfig(network: network.migration_map.networkMigratedTo )
}
return nil
throw FetchNodeError.InvalidNetwork("Unsupported network: \(network)")

case .sapphire(let network) :
return try SapphireConfig(network: network)
Expand Down
2 changes: 1 addition & 1 deletion Torus-fetchNodeDetails.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |spec|
spec.name = "Torus-fetchNodeDetails"
spec.version = "6.0.2"
spec.version = "6.0.3"
spec.ios.deployment_target = '13.0'
spec.summary = "Fetches the node details from torus nodelist smart contract"
spec.homepage = "https://github.com/torusresearch/fetch-node-details-swift"
Expand Down

0 comments on commit 4bd96c3

Please sign in to comment.