@@ -31,7 +31,7 @@ public struct ABIv2Decoder {
31
31
/// - data: Data to decode
32
32
/// - Returns: Array of decoded types
33
33
public static func decode( types: [ ABIv2 . Element . ParameterType ] , data: Data ) -> [ AnyObject ] ? {
34
- // print("Full data: \n" + data.toHexString() )
34
+ // print("Full data: \n" + data.hex )
35
35
var toReturn = [ AnyObject] ( )
36
36
var consumed : UInt64 = 0
37
37
for i in 0 ..< types. count {
@@ -59,30 +59,30 @@ public struct ABIv2Decoder {
59
59
}
60
60
switch type {
61
61
case let . uint( bits) :
62
- // print("Uint256 element itself: \n" + elementItself.toHexString() )
62
+ // print("Uint256 element itself: \n" + elementItself.hex )
63
63
guard elementItself. count >= 32 else { break }
64
64
let mod = BigUInt ( 1 ) << bits
65
65
let dataSlice = elementItself [ 0 ..< 32 ]
66
66
let v = BigUInt ( dataSlice) % mod
67
67
// print("Uint256 element is: \n" + String(v))
68
68
return ( v as AnyObject , type. memoryUsage)
69
69
case let . int( bits) :
70
- // print("Int256 element itself: \n" + elementItself.toHexString() )
70
+ // print("Int256 element itself: \n" + elementItself.hex )
71
71
guard elementItself. count >= 32 else { break }
72
72
let mod = BigInt ( 1 ) << bits
73
73
let dataSlice = elementItself [ 0 ..< 32 ]
74
74
let v = BigInt . fromTwosComplement ( data: dataSlice) % mod
75
75
// print("Int256 element is: \n" + String(v))
76
76
return ( v as AnyObject , type. memoryUsage)
77
77
case . address:
78
- // print("Address element itself: \n" + elementItself.toHexString() )
78
+ // print("Address element itself: \n" + elementItself.hex )
79
79
guard elementItself. count >= 32 else { break }
80
80
let dataSlice = elementItself [ 12 ..< 32 ]
81
81
let address = Address ( dataSlice)
82
82
// print("Address element is: \n" + String(address.address))
83
83
return ( address as AnyObject , type. memoryUsage)
84
84
case . bool:
85
- // print("Bool element itself: \n" + elementItself.toHexString() )
85
+ // print("Bool element itself: \n" + elementItself.hex )
86
86
guard elementItself. count >= 32 else { break }
87
87
let dataSlice = elementItself [ 0 ..< 32 ]
88
88
let v = BigUInt ( dataSlice)
@@ -93,13 +93,13 @@ public struct ABIv2Decoder {
93
93
return ( false as AnyObject , type. memoryUsage)
94
94
}
95
95
case let . bytes( length) :
96
- // print("Bytes32 element itself: \n" + elementItself.toHexString() )
96
+ // print("Bytes32 element itself: \n" + elementItself.hex )
97
97
guard elementItself. count >= 32 else { break }
98
98
let dataSlice = elementItself [ 0 ..< length]
99
- // print("Bytes32 element is: \n" + String(dataSlice.toHexString() ))
99
+ // print("Bytes32 element is: \n" + String(dataSlice.hex ))
100
100
return ( dataSlice as AnyObject , type. memoryUsage)
101
101
case . string:
102
- // print("String element itself: \n" + elementItself.toHexString() )
102
+ // print("String element itself: \n" + elementItself.hex )
103
103
guard elementItself. count >= 32 else { break }
104
104
var dataSlice = elementItself [ 0 ..< 32 ]
105
105
let length = UInt64 ( BigUInt ( dataSlice) )
@@ -109,18 +109,18 @@ public struct ABIv2Decoder {
109
109
// print("String element is: \n" + String(string))
110
110
return ( string as AnyObject , type. memoryUsage)
111
111
case . dynamicBytes:
112
- // print("Bytes element itself: \n" + elementItself.toHexString() )
112
+ // print("Bytes element itself: \n" + elementItself.hex )
113
113
guard elementItself. count >= 32 else { break }
114
114
var dataSlice = elementItself [ 0 ..< 32 ]
115
115
let length = UInt64 ( BigUInt ( dataSlice) )
116
116
guard elementItself. count >= 32 + length else { break }
117
117
dataSlice = elementItself [ 32 ..< 32 + length]
118
- // print("Bytes element is: \n" + String(dataSlice.toHexString() ))
118
+ // print("Bytes element is: \n" + String(dataSlice.hex ))
119
119
return ( dataSlice as AnyObject , type. memoryUsage)
120
120
case let . array( type: subType, length: length) :
121
121
switch type. arraySize {
122
122
case . dynamicSize:
123
- // print("Dynamic array element itself: \n" + elementItself.toHexString() )
123
+ // print("Dynamic array element itself: \n" + elementItself.hex )
124
124
if subType. isStatic {
125
125
// uint[] like, expect length and elements
126
126
guard elementItself. count >= 32 else { break }
@@ -146,7 +146,7 @@ public struct ABIv2Decoder {
146
146
dataSlice = Data ( elementItself [ 32 ..< elementItself. count] )
147
147
var subpointer : UInt64 = 0
148
148
var toReturn = [ AnyObject] ( )
149
- // print("Dynamic array sub element itself: \n" + dataSlice.toHexString() )
149
+ // print("Dynamic array sub element itself: \n" + dataSlice.hex )
150
150
for _ in 0 ..< length {
151
151
let ( v, c) = decodeSignleType ( type: subType, data: dataSlice, pointer: subpointer)
152
152
guard let valueUnwrapped = v, let consumedUnwrapped = c else { break }
@@ -156,7 +156,7 @@ public struct ABIv2Decoder {
156
156
return ( toReturn as AnyObject , nextElementPointer)
157
157
}
158
158
case let . staticSize( staticLength) :
159
- // print("Static array element itself: \n" + elementItself.toHexString() )
159
+ // print("Static array element itself: \n" + elementItself.hex )
160
160
guard length == staticLength else { break }
161
161
var toReturn = [ AnyObject] ( )
162
162
var consumed : UInt64 = 0
@@ -175,7 +175,7 @@ public struct ABIv2Decoder {
175
175
break
176
176
}
177
177
case let . tuple( types: subTypes) :
178
- // print("Tuple element itself: \n" + elementItself.toHexString() )
178
+ // print("Tuple element itself: \n" + elementItself.hex )
179
179
var toReturn = [ AnyObject] ( )
180
180
var consumed : UInt64 = 0
181
181
for i in 0 ..< subTypes. count {
@@ -191,23 +191,23 @@ public struct ABIv2Decoder {
191
191
return ( toReturn as AnyObject , nextElementPointer)
192
192
}
193
193
case . function:
194
- // print("Function element itself: \n" + elementItself.toHexString() )
194
+ // print("Function element itself: \n" + elementItself.hex )
195
195
guard elementItself. count >= 32 else { break }
196
196
let dataSlice = elementItself [ 8 ..< 32 ]
197
- // print("Function element is: \n" + String(dataSlice.toHexString() ))
197
+ // print("Function element is: \n" + String(dataSlice.hex ))
198
198
return ( dataSlice as AnyObject , type. memoryUsage)
199
199
}
200
200
return ( nil , nil )
201
201
}
202
202
203
203
fileprivate static func followTheData( type: ABIv2 . Element . ParameterType , data: Data , pointer: UInt64 = 0 ) -> ( elementEncoding: Data ? , nextElementPointer: UInt64 ? ) {
204
- // print("Follow the data: \n" + data.toHexString() )
204
+ // print("Follow the data: \n" + data.hex )
205
205
// print("At pointer: \n" + String(pointer))
206
206
if type. isStatic {
207
207
guard data. count >= pointer + type. memoryUsage else { return ( nil , nil ) }
208
208
let elementItself = data [ pointer ..< pointer + type. memoryUsage]
209
209
let nextElement = pointer + type. memoryUsage
210
- // print("Got element itself: \n" + elementItself.toHexString() )
210
+ // print("Got element itself: \n" + elementItself.hex )
211
211
// print("Next element pointer: \n" + String(nextElement))
212
212
return ( Data ( elementItself) , nextElement)
213
213
} else {
@@ -230,7 +230,7 @@ public struct ABIv2Decoder {
230
230
let elementPointer = UInt64 ( bn)
231
231
let elementItself = data [ elementPointer ..< UInt64 ( data. count) ]
232
232
let nextElement = pointer + type. memoryUsage
233
- // print("Got element itself: \n" + elementItself.toHexString() )
233
+ // print("Got element itself: \n" + elementItself.hex )
234
234
// print("Next element pointer: \n" + String(nextElement))
235
235
return ( Data ( elementItself) , nextElement)
236
236
}
0 commit comments