@@ -11,6 +11,25 @@ import PromiseKit
11
11
import BigInt
12
12
import Foundation
13
13
14
+ extension web3 . Eth {
15
+ public func getLatestPendingTransactions( forDelegate delegate: Web3SocketDelegate ) throws {
16
+ var infuraWSProvider : InfuraWebsocketProvider
17
+ if !( provider is InfuraWebsocketProvider ) {
18
+ guard let infuraNetwork = provider. network else {
19
+ throw Web3Error . processingError ( desc: " Wrong network " )
20
+ }
21
+ guard let infuraProvider = InfuraWebsocketProvider ( infuraNetwork, delegate: delegate, keystoreManager: provider. attachedKeystoreManager) else {
22
+ throw Web3Error . processingError ( desc: " Wrong network " )
23
+ }
24
+ infuraWSProvider = infuraProvider
25
+ } else {
26
+ infuraWSProvider = provider as! InfuraWebsocketProvider
27
+ }
28
+ infuraWSProvider. connectSocket ( )
29
+ try infuraWSProvider. subscribeOn ( method: . newPendingTransactionFilter)
30
+ }
31
+ }
32
+
14
33
public protocol IWebsocketProvider {
15
34
var socket : WebSocket { get }
16
35
var delegate : Web3SocketDelegate { get set }
@@ -77,7 +96,7 @@ public final class InfuraWebsocketProvider: WebsocketProvider {
77
96
78
97
public init ? ( _ network: Networks ,
79
98
delegate: Web3SocketDelegate ,
80
- keystoreManager manager: KeystoreManager ? ) {
99
+ keystoreManager manager: KeystoreManager ? = nil ) {
81
100
guard network == Networks . Kovan
82
101
|| network == Networks . Rinkeby
83
102
|| network == Networks . Ropsten
@@ -92,7 +111,7 @@ public final class InfuraWebsocketProvider: WebsocketProvider {
92
111
93
112
public static func connectToSocket( _ network: Networks ,
94
113
delegate: Web3SocketDelegate ,
95
- keystoreManager manager: KeystoreManager ? ) -> InfuraWebsocketProvider ? {
114
+ keystoreManager manager: KeystoreManager ? = nil ) -> InfuraWebsocketProvider ? {
96
115
guard let socketProvider = InfuraWebsocketProvider ( network,
97
116
delegate: delegate,
98
117
keystoreManager: manager) else { return nil }
@@ -175,7 +194,7 @@ public class WebsocketProvider: Web3Provider, IWebsocketProvider, WebSocketDeleg
175
194
176
195
public init ( endpoint: URL ,
177
196
delegate wsdelegate: Web3SocketDelegate ,
178
- keystoreManager manager: KeystoreManager ? ,
197
+ keystoreManager manager: KeystoreManager ? = nil ,
179
198
network net: Networks ? = nil ) {
180
199
delegate = wsdelegate
181
200
attachedKeystoreManager = manager
@@ -209,10 +228,12 @@ public class WebsocketProvider: Web3Provider, IWebsocketProvider, WebSocketDeleg
209
228
210
229
public static func connectToSocket( endpoint: URL ,
211
230
delegate: Web3SocketDelegate ,
212
- keystoreManager manager: KeystoreManager ? ) -> WebsocketProvider {
231
+ keystoreManager manager: KeystoreManager ? = nil ,
232
+ network net: Networks ? = nil ) -> WebsocketProvider {
213
233
let socketProvider = WebsocketProvider ( endpoint: endpoint,
214
234
delegate: delegate,
215
- keystoreManager: manager)
235
+ keystoreManager: manager,
236
+ network: net)
216
237
socketProvider. connectSocket ( )
217
238
return socketProvider
218
239
}
0 commit comments