|
7 | 7 | import Foundation
|
8 | 8 | import Core
|
9 | 9 |
|
10 |
| -public struct EventFilter { |
11 |
| - public enum Block { |
12 |
| - case latest |
13 |
| - case pending |
14 |
| - case blockNumber(UInt) |
15 |
| - |
16 |
| - var encoded: String { |
17 |
| - switch self { |
18 |
| - case .latest: |
19 |
| - return "latest" |
20 |
| - case .pending: |
21 |
| - return "pending" |
22 |
| - case .blockNumber(let number): |
23 |
| - return String(number, radix: 16).addHexPrefix() |
24 |
| - } |
25 |
| - } |
26 |
| - } |
27 |
| - |
28 |
| - public init() { } |
29 |
| - |
30 |
| - public init(fromBlock: Block?, toBlock: Block?, |
31 |
| - addresses: [EthereumAddress]? = nil, |
32 |
| - parameterFilters: [[EventFilterable]?]? = nil) { |
33 |
| - self.fromBlock = fromBlock |
34 |
| - self.toBlock = toBlock |
35 |
| - self.addresses = addresses |
36 |
| - self.parameterFilters = parameterFilters |
37 |
| - } |
38 |
| - |
39 |
| - public var fromBlock: Block? |
40 |
| - public var toBlock: Block? |
41 |
| - public var addresses: [EthereumAddress]? |
42 |
| - public var parameterFilters: [[EventFilterable]?]? |
43 |
| - |
44 |
| - public func rpcPreEncode() -> EventFilterParameters { |
45 |
| - var encoding = EventFilterParameters() |
46 |
| - if self.fromBlock != nil { |
47 |
| - encoding.fromBlock = self.fromBlock!.encoded |
48 |
| - } |
49 |
| - if self.toBlock != nil { |
50 |
| - encoding.toBlock = self.toBlock!.encoded |
51 |
| - } |
52 |
| - if self.addresses != nil { |
53 |
| - if self.addresses!.count == 1 { |
54 |
| - encoding.address = [self.addresses![0].address] |
55 |
| - } else { |
56 |
| - var encodedAddresses = [String?]() |
57 |
| - for addr in self.addresses! { |
58 |
| - encodedAddresses.append(addr.address) |
59 |
| - } |
60 |
| - encoding.address = encodedAddresses |
61 |
| - } |
62 |
| - } |
63 |
| - return encoding |
64 |
| - } |
65 |
| -} |
66 |
| - |
67 |
| -// MARK: - Internal functions |
68 |
| - |
69 | 10 | public struct EventFilter {
|
70 | 11 | public enum Block {
|
71 | 12 | case latest
|
|
0 commit comments