@@ -21,30 +21,27 @@ extension Web3.Utils {
21
21
public var synchronizationPeriod : TimeInterval = 300.0 // 5 minutes
22
22
var lastSyncTime : Date = Date ( )
23
23
24
- public func functionToRun( ) {
24
+ public func functionToRun( ) async {
25
25
guard let w3 = self . web3 else { return }
26
- var allPromises = [ Promise < BigUInt > ] ( )
27
- allPromises. reserveCapacity ( self . nonceLookups. keys. count)
28
- let knownKeys = Array ( self . nonceLookups. keys)
29
- for k in knownKeys {
30
- let promise = w3. eth. getTransactionCountPromise ( address: k, onBlock: " latest " )
31
- allPromises. append ( promise)
32
- }
33
- when ( resolved: allPromises) . done ( on: w3. requestDispatcher. queue) { results in
34
- self . queue. async {
35
- var i = 0
36
- for res in results {
37
- switch res {
38
- case . fulfilled( let newNonce) :
39
- let key = knownKeys [ i]
40
- self . nonceLookups [ key] = newNonce
41
- i = i + 1
42
- default :
43
- i = i + 1
44
- }
26
+
27
+ let knownKeys = Array ( nonceLookups. keys)
28
+
29
+ await withTaskGroup ( of: BigUInt ? . self, returning: Void . self) { group -> Void in
30
+
31
+ knownKeys. forEach { key in
32
+ group. addTask {
33
+ try ? await w3. eth. getTransactionCountPromise ( address: key, onBlock: " latest " )
45
34
}
46
35
}
47
36
37
+ var i = 0
38
+
39
+ for await value in group {
40
+ let key = knownKeys [ i]
41
+ self . nonceLookups [ key] = value
42
+ i = i + 1
43
+ }
44
+
48
45
}
49
46
}
50
47
@@ -98,9 +95,9 @@ extension Web3.Utils {
98
95
public func attach( _ web3: web3 ) {
99
96
self . web3 = web3
100
97
web3. eventLoop. monitoredUserFunctions. append ( self )
101
- let preHook = AssemblyHook ( queue : web3 . requestDispatcher . queue , function: self . preAssemblyFunction)
98
+ let preHook = AssemblyHook ( function: self . preAssemblyFunction)
102
99
web3. preAssemblyHooks. append ( preHook)
103
- let postHook = SubmissionResultHook ( queue : web3 . requestDispatcher . queue , function: self . postSubmissionFunction)
100
+ let postHook = SubmissionResultHook ( function: self . postSubmissionFunction)
104
101
web3. postSubmissionHooks. append ( postHook)
105
102
}
106
103
0 commit comments