@@ -13,9 +13,9 @@ import BigInt
13
13
import PromiseKit
14
14
15
15
public protocol Web3Provider {
16
- func send( request: JSONRPCrequest ) -> [ String : Any ] ?
17
- func send( requests: [ JSONRPCrequest ] ) -> [ [ String : Any ] ? ] ?
18
- func sendWithRawResult( request: JSONRPCrequest ) -> Data ?
16
+ // func send(request: JSONRPCrequest) -> [String:Any]?
17
+ // func send(requests: [JSONRPCrequest]) -> [[String: Any]?]?
18
+ // func sendWithRawResult(request: JSONRPCrequest) -> Data?
19
19
func sendAsync( _ request: JSONRPCrequest , queue: DispatchQueue ) -> Promise < JSONRPCresponse >
20
20
func sendAsync( _ requests: JSONRPCrequestBatch , queue: DispatchQueue ) -> Promise < JSONRPCresponseBatch >
21
21
var network : Networks ? { get set }
@@ -34,121 +34,121 @@ public class Web3HttpProvider: Web3Provider {
34
34
return urlSession
35
35
} ( )
36
36
public init ? ( _ httpProviderURL: URL , network net: Networks ? = nil , keystoreManager manager: KeystoreManager ? = nil ) {
37
- guard httpProviderURL. scheme == " http " || httpProviderURL. scheme == " https " else { return nil }
38
- url = httpProviderURL
39
- if net == nil {
40
- let request = JSONRPCRequestFabric . prepareRequest ( . getNetwork, parameters: [ ] )
41
- let response = Web3HttpProvider . syncPost ( request, providerURL: httpProviderURL)
42
- if response == nil {
43
- return nil
37
+ do {
38
+ guard httpProviderURL. scheme == " http " || httpProviderURL. scheme == " https " else { return nil }
39
+ url = httpProviderURL
40
+ if net == nil {
41
+ let request = JSONRPCRequestFabric . prepareRequest ( . getNetwork, parameters: [ ] )
42
+ let response = try Web3HttpProvider . post ( request, providerURL: httpProviderURL, queue: DispatchQueue . global ( qos: . userInteractive) , session: session) . wait ( )
43
+ if response. error != nil {
44
+ print ( response. message)
45
+ return nil
46
+ }
47
+ guard let result: String = response. getValue ( ) , let intNetworkNumber = Int ( result) else { return nil }
48
+ network = Networks . fromInt ( intNetworkNumber)
49
+ if network == nil { return nil }
50
+ } else {
51
+ network = net
44
52
}
45
- guard let res = response as? [ String : Any ] else { return nil }
46
- if let error = res [ " error " ] as? String {
47
- print ( error as String )
48
- return nil
49
- }
50
- guard let result = res [ " result " ] as? String , let intNetworkNumber = Int ( result) else { return nil }
51
- network = Networks . fromInt ( intNetworkNumber)
52
- if network == nil { return nil }
53
- } else {
54
- network = net
55
- }
56
- attachedKeystoreManager = manager
57
- }
58
-
59
- public func send( request: JSONRPCrequest ) -> [ String : Any ] ? {
60
- if request. method == nil {
61
- return nil
62
- }
63
- guard let response = self . syncPost ( request) else { return nil }
64
- guard let res = response as? [ String : AnyObject ] else { return nil }
65
- // print(res)
66
- return res
67
- }
68
-
69
- public func send( requests: [ JSONRPCrequest ] ) -> [ [ String : Any ] ? ] ? {
70
- for request in requests {
71
- if request. method == nil {
72
- return nil
73
- }
74
- }
75
- guard let response = self . syncPost ( requests) else { return nil }
76
- guard let res = response as? [ [ String : AnyObject ] ? ] else { return nil }
77
- // print(res)
78
- return res
79
- }
80
-
81
- public func sendWithRawResult( request: JSONRPCrequest ) -> Data ? {
82
- if request. method == nil {
83
- return nil
84
- }
85
- guard let response = self . syncPostRaw ( request) else { return nil }
86
- guard let res = response as? Data else { return nil }
87
- return res
88
- }
89
-
90
- internal func syncPostRaw( _ request: JSONRPCrequest ) -> Any ? {
91
- return Web3HttpProvider . syncPost ( request, providerURL: self . url)
92
- }
93
-
94
- static func syncPostRaw( _ request: JSONRPCrequest , providerURL: URL ) -> Any ? {
95
- guard let _ = try ? JSONEncoder ( ) . encode ( request) else { return nil }
96
- // print(String(data: try! JSONEncoder().encode(request), encoding: .utf8))
97
- let headers : HTTPHeaders = [
98
- " Content-Type " : " application/json " ,
99
- " Accept " : " application/json "
100
- ]
101
- let response = Alamofire . request ( providerURL, method: . post, parameters: nil , encoding: request, headers: headers) . responseData ( )
102
- switch response. result {
103
- case . success( let resp) :
104
- return resp
105
- case . failure( let err) :
106
- print ( err)
107
- return nil
108
- }
109
- }
110
-
111
- internal func syncPost( _ request: JSONRPCrequest ) -> Any ? {
112
- return Web3HttpProvider . syncPost ( request, providerURL: self . url)
113
- }
114
-
115
- internal func syncPost( _ requests: [ JSONRPCrequest ] ) -> Any ? {
116
- let batch = JSONRPCrequestBatch ( requests: requests)
117
- return Web3HttpProvider . syncPost ( batch, providerURL: self . url)
118
- }
119
-
120
- static func syncPost( _ request: JSONRPCrequest , providerURL: URL ) -> Any ? {
121
- guard let _ = try ? JSONEncoder ( ) . encode ( request) else { return nil }
122
- // print(String(data: try! JSONEncoder().encode(request), encoding: .utf8))
123
- let headers : HTTPHeaders = [
124
- " Content-Type " : " application/json " ,
125
- " Accept " : " application/json "
126
- ]
127
- let response = Alamofire . request ( providerURL, method: . post, parameters: nil , encoding: request, headers: headers) . responseJSON ( )
128
- switch response. result {
129
- case . success( let resp) :
130
- return resp
131
- case . failure( let err) :
132
- print ( err)
53
+ } catch {
133
54
return nil
134
55
}
56
+ attachedKeystoreManager = manager
135
57
}
136
58
137
- static func syncPost( _ request: JSONRPCrequestBatch , providerURL: URL ) -> Any ? {
138
- guard let _ = try ? JSONEncoder ( ) . encode ( request) else { return nil }
139
- // print(String(data: try! JSONEncoder().encode(request), encoding: .utf8))
140
- let headers : HTTPHeaders = [
141
- " Content-Type " : " application/json " ,
142
- " Accept " : " application/json "
143
- ]
144
- let response = Alamofire . request ( providerURL, method: . post, parameters: nil , encoding: request, headers: headers) . responseJSON ( )
145
- switch response. result {
146
- case . success( let resp) :
147
- return resp
148
- case . failure( let err) :
149
- print ( err)
150
- return nil
151
- }
152
- }
59
+ // public func send(request: JSONRPCrequest) -> [String: Any]? {
60
+ // if request.method == nil {
61
+ // return nil
62
+ // }
63
+ // guard let response = self.syncPost(request) else {return nil}
64
+ // guard let res = response as? [String: AnyObject] else {return nil}
65
+ //// print(res)
66
+ // return res
67
+ // }
68
+ //
69
+ // public func send(requests: [JSONRPCrequest]) -> [[String: Any]?]? {
70
+ // for request in requests {
71
+ // if request.method == nil {
72
+ // return nil
73
+ // }
74
+ // }
75
+ // guard let response = self.syncPost(requests) else {return nil}
76
+ // guard let res = response as? [[String: AnyObject]?] else {return nil}
77
+ //// print(res)
78
+ // return res
79
+ // }
80
+ //
81
+ // public func sendWithRawResult(request: JSONRPCrequest) -> Data? {
82
+ // if request.method == nil {
83
+ // return nil
84
+ // }
85
+ // guard let response = self.syncPostRaw(request) else {return nil}
86
+ // guard let res = response as? Data else {return nil}
87
+ // return res
88
+ // }
89
+ //
90
+ // internal func syncPostRaw(_ request: JSONRPCrequest) -> Any? {
91
+ // return Web3HttpProvider.syncPost(request, providerURL: self.url)
92
+ // }
93
+ //
94
+ // static func syncPostRaw(_ request: JSONRPCrequest, providerURL: URL) -> Any? {
95
+ // guard let _ = try? JSONEncoder().encode(request) else {return nil}
96
+ // // print(String(data: try! JSONEncoder().encode(request), encoding: .utf8))
97
+ // let headers: HTTPHeaders = [
98
+ // "Content-Type": "application/json",
99
+ // "Accept": "application/json"
100
+ // ]
101
+ // let response = Alamofire.request(providerURL, method: .post, parameters: nil, encoding: request, headers: headers).responseData()
102
+ // switch response.result {
103
+ // case .success(let resp):
104
+ // return resp
105
+ // case .failure(let err):
106
+ // print(err)
107
+ // return nil
108
+ // }
109
+ // }
110
+ //
111
+ // internal func syncPost(_ request: JSONRPCrequest) -> Any? {
112
+ // return Web3HttpProvider.syncPost(request, providerURL: self.url)
113
+ // }
114
+ //
115
+ // internal func syncPost(_ requests: [JSONRPCrequest]) -> Any? {
116
+ // let batch = JSONRPCrequestBatch(requests: requests)
117
+ // return Web3HttpProvider.syncPost(batch, providerURL: self.url)
118
+ // }
119
+ //
120
+ // static func syncPost(_ request: JSONRPCrequest, providerURL: URL) -> Any? {
121
+ // guard let _ = try? JSONEncoder().encode(request) else {return nil}
122
+ //// print(String(data: try! JSONEncoder().encode(request), encoding: .utf8))
123
+ // let headers: HTTPHeaders = [
124
+ // "Content-Type": "application/json",
125
+ // "Accept": "application/json"
126
+ // ]
127
+ // let response = Alamofire.request(providerURL, method: .post, parameters: nil, encoding: request, headers: headers).responseJSON()
128
+ // switch response.result {
129
+ // case .success(let resp):
130
+ // return resp
131
+ // case .failure(let err):
132
+ // print(err)
133
+ // return nil
134
+ // }
135
+ // }
136
+ //
137
+ // static func syncPost(_ request: JSONRPCrequestBatch, providerURL: URL) -> Any? {
138
+ // guard let _ = try? JSONEncoder().encode(request) else {return nil}
139
+ //// print(String(data: try! JSONEncoder().encode(request), encoding: .utf8))
140
+ // let headers: HTTPHeaders = [
141
+ // "Content-Type": "application/json",
142
+ // "Accept": "application/json"
143
+ // ]
144
+ // let response = Alamofire.request(providerURL, method: .post, parameters: nil, encoding: request, headers: headers).responseJSON()
145
+ // switch response.result {
146
+ // case .success(let resp):
147
+ // return resp
148
+ // case .failure(let err):
149
+ // print(err)
150
+ // return nil
151
+ // }
152
+ // }
153
153
}
154
154
0 commit comments