@@ -9,15 +9,15 @@ import BigInt
9
9
public struct ABIDecoder { }
10
10
11
11
extension ABIDecoder {
12
- public static func decode( types: [ ABI . Element . InOut ] , data: Data ) -> [ AnyObject ] ? {
12
+ public static func decode( types: [ ABI . Element . InOut ] , data: Data ) -> [ Any ] ? {
13
13
let params = types. compactMap { el -> ABI . Element . ParameterType in
14
14
return el. type
15
15
}
16
16
return decode ( types: params, data: data)
17
17
}
18
18
19
- public static func decode( types: [ ABI . Element . ParameterType ] , data: Data ) -> [ AnyObject ] ? {
20
- var toReturn = [ AnyObject ] ( )
19
+ public static func decode( types: [ ABI . Element . ParameterType ] , data: Data ) -> [ Any ] ? {
20
+ var toReturn = [ Any ] ( )
21
21
var consumed : UInt64 = 0
22
22
for i in 0 ..< types. count {
23
23
let ( v, c) = decodeSingleType ( type: types [ i] , data: data, pointer: consumed)
@@ -29,7 +29,7 @@ extension ABIDecoder {
29
29
return toReturn
30
30
}
31
31
32
- public static func decodeSingleType( type: ABI . Element . ParameterType , data: Data , pointer: UInt64 = 0 ) -> ( value: AnyObject ? , bytesConsumed: UInt64 ? ) {
32
+ public static func decodeSingleType( type: ABI . Element . ParameterType , data: Data , pointer: UInt64 = 0 ) -> ( value: Any ? , bytesConsumed: UInt64 ? ) {
33
33
let ( elData, nextPtr) = followTheData ( type: type, data: data, pointer: pointer)
34
34
guard let elementItself = elData, let nextElementPointer = nextPtr else {
35
35
return ( nil , nil )
@@ -40,18 +40,18 @@ extension ABIDecoder {
40
40
let mod = BigUInt ( 1 ) << bits
41
41
let dataSlice = elementItself [ 0 ..< 32 ]
42
42
let v = BigUInt ( dataSlice) % mod
43
- return ( v as AnyObject , type. memoryUsage)
43
+ return ( v, type. memoryUsage)
44
44
case . int( let bits) :
45
45
guard elementItself. count >= 32 else { break }
46
46
let mod = BigInt ( 1 ) << bits
47
47
let dataSlice = elementItself [ 0 ..< 32 ]
48
48
let v = BigInt . fromTwosComplement ( data: dataSlice) % mod
49
- return ( v as AnyObject , type. memoryUsage)
49
+ return ( v, type. memoryUsage)
50
50
case . address:
51
51
guard elementItself. count >= 32 else { break }
52
52
let dataSlice = elementItself [ 12 ..< 32 ]
53
53
let address = EthereumAddress ( dataSlice)
54
- return ( address as AnyObject , type. memoryUsage)
54
+ return ( address, type. memoryUsage)
55
55
case . bool:
56
56
guard elementItself. count >= 32 else { break }
57
57
let dataSlice = elementItself [ 0 ..< 32 ]
@@ -60,32 +60,32 @@ extension ABIDecoder {
60
60
v == BigUInt ( 32 ) ||
61
61
v == BigUInt ( 28 ) ||
62
62
v == BigUInt ( 1 ) {
63
- return ( true as AnyObject , type. memoryUsage)
63
+ return ( true , type. memoryUsage)
64
64
} else if v == BigUInt ( 35 ) ||
65
65
v == BigUInt ( 31 ) ||
66
66
v == BigUInt ( 27 ) ||
67
67
v == BigUInt ( 0 ) {
68
- return ( false as AnyObject , type. memoryUsage)
68
+ return ( false , type. memoryUsage)
69
69
}
70
70
case . bytes( let length) :
71
71
guard elementItself. count >= 32 else { break }
72
72
let dataSlice = elementItself [ 0 ..< length]
73
- return ( dataSlice as AnyObject , type. memoryUsage)
73
+ return ( dataSlice, type. memoryUsage)
74
74
case . string:
75
75
guard elementItself. count >= 32 else { break }
76
76
var dataSlice = elementItself [ 0 ..< 32 ]
77
77
let length = UInt64 ( BigUInt ( dataSlice) )
78
78
guard elementItself. count >= 32 + length else { break }
79
79
dataSlice = elementItself [ 32 ..< 32 + length]
80
80
guard let string = String ( data: dataSlice, encoding: . utf8) else { break }
81
- return ( string as AnyObject , type. memoryUsage)
81
+ return ( string, type. memoryUsage)
82
82
case . dynamicBytes:
83
83
guard elementItself. count >= 32 else { break }
84
84
var dataSlice = elementItself [ 0 ..< 32 ]
85
85
let length = UInt64 ( BigUInt ( dataSlice) )
86
86
guard elementItself. count >= 32 + length else { break }
87
87
dataSlice = elementItself [ 32 ..< 32 + length]
88
- return ( dataSlice as AnyObject , nextElementPointer)
88
+ return ( dataSlice, nextElementPointer)
89
89
case . array( type: let subType, length: let length) :
90
90
switch type. arraySize {
91
91
case . dynamicSize:
@@ -97,14 +97,14 @@ extension ABIDecoder {
97
97
guard elementItself. count >= 32 + subType. memoryUsage*length else { break }
98
98
dataSlice = elementItself [ 32 ..< 32 + subType. memoryUsage*length]
99
99
var subpointer : UInt64 = 32
100
- var toReturn = [ AnyObject ] ( )
100
+ var toReturn = [ Any ] ( )
101
101
for _ in 0 ..< length {
102
102
let ( v, c) = decodeSingleType ( type: subType, data: elementItself, pointer: subpointer)
103
103
guard let valueUnwrapped = v, let consumedUnwrapped = c else { break }
104
104
toReturn. append ( valueUnwrapped)
105
105
subpointer = subpointer + consumedUnwrapped
106
106
}
107
- return ( toReturn as AnyObject , type. memoryUsage)
107
+ return ( toReturn, type. memoryUsage)
108
108
} else {
109
109
// in principle is true for tuple[], so will work for string[] too
110
110
guard elementItself. count >= 32 else { break }
@@ -113,7 +113,7 @@ extension ABIDecoder {
113
113
guard elementItself. count >= 32 else { break }
114
114
dataSlice = Data ( elementItself [ 32 ..< elementItself. count] )
115
115
var subpointer : UInt64 = 0
116
- var toReturn = [ AnyObject ] ( )
116
+ var toReturn = [ Any ] ( )
117
117
for _ in 0 ..< length {
118
118
let ( v, c) = decodeSingleType ( type: subType, data: dataSlice, pointer: subpointer)
119
119
guard let valueUnwrapped = v, let consumedUnwrapped = c else { break }
@@ -124,11 +124,11 @@ extension ABIDecoder {
124
124
subpointer = consumedUnwrapped // need to go by nextElementPointer
125
125
}
126
126
}
127
- return ( toReturn as AnyObject , nextElementPointer)
127
+ return ( toReturn, nextElementPointer)
128
128
}
129
129
case . staticSize( let staticLength) :
130
130
guard length == staticLength else { break }
131
- var toReturn = [ AnyObject ] ( )
131
+ var toReturn = [ Any ] ( )
132
132
var consumed : UInt64 = 0
133
133
for _ in 0 ..< length {
134
134
let ( v, c) = decodeSingleType ( type: subType, data: elementItself, pointer: consumed)
@@ -137,15 +137,15 @@ extension ABIDecoder {
137
137
consumed = consumed + consumedUnwrapped
138
138
}
139
139
if subType. isStatic {
140
- return ( toReturn as AnyObject , consumed)
140
+ return ( toReturn, consumed)
141
141
} else {
142
- return ( toReturn as AnyObject , nextElementPointer)
142
+ return ( toReturn, nextElementPointer)
143
143
}
144
144
case . notArray:
145
145
break
146
146
}
147
147
case . tuple( types: let subTypes) :
148
- var toReturn = [ AnyObject ] ( )
148
+ var toReturn = [ Any ] ( )
149
149
var consumed : UInt64 = 0
150
150
for i in 0 ..< subTypes. count {
151
151
let ( v, c) = decodeSingleType ( type: subTypes [ i] , data: elementItself, pointer: consumed)
@@ -173,14 +173,14 @@ extension ABIDecoder {
173
173
}
174
174
}
175
175
if type. isStatic {
176
- return ( toReturn as AnyObject , consumed)
176
+ return ( toReturn, consumed)
177
177
} else {
178
- return ( toReturn as AnyObject , nextElementPointer)
178
+ return ( toReturn, nextElementPointer)
179
179
}
180
180
case . function:
181
181
guard elementItself. count >= 32 else { break }
182
182
let dataSlice = elementItself [ 8 ..< 32 ]
183
- return ( dataSlice as AnyObject , type. memoryUsage)
183
+ return ( dataSlice, type. memoryUsage)
184
184
}
185
185
return ( nil , nil )
186
186
}
@@ -236,7 +236,7 @@ extension ABIDecoder {
236
236
return inp. type
237
237
}
238
238
guard logs. count == indexedInputs. count + 1 else { return nil }
239
- var indexedValues = [ AnyObject ] ( )
239
+ var indexedValues = [ Any ] ( )
240
240
for i in 0 ..< indexedInputs. count {
241
241
let data = logs [ i+ 1 ]
242
242
let input = indexedInputs [ i]
0 commit comments