Skip to content

Commit 9595e69

Browse files
author
Alex Vlasov
committed
disable sync http
1 parent 87ac133 commit 9595e69

File tree

8 files changed

+139
-1026
lines changed

8 files changed

+139
-1026
lines changed

web3swift/Web3/Classes/Web3+Eth.swift

Lines changed: 1 addition & 584 deletions
Large diffs are not rendered by default.

web3swift/Web3/Classes/Web3+EventParser.swift

Lines changed: 8 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -269,51 +269,15 @@ extension web3.web3contract.EventParser {
269269
}
270270

271271
extension web3.web3contract {
272-
public func getIndexedEvents(eventName: String?, filter: EventFilter) -> Result<[EventParserResultProtocol], Web3Error> {
273-
guard let rawContract = self.contract as? ContractV2 else {return Result.failure(Web3Error.nodeError("ABIv1 is not supported for this method"))}
274-
guard let preEncoding = encodeTopicToGetLogs(contract: rawContract, eventName: eventName, filter: filter) else {
275-
return Result.failure(Web3Error.dataError)
276-
}
277-
var event: ABIv2.Element.Event? = nil
278-
if eventName != nil {
279-
guard let ev = rawContract.events[eventName!] else {return Result.failure(Web3Error.dataError)}
280-
event = ev
281-
}
282-
let request = JSONRPCRequestFabric.prepareRequest(.getLogs, parameters: [preEncoding])
283-
let response = self.web3.provider.send(request: request)
284-
let result = ResultUnwrapper.getResponse(response)
285-
switch result {
286-
case .failure(let error):
287-
return Result.failure(error)
288-
case .success(let payload):
289-
if payload is NSNull {
290-
return Result.failure(Web3Error.nodeError("Empty response"))
291-
}
292-
guard let resultArray = payload as? [[String: AnyObject]] else {
293-
return Result.failure(Web3Error.dataError)
294-
}
295-
var allLogs = [EventLog]()
296-
for log in resultArray {
297-
guard let parsedLog = EventLog.init(log) else {return Result.failure(Web3Error.dataError)}
298-
allLogs.append(parsedLog)
299-
}
300-
if event != nil {
301-
let decodedLogs = allLogs.compactMap({ (log) -> EventParserResultProtocol? in
302-
let (n, d) = contract.parseEvent(log)
303-
guard let evName = n, let evData = d else {return nil}
304-
return EventParserResult(eventName: evName, transactionReceipt: nil, contractAddress: log.address, decodedResult: evData)
305-
}).filter { (res:EventParserResultProtocol?) -> Bool in
306-
if eventName != nil {
307-
return res != nil && res?.eventName == eventName
308-
} else {
309-
return res != nil
310-
}
311-
}
312-
var allResults = [EventParserResultProtocol]()
313-
allResults = decodedLogs
314-
return Result(allResults)
272+
public func getIndexedEvents(eventName: String?, filter: EventFilter, joinWithReceipts: Bool = false) -> Result<[EventParserResultProtocol], Web3Error> {
273+
do {
274+
let result = try self.getIndexedEventsPromise(eventName: eventName, filter: filter, joinWithReceipts: joinWithReceipts).wait()
275+
return Result(result)
276+
} catch {
277+
if let err = error as? Web3Error {
278+
return Result.failure(err)
315279
}
316-
return Result([EventParserResultProtocol]())
280+
return Result.failure(Web3Error.generalError(error))
317281
}
318282
}
319283
}

web3swift/Web3/Classes/Web3+HttpProvider.swift

Lines changed: 114 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ import BigInt
1313
import PromiseKit
1414

1515
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?
1919
func sendAsync(_ request: JSONRPCrequest, queue: DispatchQueue) -> Promise<JSONRPCresponse>
2020
func sendAsync(_ requests: JSONRPCrequestBatch, queue: DispatchQueue) -> Promise<JSONRPCresponseBatch>
2121
var network: Networks? {get set}
@@ -34,121 +34,121 @@ public class Web3HttpProvider: Web3Provider {
3434
return urlSession
3535
}()
3636
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
4452
}
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 {
13354
return nil
13455
}
56+
attachedKeystoreManager = manager
13557
}
13658

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+
// }
153153
}
154154

web3swift/Web3/Classes/Web3+Instance.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@ public class web3: Web3OptionsInheritable {
1515
public var options : Web3Options = Web3Options.defaultOptions()
1616
public var defaultBlock = "latest"
1717
public var requestDispatcher: JSONRPCrequestDispatcher
18-
19-
public func send(request: JSONRPCrequest) -> [String: Any]? {
20-
return self.provider.send(request: request)
21-
}
18+
2219
public func dispatch(_ request: JSONRPCrequest) -> Promise<JSONRPCresponse> {
2320
return self.requestDispatcher.addToQueue(request: request)
2421
}
@@ -32,7 +29,6 @@ public class web3: Web3OptionsInheritable {
3229
}
3330
}
3431

35-
3632
public func addKeystoreManager(_ manager: KeystoreManager?) {
3733
self.provider.attachedKeystoreManager = manager
3834
}

web3swift/Web3/Classes/Web3+JSONRPC.swift

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,6 @@ public struct JSONRPCresponse: Decodable{
132132
return
133133
}
134134
var result: Any? = nil
135-
// for type in decodableTypes {
136-
// if let rawValue = try? container.decodeIfPresent(type, forKey: .result) {
137-
// result = rawValue
138-
// break
139-
// }
140-
// }
141135
if let rawValue = try? container.decodeIfPresent(String.self, forKey: .result) {
142136
result = rawValue
143137
} else if let rawValue = try? container.decodeIfPresent(Int.self, forKey: .result) {

0 commit comments

Comments
 (0)