Initial checkin
[ldk-swift-linux] / LDKSwift / Sources / LDKSwift / Bindings.swift
1 //
2 //  Bindings.swift
3 //  LDKSwiftARC
4 //
5 //  Created by Arik Sosman on 3/23/21.
6 //
7
8 import LDKCHeaders
9 import Foundation
10
11 public typealias LDKTransactionOutputs = LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ
12 public typealias LDKTxid = LDKThirtyTwoBytes
13
14 public class Bindings{
15
16         /* BYTE_ARRAY_METHODS_START */
17
18         public class func new_LDKSignature(array: [UInt8]) -> LDKSignature {
19                 let byteType = LDKSignature(compact_form: (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63]))
20                 return byteType
21         }
22
23         public class func LDKSignature_to_array(nativeType: LDKSignature) -> [UInt8] {
24                 let array = [nativeType.compact_form.0, nativeType.compact_form.1, nativeType.compact_form.2, nativeType.compact_form.3, nativeType.compact_form.4, nativeType.compact_form.5, nativeType.compact_form.6, nativeType.compact_form.7, nativeType.compact_form.8, nativeType.compact_form.9, nativeType.compact_form.10, nativeType.compact_form.11, nativeType.compact_form.12, nativeType.compact_form.13, nativeType.compact_form.14, nativeType.compact_form.15, nativeType.compact_form.16, nativeType.compact_form.17, nativeType.compact_form.18, nativeType.compact_form.19, nativeType.compact_form.20, nativeType.compact_form.21, nativeType.compact_form.22, nativeType.compact_form.23, nativeType.compact_form.24, nativeType.compact_form.25, nativeType.compact_form.26, nativeType.compact_form.27, nativeType.compact_form.28, nativeType.compact_form.29, nativeType.compact_form.30, nativeType.compact_form.31, nativeType.compact_form.32, nativeType.compact_form.33, nativeType.compact_form.34, nativeType.compact_form.35, nativeType.compact_form.36, nativeType.compact_form.37, nativeType.compact_form.38, nativeType.compact_form.39, nativeType.compact_form.40, nativeType.compact_form.41, nativeType.compact_form.42, nativeType.compact_form.43, nativeType.compact_form.44, nativeType.compact_form.45, nativeType.compact_form.46, nativeType.compact_form.47, nativeType.compact_form.48, nativeType.compact_form.49, nativeType.compact_form.50, nativeType.compact_form.51, nativeType.compact_form.52, nativeType.compact_form.53, nativeType.compact_form.54, nativeType.compact_form.55, nativeType.compact_form.56, nativeType.compact_form.57, nativeType.compact_form.58, nativeType.compact_form.59, nativeType.compact_form.60, nativeType.compact_form.61, nativeType.compact_form.62, nativeType.compact_form.63]
25                 return array
26         }
27
28                         static func array_to_tuple64(array: [UInt8]) -> (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8) {
29                         return (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63])
30                         }
31
32                 static func tuple64_to_array(nativeType: (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)) -> [UInt8] {
33                                 let array = [nativeType.0, nativeType.1, nativeType.2, nativeType.3, nativeType.4, nativeType.5, nativeType.6, nativeType.7, nativeType.8, nativeType.9, nativeType.10, nativeType.11, nativeType.12, nativeType.13, nativeType.14, nativeType.15, nativeType.16, nativeType.17, nativeType.18, nativeType.19, nativeType.20, nativeType.21, nativeType.22, nativeType.23, nativeType.24, nativeType.25, nativeType.26, nativeType.27, nativeType.28, nativeType.29, nativeType.30, nativeType.31, nativeType.32, nativeType.33, nativeType.34, nativeType.35, nativeType.36, nativeType.37, nativeType.38, nativeType.39, nativeType.40, nativeType.41, nativeType.42, nativeType.43, nativeType.44, nativeType.45, nativeType.46, nativeType.47, nativeType.48, nativeType.49, nativeType.50, nativeType.51, nativeType.52, nativeType.53, nativeType.54, nativeType.55, nativeType.56, nativeType.57, nativeType.58, nativeType.59, nativeType.60, nativeType.61, nativeType.62, nativeType.63]
34                                 return array
35                         }
36                         
37
38         public class func new_LDKTenBytes(array: [UInt8]) -> LDKTenBytes {
39                 let byteType = LDKTenBytes(data: (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9]))
40                 return byteType
41         }
42
43         public class func LDKTenBytes_to_array(nativeType: LDKTenBytes) -> [UInt8] {
44                 let array = [nativeType.data.0, nativeType.data.1, nativeType.data.2, nativeType.data.3, nativeType.data.4, nativeType.data.5, nativeType.data.6, nativeType.data.7, nativeType.data.8, nativeType.data.9]
45                 return array
46         }
47
48                         static func array_to_tuple10(array: [UInt8]) -> (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8) {
49                         return (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9])
50                         }
51
52                 static func tuple10_to_array(nativeType: (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)) -> [UInt8] {
53                                 let array = [nativeType.0, nativeType.1, nativeType.2, nativeType.3, nativeType.4, nativeType.5, nativeType.6, nativeType.7, nativeType.8, nativeType.9]
54                                 return array
55                         }
56                         
57
58         public class func new_LDKPublicKey(array: [UInt8]) -> LDKPublicKey {
59                 let byteType = LDKPublicKey(compressed_form: (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32]))
60                 return byteType
61         }
62
63         public class func LDKPublicKey_to_array(nativeType: LDKPublicKey) -> [UInt8] {
64                 let array = [nativeType.compressed_form.0, nativeType.compressed_form.1, nativeType.compressed_form.2, nativeType.compressed_form.3, nativeType.compressed_form.4, nativeType.compressed_form.5, nativeType.compressed_form.6, nativeType.compressed_form.7, nativeType.compressed_form.8, nativeType.compressed_form.9, nativeType.compressed_form.10, nativeType.compressed_form.11, nativeType.compressed_form.12, nativeType.compressed_form.13, nativeType.compressed_form.14, nativeType.compressed_form.15, nativeType.compressed_form.16, nativeType.compressed_form.17, nativeType.compressed_form.18, nativeType.compressed_form.19, nativeType.compressed_form.20, nativeType.compressed_form.21, nativeType.compressed_form.22, nativeType.compressed_form.23, nativeType.compressed_form.24, nativeType.compressed_form.25, nativeType.compressed_form.26, nativeType.compressed_form.27, nativeType.compressed_form.28, nativeType.compressed_form.29, nativeType.compressed_form.30, nativeType.compressed_form.31, nativeType.compressed_form.32]
65                 return array
66         }
67
68                         static func array_to_tuple33(array: [UInt8]) -> (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8) {
69                         return (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32])
70                         }
71
72                 static func tuple33_to_array(nativeType: (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)) -> [UInt8] {
73                                 let array = [nativeType.0, nativeType.1, nativeType.2, nativeType.3, nativeType.4, nativeType.5, nativeType.6, nativeType.7, nativeType.8, nativeType.9, nativeType.10, nativeType.11, nativeType.12, nativeType.13, nativeType.14, nativeType.15, nativeType.16, nativeType.17, nativeType.18, nativeType.19, nativeType.20, nativeType.21, nativeType.22, nativeType.23, nativeType.24, nativeType.25, nativeType.26, nativeType.27, nativeType.28, nativeType.29, nativeType.30, nativeType.31, nativeType.32]
74                                 return array
75                         }
76                         
77
78         public class func new_LDKThreeBytes(array: [UInt8]) -> LDKThreeBytes {
79                 let byteType = LDKThreeBytes(data: (array[0], array[1], array[2]))
80                 return byteType
81         }
82
83         public class func LDKThreeBytes_to_array(nativeType: LDKThreeBytes) -> [UInt8] {
84                 let array = [nativeType.data.0, nativeType.data.1, nativeType.data.2]
85                 return array
86         }
87
88                         static func array_to_tuple3(array: [UInt8]) -> (UInt8,UInt8,UInt8) {
89                         return (array[0], array[1], array[2])
90                         }
91
92                 static func tuple3_to_array(nativeType: (UInt8,UInt8,UInt8)) -> [UInt8] {
93                                 let array = [nativeType.0, nativeType.1, nativeType.2]
94                                 return array
95                         }
96                         
97
98         public class func new_LDKThirtyTwoBytes(array: [UInt8]) -> LDKThirtyTwoBytes {
99                 let byteType = LDKThirtyTwoBytes(data: (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31]))
100                 return byteType
101         }
102
103         public class func LDKThirtyTwoBytes_to_array(nativeType: LDKThirtyTwoBytes) -> [UInt8] {
104                 let array = [nativeType.data.0, nativeType.data.1, nativeType.data.2, nativeType.data.3, nativeType.data.4, nativeType.data.5, nativeType.data.6, nativeType.data.7, nativeType.data.8, nativeType.data.9, nativeType.data.10, nativeType.data.11, nativeType.data.12, nativeType.data.13, nativeType.data.14, nativeType.data.15, nativeType.data.16, nativeType.data.17, nativeType.data.18, nativeType.data.19, nativeType.data.20, nativeType.data.21, nativeType.data.22, nativeType.data.23, nativeType.data.24, nativeType.data.25, nativeType.data.26, nativeType.data.27, nativeType.data.28, nativeType.data.29, nativeType.data.30, nativeType.data.31]
105                 return array
106         }
107
108                         static func array_to_tuple32(array: [UInt8]) -> (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8) {
109                         return (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31])
110                         }
111
112                 static func tuple32_to_array(nativeType: (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)) -> [UInt8] {
113                                 let array = [nativeType.0, nativeType.1, nativeType.2, nativeType.3, nativeType.4, nativeType.5, nativeType.6, nativeType.7, nativeType.8, nativeType.9, nativeType.10, nativeType.11, nativeType.12, nativeType.13, nativeType.14, nativeType.15, nativeType.16, nativeType.17, nativeType.18, nativeType.19, nativeType.20, nativeType.21, nativeType.22, nativeType.23, nativeType.24, nativeType.25, nativeType.26, nativeType.27, nativeType.28, nativeType.29, nativeType.30, nativeType.31]
114                                 return array
115                         }
116                         
117
118         public class func new_LDKTwentyBytes(array: [UInt8]) -> LDKTwentyBytes {
119                 let byteType = LDKTwentyBytes(data: (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19]))
120                 return byteType
121         }
122
123         public class func LDKTwentyBytes_to_array(nativeType: LDKTwentyBytes) -> [UInt8] {
124                 let array = [nativeType.data.0, nativeType.data.1, nativeType.data.2, nativeType.data.3, nativeType.data.4, nativeType.data.5, nativeType.data.6, nativeType.data.7, nativeType.data.8, nativeType.data.9, nativeType.data.10, nativeType.data.11, nativeType.data.12, nativeType.data.13, nativeType.data.14, nativeType.data.15, nativeType.data.16, nativeType.data.17, nativeType.data.18, nativeType.data.19]
125                 return array
126         }
127
128                         static func array_to_tuple20(array: [UInt8]) -> (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8) {
129                         return (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19])
130                         }
131
132                 static func tuple20_to_array(nativeType: (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)) -> [UInt8] {
133                                 let array = [nativeType.0, nativeType.1, nativeType.2, nativeType.3, nativeType.4, nativeType.5, nativeType.6, nativeType.7, nativeType.8, nativeType.9, nativeType.10, nativeType.11, nativeType.12, nativeType.13, nativeType.14, nativeType.15, nativeType.16, nativeType.17, nativeType.18, nativeType.19]
134                                 return array
135                         }
136                         
137
138         public class func new_LDKSixteenBytes(array: [UInt8]) -> LDKSixteenBytes {
139                 let byteType = LDKSixteenBytes(data: (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15]))
140                 return byteType
141         }
142
143         public class func LDKSixteenBytes_to_array(nativeType: LDKSixteenBytes) -> [UInt8] {
144                 let array = [nativeType.data.0, nativeType.data.1, nativeType.data.2, nativeType.data.3, nativeType.data.4, nativeType.data.5, nativeType.data.6, nativeType.data.7, nativeType.data.8, nativeType.data.9, nativeType.data.10, nativeType.data.11, nativeType.data.12, nativeType.data.13, nativeType.data.14, nativeType.data.15]
145                 return array
146         }
147
148                         static func array_to_tuple16(array: [UInt8]) -> (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8) {
149                         return (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15])
150                         }
151
152                 static func tuple16_to_array(nativeType: (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)) -> [UInt8] {
153                                 let array = [nativeType.0, nativeType.1, nativeType.2, nativeType.3, nativeType.4, nativeType.5, nativeType.6, nativeType.7, nativeType.8, nativeType.9, nativeType.10, nativeType.11, nativeType.12, nativeType.13, nativeType.14, nativeType.15]
154                                 return array
155                         }
156                         
157
158         public class func new_LDKRecoverableSignature(array: [UInt8]) -> LDKRecoverableSignature {
159                 let byteType = LDKRecoverableSignature(serialized_form: (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67]))
160                 return byteType
161         }
162
163         public class func LDKRecoverableSignature_to_array(nativeType: LDKRecoverableSignature) -> [UInt8] {
164                 let array = [nativeType.serialized_form.0, nativeType.serialized_form.1, nativeType.serialized_form.2, nativeType.serialized_form.3, nativeType.serialized_form.4, nativeType.serialized_form.5, nativeType.serialized_form.6, nativeType.serialized_form.7, nativeType.serialized_form.8, nativeType.serialized_form.9, nativeType.serialized_form.10, nativeType.serialized_form.11, nativeType.serialized_form.12, nativeType.serialized_form.13, nativeType.serialized_form.14, nativeType.serialized_form.15, nativeType.serialized_form.16, nativeType.serialized_form.17, nativeType.serialized_form.18, nativeType.serialized_form.19, nativeType.serialized_form.20, nativeType.serialized_form.21, nativeType.serialized_form.22, nativeType.serialized_form.23, nativeType.serialized_form.24, nativeType.serialized_form.25, nativeType.serialized_form.26, nativeType.serialized_form.27, nativeType.serialized_form.28, nativeType.serialized_form.29, nativeType.serialized_form.30, nativeType.serialized_form.31, nativeType.serialized_form.32, nativeType.serialized_form.33, nativeType.serialized_form.34, nativeType.serialized_form.35, nativeType.serialized_form.36, nativeType.serialized_form.37, nativeType.serialized_form.38, nativeType.serialized_form.39, nativeType.serialized_form.40, nativeType.serialized_form.41, nativeType.serialized_form.42, nativeType.serialized_form.43, nativeType.serialized_form.44, nativeType.serialized_form.45, nativeType.serialized_form.46, nativeType.serialized_form.47, nativeType.serialized_form.48, nativeType.serialized_form.49, nativeType.serialized_form.50, nativeType.serialized_form.51, nativeType.serialized_form.52, nativeType.serialized_form.53, nativeType.serialized_form.54, nativeType.serialized_form.55, nativeType.serialized_form.56, nativeType.serialized_form.57, nativeType.serialized_form.58, nativeType.serialized_form.59, nativeType.serialized_form.60, nativeType.serialized_form.61, nativeType.serialized_form.62, nativeType.serialized_form.63, nativeType.serialized_form.64, nativeType.serialized_form.65, nativeType.serialized_form.66, nativeType.serialized_form.67]
165                 return array
166         }
167
168                         static func array_to_tuple68(array: [UInt8]) -> (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8) {
169                         return (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67])
170                         }
171
172                 static func tuple68_to_array(nativeType: (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)) -> [UInt8] {
173                                 let array = [nativeType.0, nativeType.1, nativeType.2, nativeType.3, nativeType.4, nativeType.5, nativeType.6, nativeType.7, nativeType.8, nativeType.9, nativeType.10, nativeType.11, nativeType.12, nativeType.13, nativeType.14, nativeType.15, nativeType.16, nativeType.17, nativeType.18, nativeType.19, nativeType.20, nativeType.21, nativeType.22, nativeType.23, nativeType.24, nativeType.25, nativeType.26, nativeType.27, nativeType.28, nativeType.29, nativeType.30, nativeType.31, nativeType.32, nativeType.33, nativeType.34, nativeType.35, nativeType.36, nativeType.37, nativeType.38, nativeType.39, nativeType.40, nativeType.41, nativeType.42, nativeType.43, nativeType.44, nativeType.45, nativeType.46, nativeType.47, nativeType.48, nativeType.49, nativeType.50, nativeType.51, nativeType.52, nativeType.53, nativeType.54, nativeType.55, nativeType.56, nativeType.57, nativeType.58, nativeType.59, nativeType.60, nativeType.61, nativeType.62, nativeType.63, nativeType.64, nativeType.65, nativeType.66, nativeType.67]
174                                 return array
175                         }
176                         
177
178         public class func new_LDKFourBytes(array: [UInt8]) -> LDKFourBytes {
179                 let byteType = LDKFourBytes(data: (array[0], array[1], array[2], array[3]))
180                 return byteType
181         }
182
183         public class func LDKFourBytes_to_array(nativeType: LDKFourBytes) -> [UInt8] {
184                 let array = [nativeType.data.0, nativeType.data.1, nativeType.data.2, nativeType.data.3]
185                 return array
186         }
187
188                         static func array_to_tuple4(array: [UInt8]) -> (UInt8,UInt8,UInt8,UInt8) {
189                         return (array[0], array[1], array[2], array[3])
190                         }
191
192                 static func tuple4_to_array(nativeType: (UInt8,UInt8,UInt8,UInt8)) -> [UInt8] {
193                                 let array = [nativeType.0, nativeType.1, nativeType.2, nativeType.3]
194                                 return array
195                         }
196                         
197
198         public class func new_LDKSecretKey(array: [UInt8]) -> LDKSecretKey {
199                 let byteType = LDKSecretKey(bytes: (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31]))
200                 return byteType
201         }
202
203         public class func LDKSecretKey_to_array(nativeType: LDKSecretKey) -> [UInt8] {
204                 let array = [nativeType.bytes.0, nativeType.bytes.1, nativeType.bytes.2, nativeType.bytes.3, nativeType.bytes.4, nativeType.bytes.5, nativeType.bytes.6, nativeType.bytes.7, nativeType.bytes.8, nativeType.bytes.9, nativeType.bytes.10, nativeType.bytes.11, nativeType.bytes.12, nativeType.bytes.13, nativeType.bytes.14, nativeType.bytes.15, nativeType.bytes.16, nativeType.bytes.17, nativeType.bytes.18, nativeType.bytes.19, nativeType.bytes.20, nativeType.bytes.21, nativeType.bytes.22, nativeType.bytes.23, nativeType.bytes.24, nativeType.bytes.25, nativeType.bytes.26, nativeType.bytes.27, nativeType.bytes.28, nativeType.bytes.29, nativeType.bytes.30, nativeType.bytes.31]
205                 return array
206         }
207
208                         public class func array_to_tuple80(array: [UInt8]) -> (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8) {
209                                 return (array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70], array[71], array[72], array[73], array[74], array[75], array[76], array[77], array[78], array[79])
210                         }
211         
212                         public class func tuple80_to_array(nativeType: (UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)) -> [UInt8] {
213                                 let array = [nativeType.0, nativeType.1, nativeType.2, nativeType.3, nativeType.4, nativeType.5, nativeType.6, nativeType.7, nativeType.8, nativeType.9, nativeType.10, nativeType.11, nativeType.12, nativeType.13, nativeType.14, nativeType.15, nativeType.16, nativeType.17, nativeType.18, nativeType.19, nativeType.20, nativeType.21, nativeType.22, nativeType.23, nativeType.24, nativeType.25, nativeType.26, nativeType.27, nativeType.28, nativeType.29, nativeType.30, nativeType.31, nativeType.32, nativeType.33, nativeType.34, nativeType.35, nativeType.36, nativeType.37, nativeType.38, nativeType.39, nativeType.40, nativeType.41, nativeType.42, nativeType.43, nativeType.44, nativeType.45, nativeType.46, nativeType.47, nativeType.48, nativeType.49, nativeType.50, nativeType.51, nativeType.52, nativeType.53, nativeType.54, nativeType.55, nativeType.56, nativeType.57, nativeType.58, nativeType.59, nativeType.60, nativeType.61, nativeType.62, nativeType.63, nativeType.64, nativeType.65, nativeType.66, nativeType.67, nativeType.68, nativeType.69, nativeType.70, nativeType.71, nativeType.72, nativeType.73, nativeType.74, nativeType.75, nativeType.76, nativeType.77, nativeType.78, nativeType.79]
214                                 return array
215                         }
216                 
217
218         /* BYTE_ARRAY_METHODS_END */
219
220         /* VECTOR_METHODS_START */
221
222         /* SWIFT_TO_RUST_START */
223         public class func new_LDKCVec_MonitorEventZ(array: [LDKMonitorEvent]) -> LDKCVec_MonitorEventZ {
224                 /* DIMENSION_REDUCTION_PREP */
225
226                 /*
227         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKMonitorEvent>) -> UnsafeMutablePointer<LDKMonitorEvent> in
228             let mutablePointer = UnsafeMutablePointer<LDKMonitorEvent>(mutating: pointer.baseAddress!)
229             return mutablePointer
230         }
231         */
232
233         let dataContainer = UnsafeMutablePointer<LDKMonitorEvent>.allocate(capacity: array.count)
234                 dataContainer.initialize(from: array, count: array.count)
235
236         let vector = LDKCVec_MonitorEventZ(data: dataContainer, datalen: UInt(array.count))
237         return vector
238
239     }
240     /* SWIFT_TO_RUST_END */
241
242         /* RUST_TO_SWIFT_START */
243     public class func LDKCVec_MonitorEventZ_to_array(nativeType: LDKCVec_MonitorEventZ) -> [LDKMonitorEvent] {
244                 var array = [LDKMonitorEvent]()
245                 for index in 0..<Int(nativeType.datalen) {
246                         let currentEntry = nativeType.data[index]
247                         /* CONVERSION_PREP */
248                         array.append(currentEntry)
249                 }
250                 return array
251         }
252         /* RUST_TO_SWIFT_END */
253
254         /* SWIFT_TO_RUST_START */
255         public class func new_LDKCVec_UpdateFailMalformedHTLCZ(array: [LDKUpdateFailMalformedHTLC]) -> LDKCVec_UpdateFailMalformedHTLCZ {
256                 /* DIMENSION_REDUCTION_PREP */
257
258                 /*
259         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKUpdateFailMalformedHTLC>) -> UnsafeMutablePointer<LDKUpdateFailMalformedHTLC> in
260             let mutablePointer = UnsafeMutablePointer<LDKUpdateFailMalformedHTLC>(mutating: pointer.baseAddress!)
261             return mutablePointer
262         }
263         */
264
265         let dataContainer = UnsafeMutablePointer<LDKUpdateFailMalformedHTLC>.allocate(capacity: array.count)
266                 dataContainer.initialize(from: array, count: array.count)
267
268         let vector = LDKCVec_UpdateFailMalformedHTLCZ(data: dataContainer, datalen: UInt(array.count))
269         return vector
270
271     }
272     /* SWIFT_TO_RUST_END */
273
274         /* RUST_TO_SWIFT_START */
275     public class func LDKCVec_UpdateFailMalformedHTLCZ_to_array(nativeType: LDKCVec_UpdateFailMalformedHTLCZ) -> [LDKUpdateFailMalformedHTLC] {
276                 var array = [LDKUpdateFailMalformedHTLC]()
277                 for index in 0..<Int(nativeType.datalen) {
278                         let currentEntry = nativeType.data[index]
279                         /* CONVERSION_PREP */
280                         array.append(currentEntry)
281                 }
282                 return array
283         }
284         /* RUST_TO_SWIFT_END */
285
286         /* SWIFT_TO_RUST_START */
287         public class func new_LDKCVec_SignatureZ(array: [[UInt8]]) -> LDKCVec_SignatureZ {
288                 
289                                         var lowerDimension = [LDKSignature]()
290                                         for currentEntry in array {
291                                                 let convertedEntry = new_LDKSignature(array: currentEntry)
292                                                 lowerDimension.append(convertedEntry)
293                                         }
294                                 
295
296                 /*
297         let dataContainer = lowerDimension.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKSignature>) -> UnsafeMutablePointer<LDKSignature> in
298             let mutablePointer = UnsafeMutablePointer<LDKSignature>(mutating: pointer.baseAddress!)
299             return mutablePointer
300         }
301         */
302
303         let dataContainer = UnsafeMutablePointer<LDKSignature>.allocate(capacity: array.count)
304                 dataContainer.initialize(from: lowerDimension, count: array.count)
305
306         let vector = LDKCVec_SignatureZ(data: dataContainer, datalen: UInt(array.count))
307         return vector
308
309     }
310     /* SWIFT_TO_RUST_END */
311
312         /* RUST_TO_SWIFT_START */
313     public class func LDKCVec_SignatureZ_to_array(nativeType: LDKCVec_SignatureZ) -> [[UInt8]] {
314                 var array = [[UInt8]]()
315                 for index in 0..<Int(nativeType.datalen) {
316                         let currentEntry = nativeType.data[index]
317                         let convertedEntry = LDKSignature_to_array(nativeType: currentEntry)
318                         array.append(convertedEntry)
319                 }
320                 return array
321         }
322         /* RUST_TO_SWIFT_END */
323
324         /* SWIFT_TO_RUST_START */
325         public class func new_LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ(array: [LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ]) -> LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ {
326                 /* DIMENSION_REDUCTION_PREP */
327
328                 /*
329         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ>) -> UnsafeMutablePointer<LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ> in
330             let mutablePointer = UnsafeMutablePointer<LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ>(mutating: pointer.baseAddress!)
331             return mutablePointer
332         }
333         */
334
335         let dataContainer = UnsafeMutablePointer<LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ>.allocate(capacity: array.count)
336                 dataContainer.initialize(from: array, count: array.count)
337
338         let vector = LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ(data: dataContainer, datalen: UInt(array.count))
339         return vector
340
341     }
342     /* SWIFT_TO_RUST_END */
343
344         /* RUST_TO_SWIFT_START */
345     public class func LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ_to_array(nativeType: LDKCVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ) -> [LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ] {
346                 var array = [LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ]()
347                 for index in 0..<Int(nativeType.datalen) {
348                         let currentEntry = nativeType.data[index]
349                         /* CONVERSION_PREP */
350                         array.append(currentEntry)
351                 }
352                 return array
353         }
354         /* RUST_TO_SWIFT_END */
355
356         /* SWIFT_TO_RUST_START */
357         public class func new_LDKCVec_RouteHintZ(array: [LDKRouteHint]) -> LDKCVec_RouteHintZ {
358                 /* DIMENSION_REDUCTION_PREP */
359
360                 /*
361         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKRouteHint>) -> UnsafeMutablePointer<LDKRouteHint> in
362             let mutablePointer = UnsafeMutablePointer<LDKRouteHint>(mutating: pointer.baseAddress!)
363             return mutablePointer
364         }
365         */
366
367         let dataContainer = UnsafeMutablePointer<LDKRouteHint>.allocate(capacity: array.count)
368                 dataContainer.initialize(from: array, count: array.count)
369
370         let vector = LDKCVec_RouteHintZ(data: dataContainer, datalen: UInt(array.count))
371         return vector
372
373     }
374     /* SWIFT_TO_RUST_END */
375
376         /* RUST_TO_SWIFT_START */
377     public class func LDKCVec_RouteHintZ_to_array(nativeType: LDKCVec_RouteHintZ) -> [LDKRouteHint] {
378                 var array = [LDKRouteHint]()
379                 for index in 0..<Int(nativeType.datalen) {
380                         let currentEntry = nativeType.data[index]
381                         /* CONVERSION_PREP */
382                         array.append(currentEntry)
383                 }
384                 return array
385         }
386         /* RUST_TO_SWIFT_END */
387
388         /* SWIFT_TO_RUST_START */
389         public class func new_LDKCVec_u64Z(array: [UInt64]) -> LDKCVec_u64Z {
390                 /* DIMENSION_REDUCTION_PREP */
391
392                 /*
393         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<UInt64>) -> UnsafeMutablePointer<UInt64> in
394             let mutablePointer = UnsafeMutablePointer<UInt64>(mutating: pointer.baseAddress!)
395             return mutablePointer
396         }
397         */
398
399         let dataContainer = UnsafeMutablePointer<UInt64>.allocate(capacity: array.count)
400                 dataContainer.initialize(from: array, count: array.count)
401
402         let vector = LDKCVec_u64Z(data: dataContainer, datalen: UInt(array.count))
403         return vector
404
405     }
406     /* SWIFT_TO_RUST_END */
407
408         /* RUST_TO_SWIFT_START */
409     public class func LDKCVec_u64Z_to_array(nativeType: LDKCVec_u64Z) -> [UInt64] {
410                 var array = [UInt64]()
411                 for index in 0..<Int(nativeType.datalen) {
412                         let currentEntry = nativeType.data[index]
413                         /* CONVERSION_PREP */
414                         array.append(currentEntry)
415                 }
416                 return array
417         }
418         /* RUST_TO_SWIFT_END */
419
420         /* SWIFT_TO_RUST_START */
421         public class func new_LDKCVec_NetAddressZ(array: [LDKNetAddress]) -> LDKCVec_NetAddressZ {
422                 /* DIMENSION_REDUCTION_PREP */
423
424                 /*
425         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKNetAddress>) -> UnsafeMutablePointer<LDKNetAddress> in
426             let mutablePointer = UnsafeMutablePointer<LDKNetAddress>(mutating: pointer.baseAddress!)
427             return mutablePointer
428         }
429         */
430
431         let dataContainer = UnsafeMutablePointer<LDKNetAddress>.allocate(capacity: array.count)
432                 dataContainer.initialize(from: array, count: array.count)
433
434         let vector = LDKCVec_NetAddressZ(data: dataContainer, datalen: UInt(array.count))
435         return vector
436
437     }
438     /* SWIFT_TO_RUST_END */
439
440         /* RUST_TO_SWIFT_START */
441     public class func LDKCVec_NetAddressZ_to_array(nativeType: LDKCVec_NetAddressZ) -> [LDKNetAddress] {
442                 var array = [LDKNetAddress]()
443                 for index in 0..<Int(nativeType.datalen) {
444                         let currentEntry = nativeType.data[index]
445                         /* CONVERSION_PREP */
446                         array.append(currentEntry)
447                 }
448                 return array
449         }
450         /* RUST_TO_SWIFT_END */
451
452         /* SWIFT_TO_RUST_START */
453         public class func new_LDKCVec_u8Z(array: [UInt8]) -> LDKCVec_u8Z {
454                 /* DIMENSION_REDUCTION_PREP */
455
456                 /*
457         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<UInt8>) -> UnsafeMutablePointer<UInt8> in
458             let mutablePointer = UnsafeMutablePointer<UInt8>(mutating: pointer.baseAddress!)
459             return mutablePointer
460         }
461         */
462
463         let dataContainer = UnsafeMutablePointer<UInt8>.allocate(capacity: array.count)
464                 dataContainer.initialize(from: array, count: array.count)
465
466         let vector = LDKCVec_u8Z(data: dataContainer, datalen: UInt(array.count))
467         return vector
468
469     }
470     /* SWIFT_TO_RUST_END */
471
472         /* RUST_TO_SWIFT_START */
473     public class func LDKCVec_u8Z_to_array(nativeType: LDKCVec_u8Z) -> [UInt8] {
474                 var array = [UInt8]()
475                 for index in 0..<Int(nativeType.datalen) {
476                         let currentEntry = nativeType.data[index]
477                         /* CONVERSION_PREP */
478                         array.append(currentEntry)
479                 }
480                 return array
481         }
482         /* RUST_TO_SWIFT_END */
483
484         /* SWIFT_TO_RUST_START */
485         public class func new_LDKCVec_TxOutZ(array: [LDKTxOut]) -> LDKCVec_TxOutZ {
486                 /* DIMENSION_REDUCTION_PREP */
487
488                 /*
489         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKTxOut>) -> UnsafeMutablePointer<LDKTxOut> in
490             let mutablePointer = UnsafeMutablePointer<LDKTxOut>(mutating: pointer.baseAddress!)
491             return mutablePointer
492         }
493         */
494
495         let dataContainer = UnsafeMutablePointer<LDKTxOut>.allocate(capacity: array.count)
496                 dataContainer.initialize(from: array, count: array.count)
497
498         let vector = LDKCVec_TxOutZ(data: dataContainer, datalen: UInt(array.count))
499         return vector
500
501     }
502     /* SWIFT_TO_RUST_END */
503
504         /* RUST_TO_SWIFT_START */
505     public class func LDKCVec_TxOutZ_to_array(nativeType: LDKCVec_TxOutZ) -> [LDKTxOut] {
506                 var array = [LDKTxOut]()
507                 for index in 0..<Int(nativeType.datalen) {
508                         let currentEntry = nativeType.data[index]
509                         /* CONVERSION_PREP */
510                         array.append(currentEntry)
511                 }
512                 return array
513         }
514         /* RUST_TO_SWIFT_END */
515
516         /* SWIFT_TO_RUST_START */
517         public class func new_LDKCVec_C2Tuple_u32ScriptZZ(array: [LDKC2Tuple_u32ScriptZ]) -> LDKCVec_C2Tuple_u32ScriptZZ {
518                 /* DIMENSION_REDUCTION_PREP */
519
520                 /*
521         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKC2Tuple_u32ScriptZ>) -> UnsafeMutablePointer<LDKC2Tuple_u32ScriptZ> in
522             let mutablePointer = UnsafeMutablePointer<LDKC2Tuple_u32ScriptZ>(mutating: pointer.baseAddress!)
523             return mutablePointer
524         }
525         */
526
527         let dataContainer = UnsafeMutablePointer<LDKC2Tuple_u32ScriptZ>.allocate(capacity: array.count)
528                 dataContainer.initialize(from: array, count: array.count)
529
530         let vector = LDKCVec_C2Tuple_u32ScriptZZ(data: dataContainer, datalen: UInt(array.count))
531         return vector
532
533     }
534     /* SWIFT_TO_RUST_END */
535
536         /* RUST_TO_SWIFT_START */
537     public class func LDKCVec_C2Tuple_u32ScriptZZ_to_array(nativeType: LDKCVec_C2Tuple_u32ScriptZZ) -> [LDKC2Tuple_u32ScriptZ] {
538                 var array = [LDKC2Tuple_u32ScriptZ]()
539                 for index in 0..<Int(nativeType.datalen) {
540                         let currentEntry = nativeType.data[index]
541                         /* CONVERSION_PREP */
542                         array.append(currentEntry)
543                 }
544                 return array
545         }
546         /* RUST_TO_SWIFT_END */
547
548         /* SWIFT_TO_RUST_START */
549         public class func new_LDKCVec_PrivateRouteZ(array: [LDKPrivateRoute]) -> LDKCVec_PrivateRouteZ {
550                 /* DIMENSION_REDUCTION_PREP */
551
552                 /*
553         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKPrivateRoute>) -> UnsafeMutablePointer<LDKPrivateRoute> in
554             let mutablePointer = UnsafeMutablePointer<LDKPrivateRoute>(mutating: pointer.baseAddress!)
555             return mutablePointer
556         }
557         */
558
559         let dataContainer = UnsafeMutablePointer<LDKPrivateRoute>.allocate(capacity: array.count)
560                 dataContainer.initialize(from: array, count: array.count)
561
562         let vector = LDKCVec_PrivateRouteZ(data: dataContainer, datalen: UInt(array.count))
563         return vector
564
565     }
566     /* SWIFT_TO_RUST_END */
567
568         /* RUST_TO_SWIFT_START */
569     public class func LDKCVec_PrivateRouteZ_to_array(nativeType: LDKCVec_PrivateRouteZ) -> [LDKPrivateRoute] {
570                 var array = [LDKPrivateRoute]()
571                 for index in 0..<Int(nativeType.datalen) {
572                         let currentEntry = nativeType.data[index]
573                         /* CONVERSION_PREP */
574                         array.append(currentEntry)
575                 }
576                 return array
577         }
578         /* RUST_TO_SWIFT_END */
579
580         /* SWIFT_TO_RUST_START */
581         public class func new_LDKCVec_MessageSendEventZ(array: [LDKMessageSendEvent]) -> LDKCVec_MessageSendEventZ {
582                 /* DIMENSION_REDUCTION_PREP */
583
584                 /*
585         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKMessageSendEvent>) -> UnsafeMutablePointer<LDKMessageSendEvent> in
586             let mutablePointer = UnsafeMutablePointer<LDKMessageSendEvent>(mutating: pointer.baseAddress!)
587             return mutablePointer
588         }
589         */
590
591         let dataContainer = UnsafeMutablePointer<LDKMessageSendEvent>.allocate(capacity: array.count)
592                 dataContainer.initialize(from: array, count: array.count)
593
594         let vector = LDKCVec_MessageSendEventZ(data: dataContainer, datalen: UInt(array.count))
595         return vector
596
597     }
598     /* SWIFT_TO_RUST_END */
599
600         /* RUST_TO_SWIFT_START */
601     public class func LDKCVec_MessageSendEventZ_to_array(nativeType: LDKCVec_MessageSendEventZ) -> [LDKMessageSendEvent] {
602                 var array = [LDKMessageSendEvent]()
603                 for index in 0..<Int(nativeType.datalen) {
604                         let currentEntry = nativeType.data[index]
605                         /* CONVERSION_PREP */
606                         array.append(currentEntry)
607                 }
608                 return array
609         }
610         /* RUST_TO_SWIFT_END */
611
612         /* SWIFT_TO_RUST_START */
613         public class func new_LDKCVec_CResult_NoneAPIErrorZZ(array: [LDKCResult_NoneAPIErrorZ]) -> LDKCVec_CResult_NoneAPIErrorZZ {
614                 /* DIMENSION_REDUCTION_PREP */
615
616                 /*
617         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKCResult_NoneAPIErrorZ>) -> UnsafeMutablePointer<LDKCResult_NoneAPIErrorZ> in
618             let mutablePointer = UnsafeMutablePointer<LDKCResult_NoneAPIErrorZ>(mutating: pointer.baseAddress!)
619             return mutablePointer
620         }
621         */
622
623         let dataContainer = UnsafeMutablePointer<LDKCResult_NoneAPIErrorZ>.allocate(capacity: array.count)
624                 dataContainer.initialize(from: array, count: array.count)
625
626         let vector = LDKCVec_CResult_NoneAPIErrorZZ(data: dataContainer, datalen: UInt(array.count))
627         return vector
628
629     }
630     /* SWIFT_TO_RUST_END */
631
632         /* RUST_TO_SWIFT_START */
633     public class func LDKCVec_CResult_NoneAPIErrorZZ_to_array(nativeType: LDKCVec_CResult_NoneAPIErrorZZ) -> [LDKCResult_NoneAPIErrorZ] {
634                 var array = [LDKCResult_NoneAPIErrorZ]()
635                 for index in 0..<Int(nativeType.datalen) {
636                         let currentEntry = nativeType.data[index]
637                         /* CONVERSION_PREP */
638                         array.append(currentEntry)
639                 }
640                 return array
641         }
642         /* RUST_TO_SWIFT_END */
643
644         /* SWIFT_TO_RUST_START */
645         public class func new_LDKCVec_CVec_RouteHopZZ(array: [[LDKRouteHop]]) -> LDKCVec_CVec_RouteHopZZ {
646                 
647                                         var lowerDimension = [LDKCVec_RouteHopZ]()
648                                         for currentEntry in array {
649                                                 let convertedEntry = new_LDKCVec_RouteHopZ(array: currentEntry)
650                                                 lowerDimension.append(convertedEntry)
651                                         }
652                                 
653
654                 /*
655         let dataContainer = lowerDimension.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKCVec_RouteHopZ>) -> UnsafeMutablePointer<LDKCVec_RouteHopZ> in
656             let mutablePointer = UnsafeMutablePointer<LDKCVec_RouteHopZ>(mutating: pointer.baseAddress!)
657             return mutablePointer
658         }
659         */
660
661         let dataContainer = UnsafeMutablePointer<LDKCVec_RouteHopZ>.allocate(capacity: array.count)
662                 dataContainer.initialize(from: lowerDimension, count: array.count)
663
664         let vector = LDKCVec_CVec_RouteHopZZ(data: dataContainer, datalen: UInt(array.count))
665         return vector
666
667     }
668     /* SWIFT_TO_RUST_END */
669
670         /* RUST_TO_SWIFT_START */
671     public class func LDKCVec_CVec_RouteHopZZ_to_array(nativeType: LDKCVec_CVec_RouteHopZZ) -> [[LDKRouteHop]] {
672                 var array = [[LDKRouteHop]]()
673                 for index in 0..<Int(nativeType.datalen) {
674                         let currentEntry = nativeType.data[index]
675                         let convertedEntry = LDKCVec_RouteHopZ_to_array(nativeType: currentEntry)
676                         array.append(convertedEntry)
677                 }
678                 return array
679         }
680         /* RUST_TO_SWIFT_END */
681
682         /* SWIFT_TO_RUST_START */
683         public class func new_LDKCVec_C2Tuple_u32TxOutZZ(array: [LDKC2Tuple_u32TxOutZ]) -> LDKCVec_C2Tuple_u32TxOutZZ {
684                 /* DIMENSION_REDUCTION_PREP */
685
686                 /*
687         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKC2Tuple_u32TxOutZ>) -> UnsafeMutablePointer<LDKC2Tuple_u32TxOutZ> in
688             let mutablePointer = UnsafeMutablePointer<LDKC2Tuple_u32TxOutZ>(mutating: pointer.baseAddress!)
689             return mutablePointer
690         }
691         */
692
693         let dataContainer = UnsafeMutablePointer<LDKC2Tuple_u32TxOutZ>.allocate(capacity: array.count)
694                 dataContainer.initialize(from: array, count: array.count)
695
696         let vector = LDKCVec_C2Tuple_u32TxOutZZ(data: dataContainer, datalen: UInt(array.count))
697         return vector
698
699     }
700     /* SWIFT_TO_RUST_END */
701
702         /* RUST_TO_SWIFT_START */
703     public class func LDKCVec_C2Tuple_u32TxOutZZ_to_array(nativeType: LDKCVec_C2Tuple_u32TxOutZZ) -> [LDKC2Tuple_u32TxOutZ] {
704                 var array = [LDKC2Tuple_u32TxOutZ]()
705                 for index in 0..<Int(nativeType.datalen) {
706                         let currentEntry = nativeType.data[index]
707                         /* CONVERSION_PREP */
708                         array.append(currentEntry)
709                 }
710                 return array
711         }
712         /* RUST_TO_SWIFT_END */
713
714         /* SWIFT_TO_RUST_START */
715         public class func new_LDKCVec_UpdateFulfillHTLCZ(array: [LDKUpdateFulfillHTLC]) -> LDKCVec_UpdateFulfillHTLCZ {
716                 /* DIMENSION_REDUCTION_PREP */
717
718                 /*
719         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKUpdateFulfillHTLC>) -> UnsafeMutablePointer<LDKUpdateFulfillHTLC> in
720             let mutablePointer = UnsafeMutablePointer<LDKUpdateFulfillHTLC>(mutating: pointer.baseAddress!)
721             return mutablePointer
722         }
723         */
724
725         let dataContainer = UnsafeMutablePointer<LDKUpdateFulfillHTLC>.allocate(capacity: array.count)
726                 dataContainer.initialize(from: array, count: array.count)
727
728         let vector = LDKCVec_UpdateFulfillHTLCZ(data: dataContainer, datalen: UInt(array.count))
729         return vector
730
731     }
732     /* SWIFT_TO_RUST_END */
733
734         /* RUST_TO_SWIFT_START */
735     public class func LDKCVec_UpdateFulfillHTLCZ_to_array(nativeType: LDKCVec_UpdateFulfillHTLCZ) -> [LDKUpdateFulfillHTLC] {
736                 var array = [LDKUpdateFulfillHTLC]()
737                 for index in 0..<Int(nativeType.datalen) {
738                         let currentEntry = nativeType.data[index]
739                         /* CONVERSION_PREP */
740                         array.append(currentEntry)
741                 }
742                 return array
743         }
744         /* RUST_TO_SWIFT_END */
745
746         /* SWIFT_TO_RUST_START */
747         public class func new_LDKCVec_UpdateFailHTLCZ(array: [LDKUpdateFailHTLC]) -> LDKCVec_UpdateFailHTLCZ {
748                 /* DIMENSION_REDUCTION_PREP */
749
750                 /*
751         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKUpdateFailHTLC>) -> UnsafeMutablePointer<LDKUpdateFailHTLC> in
752             let mutablePointer = UnsafeMutablePointer<LDKUpdateFailHTLC>(mutating: pointer.baseAddress!)
753             return mutablePointer
754         }
755         */
756
757         let dataContainer = UnsafeMutablePointer<LDKUpdateFailHTLC>.allocate(capacity: array.count)
758                 dataContainer.initialize(from: array, count: array.count)
759
760         let vector = LDKCVec_UpdateFailHTLCZ(data: dataContainer, datalen: UInt(array.count))
761         return vector
762
763     }
764     /* SWIFT_TO_RUST_END */
765
766         /* RUST_TO_SWIFT_START */
767     public class func LDKCVec_UpdateFailHTLCZ_to_array(nativeType: LDKCVec_UpdateFailHTLCZ) -> [LDKUpdateFailHTLC] {
768                 var array = [LDKUpdateFailHTLC]()
769                 for index in 0..<Int(nativeType.datalen) {
770                         let currentEntry = nativeType.data[index]
771                         /* CONVERSION_PREP */
772                         array.append(currentEntry)
773                 }
774                 return array
775         }
776         /* RUST_TO_SWIFT_END */
777
778         /* SWIFT_TO_RUST_START */
779         public class func new_LDKCVec_ChannelMonitorZ(array: [LDKChannelMonitor]) -> LDKCVec_ChannelMonitorZ {
780                 /* DIMENSION_REDUCTION_PREP */
781
782                 /*
783         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKChannelMonitor>) -> UnsafeMutablePointer<LDKChannelMonitor> in
784             let mutablePointer = UnsafeMutablePointer<LDKChannelMonitor>(mutating: pointer.baseAddress!)
785             return mutablePointer
786         }
787         */
788
789         let dataContainer = UnsafeMutablePointer<LDKChannelMonitor>.allocate(capacity: array.count)
790                 dataContainer.initialize(from: array, count: array.count)
791
792         let vector = LDKCVec_ChannelMonitorZ(data: dataContainer, datalen: UInt(array.count))
793         return vector
794
795     }
796     /* SWIFT_TO_RUST_END */
797
798         /* RUST_TO_SWIFT_START */
799     public class func LDKCVec_ChannelMonitorZ_to_array(nativeType: LDKCVec_ChannelMonitorZ) -> [LDKChannelMonitor] {
800                 var array = [LDKChannelMonitor]()
801                 for index in 0..<Int(nativeType.datalen) {
802                         let currentEntry = nativeType.data[index]
803                         /* CONVERSION_PREP */
804                         array.append(currentEntry)
805                 }
806                 return array
807         }
808         /* RUST_TO_SWIFT_END */
809
810         /* SWIFT_TO_RUST_START */
811         public class func new_LDKCVec_ChannelDetailsZ(array: [LDKChannelDetails]) -> LDKCVec_ChannelDetailsZ {
812                 /* DIMENSION_REDUCTION_PREP */
813
814                 /*
815         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKChannelDetails>) -> UnsafeMutablePointer<LDKChannelDetails> in
816             let mutablePointer = UnsafeMutablePointer<LDKChannelDetails>(mutating: pointer.baseAddress!)
817             return mutablePointer
818         }
819         */
820
821         let dataContainer = UnsafeMutablePointer<LDKChannelDetails>.allocate(capacity: array.count)
822                 dataContainer.initialize(from: array, count: array.count)
823
824         let vector = LDKCVec_ChannelDetailsZ(data: dataContainer, datalen: UInt(array.count))
825         return vector
826
827     }
828     /* SWIFT_TO_RUST_END */
829
830         /* RUST_TO_SWIFT_START */
831     public class func LDKCVec_ChannelDetailsZ_to_array(nativeType: LDKCVec_ChannelDetailsZ) -> [LDKChannelDetails] {
832                 var array = [LDKChannelDetails]()
833                 for index in 0..<Int(nativeType.datalen) {
834                         let currentEntry = nativeType.data[index]
835                         /* CONVERSION_PREP */
836                         array.append(currentEntry)
837                 }
838                 return array
839         }
840         /* RUST_TO_SWIFT_END */
841
842         /* SWIFT_TO_RUST_START */
843         public class func new_LDKCVec_TxidZ(array: [LDKThirtyTwoBytes]) -> LDKCVec_TxidZ {
844                 /* DIMENSION_REDUCTION_PREP */
845
846                 /*
847         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKThirtyTwoBytes>) -> UnsafeMutablePointer<LDKThirtyTwoBytes> in
848             let mutablePointer = UnsafeMutablePointer<LDKThirtyTwoBytes>(mutating: pointer.baseAddress!)
849             return mutablePointer
850         }
851         */
852
853         let dataContainer = UnsafeMutablePointer<LDKThirtyTwoBytes>.allocate(capacity: array.count)
854                 dataContainer.initialize(from: array, count: array.count)
855
856         let vector = LDKCVec_TxidZ(data: dataContainer, datalen: UInt(array.count))
857         return vector
858
859     }
860     /* SWIFT_TO_RUST_END */
861
862         /* RUST_TO_SWIFT_START */
863     public class func LDKCVec_TxidZ_to_array(nativeType: LDKCVec_TxidZ) -> [LDKThirtyTwoBytes] {
864                 var array = [LDKThirtyTwoBytes]()
865                 for index in 0..<Int(nativeType.datalen) {
866                         let currentEntry = nativeType.data[index]
867                         /* CONVERSION_PREP */
868                         array.append(currentEntry)
869                 }
870                 return array
871         }
872         /* RUST_TO_SWIFT_END */
873
874         /* SWIFT_TO_RUST_START */
875         public class func new_LDKCVec_APIErrorZ(array: [LDKAPIError]) -> LDKCVec_APIErrorZ {
876                 /* DIMENSION_REDUCTION_PREP */
877
878                 /*
879         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKAPIError>) -> UnsafeMutablePointer<LDKAPIError> in
880             let mutablePointer = UnsafeMutablePointer<LDKAPIError>(mutating: pointer.baseAddress!)
881             return mutablePointer
882         }
883         */
884
885         let dataContainer = UnsafeMutablePointer<LDKAPIError>.allocate(capacity: array.count)
886                 dataContainer.initialize(from: array, count: array.count)
887
888         let vector = LDKCVec_APIErrorZ(data: dataContainer, datalen: UInt(array.count))
889         return vector
890
891     }
892     /* SWIFT_TO_RUST_END */
893
894         /* RUST_TO_SWIFT_START */
895     public class func LDKCVec_APIErrorZ_to_array(nativeType: LDKCVec_APIErrorZ) -> [LDKAPIError] {
896                 var array = [LDKAPIError]()
897                 for index in 0..<Int(nativeType.datalen) {
898                         let currentEntry = nativeType.data[index]
899                         /* CONVERSION_PREP */
900                         array.append(currentEntry)
901                 }
902                 return array
903         }
904         /* RUST_TO_SWIFT_END */
905
906         /* SWIFT_TO_RUST_START */
907         public class func new_LDKCVec_CVec_u8ZZ(array: [[UInt8]]) -> LDKCVec_CVec_u8ZZ {
908                 
909                                         var lowerDimension = [LDKCVec_u8Z]()
910                                         for currentEntry in array {
911                                                 let convertedEntry = new_LDKCVec_u8Z(array: currentEntry)
912                                                 lowerDimension.append(convertedEntry)
913                                         }
914                                 
915
916                 /*
917         let dataContainer = lowerDimension.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKCVec_u8Z>) -> UnsafeMutablePointer<LDKCVec_u8Z> in
918             let mutablePointer = UnsafeMutablePointer<LDKCVec_u8Z>(mutating: pointer.baseAddress!)
919             return mutablePointer
920         }
921         */
922
923         let dataContainer = UnsafeMutablePointer<LDKCVec_u8Z>.allocate(capacity: array.count)
924                 dataContainer.initialize(from: lowerDimension, count: array.count)
925
926         let vector = LDKCVec_CVec_u8ZZ(data: dataContainer, datalen: UInt(array.count))
927         return vector
928
929     }
930     /* SWIFT_TO_RUST_END */
931
932         /* RUST_TO_SWIFT_START */
933     public class func LDKCVec_CVec_u8ZZ_to_array(nativeType: LDKCVec_CVec_u8ZZ) -> [[UInt8]] {
934                 var array = [[UInt8]]()
935                 for index in 0..<Int(nativeType.datalen) {
936                         let currentEntry = nativeType.data[index]
937                         let convertedEntry = LDKCVec_u8Z_to_array(nativeType: currentEntry)
938                         array.append(convertedEntry)
939                 }
940                 return array
941         }
942         /* RUST_TO_SWIFT_END */
943
944         /* SWIFT_TO_RUST_START */
945         public class func new_LDKCVec_SpendableOutputDescriptorZ(array: [LDKSpendableOutputDescriptor]) -> LDKCVec_SpendableOutputDescriptorZ {
946                 /* DIMENSION_REDUCTION_PREP */
947
948                 /*
949         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKSpendableOutputDescriptor>) -> UnsafeMutablePointer<LDKSpendableOutputDescriptor> in
950             let mutablePointer = UnsafeMutablePointer<LDKSpendableOutputDescriptor>(mutating: pointer.baseAddress!)
951             return mutablePointer
952         }
953         */
954
955         let dataContainer = UnsafeMutablePointer<LDKSpendableOutputDescriptor>.allocate(capacity: array.count)
956                 dataContainer.initialize(from: array, count: array.count)
957
958         let vector = LDKCVec_SpendableOutputDescriptorZ(data: dataContainer, datalen: UInt(array.count))
959         return vector
960
961     }
962     /* SWIFT_TO_RUST_END */
963
964         /* RUST_TO_SWIFT_START */
965     public class func LDKCVec_SpendableOutputDescriptorZ_to_array(nativeType: LDKCVec_SpendableOutputDescriptorZ) -> [LDKSpendableOutputDescriptor] {
966                 var array = [LDKSpendableOutputDescriptor]()
967                 for index in 0..<Int(nativeType.datalen) {
968                         let currentEntry = nativeType.data[index]
969                         /* CONVERSION_PREP */
970                         array.append(currentEntry)
971                 }
972                 return array
973         }
974         /* RUST_TO_SWIFT_END */
975
976         /* SWIFT_TO_RUST_START */
977         public class func new_LDKCVec_NodeAnnouncementZ(array: [LDKNodeAnnouncement]) -> LDKCVec_NodeAnnouncementZ {
978                 /* DIMENSION_REDUCTION_PREP */
979
980                 /*
981         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKNodeAnnouncement>) -> UnsafeMutablePointer<LDKNodeAnnouncement> in
982             let mutablePointer = UnsafeMutablePointer<LDKNodeAnnouncement>(mutating: pointer.baseAddress!)
983             return mutablePointer
984         }
985         */
986
987         let dataContainer = UnsafeMutablePointer<LDKNodeAnnouncement>.allocate(capacity: array.count)
988                 dataContainer.initialize(from: array, count: array.count)
989
990         let vector = LDKCVec_NodeAnnouncementZ(data: dataContainer, datalen: UInt(array.count))
991         return vector
992
993     }
994     /* SWIFT_TO_RUST_END */
995
996         /* RUST_TO_SWIFT_START */
997     public class func LDKCVec_NodeAnnouncementZ_to_array(nativeType: LDKCVec_NodeAnnouncementZ) -> [LDKNodeAnnouncement] {
998                 var array = [LDKNodeAnnouncement]()
999                 for index in 0..<Int(nativeType.datalen) {
1000                         let currentEntry = nativeType.data[index]
1001                         /* CONVERSION_PREP */
1002                         array.append(currentEntry)
1003                 }
1004                 return array
1005         }
1006         /* RUST_TO_SWIFT_END */
1007
1008         /* SWIFT_TO_RUST_START */
1009         public class func new_LDKCVec_UpdateAddHTLCZ(array: [LDKUpdateAddHTLC]) -> LDKCVec_UpdateAddHTLCZ {
1010                 /* DIMENSION_REDUCTION_PREP */
1011
1012                 /*
1013         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKUpdateAddHTLC>) -> UnsafeMutablePointer<LDKUpdateAddHTLC> in
1014             let mutablePointer = UnsafeMutablePointer<LDKUpdateAddHTLC>(mutating: pointer.baseAddress!)
1015             return mutablePointer
1016         }
1017         */
1018
1019         let dataContainer = UnsafeMutablePointer<LDKUpdateAddHTLC>.allocate(capacity: array.count)
1020                 dataContainer.initialize(from: array, count: array.count)
1021
1022         let vector = LDKCVec_UpdateAddHTLCZ(data: dataContainer, datalen: UInt(array.count))
1023         return vector
1024
1025     }
1026     /* SWIFT_TO_RUST_END */
1027
1028         /* RUST_TO_SWIFT_START */
1029     public class func LDKCVec_UpdateAddHTLCZ_to_array(nativeType: LDKCVec_UpdateAddHTLCZ) -> [LDKUpdateAddHTLC] {
1030                 var array = [LDKUpdateAddHTLC]()
1031                 for index in 0..<Int(nativeType.datalen) {
1032                         let currentEntry = nativeType.data[index]
1033                         /* CONVERSION_PREP */
1034                         array.append(currentEntry)
1035                 }
1036                 return array
1037         }
1038         /* RUST_TO_SWIFT_END */
1039
1040         /* SWIFT_TO_RUST_START */
1041         public class func new_LDKCVec_RouteHopZ(array: [LDKRouteHop]) -> LDKCVec_RouteHopZ {
1042                 /* DIMENSION_REDUCTION_PREP */
1043
1044                 /*
1045         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKRouteHop>) -> UnsafeMutablePointer<LDKRouteHop> in
1046             let mutablePointer = UnsafeMutablePointer<LDKRouteHop>(mutating: pointer.baseAddress!)
1047             return mutablePointer
1048         }
1049         */
1050
1051         let dataContainer = UnsafeMutablePointer<LDKRouteHop>.allocate(capacity: array.count)
1052                 dataContainer.initialize(from: array, count: array.count)
1053
1054         let vector = LDKCVec_RouteHopZ(data: dataContainer, datalen: UInt(array.count))
1055         return vector
1056
1057     }
1058     /* SWIFT_TO_RUST_END */
1059
1060         /* RUST_TO_SWIFT_START */
1061     public class func LDKCVec_RouteHopZ_to_array(nativeType: LDKCVec_RouteHopZ) -> [LDKRouteHop] {
1062                 var array = [LDKRouteHop]()
1063                 for index in 0..<Int(nativeType.datalen) {
1064                         let currentEntry = nativeType.data[index]
1065                         /* CONVERSION_PREP */
1066                         array.append(currentEntry)
1067                 }
1068                 return array
1069         }
1070         /* RUST_TO_SWIFT_END */
1071
1072         /* SWIFT_TO_RUST_START */
1073         public class func new_LDKCVec_C2Tuple_usizeTransactionZZ(array: [LDKC2Tuple_usizeTransactionZ]) -> LDKCVec_C2Tuple_usizeTransactionZZ {
1074                 /* DIMENSION_REDUCTION_PREP */
1075
1076                 /*
1077         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKC2Tuple_usizeTransactionZ>) -> UnsafeMutablePointer<LDKC2Tuple_usizeTransactionZ> in
1078             let mutablePointer = UnsafeMutablePointer<LDKC2Tuple_usizeTransactionZ>(mutating: pointer.baseAddress!)
1079             return mutablePointer
1080         }
1081         */
1082
1083         let dataContainer = UnsafeMutablePointer<LDKC2Tuple_usizeTransactionZ>.allocate(capacity: array.count)
1084                 dataContainer.initialize(from: array, count: array.count)
1085
1086         let vector = LDKCVec_C2Tuple_usizeTransactionZZ(data: dataContainer, datalen: UInt(array.count))
1087         return vector
1088
1089     }
1090     /* SWIFT_TO_RUST_END */
1091
1092         /* RUST_TO_SWIFT_START */
1093     public class func LDKCVec_C2Tuple_usizeTransactionZZ_to_array(nativeType: LDKCVec_C2Tuple_usizeTransactionZZ) -> [LDKC2Tuple_usizeTransactionZ] {
1094                 var array = [LDKC2Tuple_usizeTransactionZ]()
1095                 for index in 0..<Int(nativeType.datalen) {
1096                         let currentEntry = nativeType.data[index]
1097                         /* CONVERSION_PREP */
1098                         array.append(currentEntry)
1099                 }
1100                 return array
1101         }
1102         /* RUST_TO_SWIFT_END */
1103
1104         /* SWIFT_TO_RUST_START */
1105         public class func new_LDKCVec_PublicKeyZ(array: [[UInt8]]) -> LDKCVec_PublicKeyZ {
1106                 
1107                                         var lowerDimension = [LDKPublicKey]()
1108                                         for currentEntry in array {
1109                                                 let convertedEntry = new_LDKPublicKey(array: currentEntry)
1110                                                 lowerDimension.append(convertedEntry)
1111                                         }
1112                                 
1113
1114                 /*
1115         let dataContainer = lowerDimension.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKPublicKey>) -> UnsafeMutablePointer<LDKPublicKey> in
1116             let mutablePointer = UnsafeMutablePointer<LDKPublicKey>(mutating: pointer.baseAddress!)
1117             return mutablePointer
1118         }
1119         */
1120
1121         let dataContainer = UnsafeMutablePointer<LDKPublicKey>.allocate(capacity: array.count)
1122                 dataContainer.initialize(from: lowerDimension, count: array.count)
1123
1124         let vector = LDKCVec_PublicKeyZ(data: dataContainer, datalen: UInt(array.count))
1125         return vector
1126
1127     }
1128     /* SWIFT_TO_RUST_END */
1129
1130         /* RUST_TO_SWIFT_START */
1131     public class func LDKCVec_PublicKeyZ_to_array(nativeType: LDKCVec_PublicKeyZ) -> [[UInt8]] {
1132                 var array = [[UInt8]]()
1133                 for index in 0..<Int(nativeType.datalen) {
1134                         let currentEntry = nativeType.data[index]
1135                         let convertedEntry = LDKPublicKey_to_array(nativeType: currentEntry)
1136                         array.append(convertedEntry)
1137                 }
1138                 return array
1139         }
1140         /* RUST_TO_SWIFT_END */
1141
1142         /* SWIFT_TO_RUST_START */
1143         public class func new_LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ(array: [LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ]) -> LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ {
1144                 /* DIMENSION_REDUCTION_PREP */
1145
1146                 /*
1147         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ>) -> UnsafeMutablePointer<LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ> in
1148             let mutablePointer = UnsafeMutablePointer<LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ>(mutating: pointer.baseAddress!)
1149             return mutablePointer
1150         }
1151         */
1152
1153         let dataContainer = UnsafeMutablePointer<LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ>.allocate(capacity: array.count)
1154                 dataContainer.initialize(from: array, count: array.count)
1155
1156         let vector = LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ(data: dataContainer, datalen: UInt(array.count))
1157         return vector
1158
1159     }
1160     /* SWIFT_TO_RUST_END */
1161
1162         /* RUST_TO_SWIFT_START */
1163     public class func LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_to_array(nativeType: LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ) -> [LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ] {
1164                 var array = [LDKC2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ]()
1165                 for index in 0..<Int(nativeType.datalen) {
1166                         let currentEntry = nativeType.data[index]
1167                         /* CONVERSION_PREP */
1168                         array.append(currentEntry)
1169                 }
1170                 return array
1171         }
1172         /* RUST_TO_SWIFT_END */
1173
1174         /* SWIFT_TO_RUST_START */
1175         public class func new_LDKCVec_TransactionZ(array: [[UInt8]]) -> LDKCVec_TransactionZ {
1176                 
1177                                         var lowerDimension = [LDKTransaction]()
1178                                         for currentEntry in array {
1179                                                 let convertedEntry = new_LDKTransaction(array: currentEntry)
1180                                                 lowerDimension.append(convertedEntry)
1181                                         }
1182                                 
1183
1184                 /*
1185         let dataContainer = lowerDimension.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKTransaction>) -> UnsafeMutablePointer<LDKTransaction> in
1186             let mutablePointer = UnsafeMutablePointer<LDKTransaction>(mutating: pointer.baseAddress!)
1187             return mutablePointer
1188         }
1189         */
1190
1191         let dataContainer = UnsafeMutablePointer<LDKTransaction>.allocate(capacity: array.count)
1192                 dataContainer.initialize(from: lowerDimension, count: array.count)
1193
1194         let vector = LDKCVec_TransactionZ(data: dataContainer, datalen: UInt(array.count))
1195         return vector
1196
1197     }
1198     /* SWIFT_TO_RUST_END */
1199
1200         /* RUST_TO_SWIFT_START */
1201     public class func LDKCVec_TransactionZ_to_array(nativeType: LDKCVec_TransactionZ) -> [[UInt8]] {
1202                 var array = [[UInt8]]()
1203                 for index in 0..<Int(nativeType.datalen) {
1204                         let currentEntry = nativeType.data[index]
1205                         let convertedEntry = LDKTransaction_to_array(nativeType: currentEntry)
1206                         array.append(convertedEntry)
1207                 }
1208                 return array
1209         }
1210         /* RUST_TO_SWIFT_END */
1211
1212         /* SWIFT_TO_RUST_START */
1213         public class func new_LDKCVec_TransactionOutputsZ(array: [LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ]) -> LDKCVec_TransactionOutputsZ {
1214                 /* DIMENSION_REDUCTION_PREP */
1215
1216                 /*
1217         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ>) -> UnsafeMutablePointer<LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ> in
1218             let mutablePointer = UnsafeMutablePointer<LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ>(mutating: pointer.baseAddress!)
1219             return mutablePointer
1220         }
1221         */
1222
1223         let dataContainer = UnsafeMutablePointer<LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ>.allocate(capacity: array.count)
1224                 dataContainer.initialize(from: array, count: array.count)
1225
1226         let vector = LDKCVec_TransactionOutputsZ(data: dataContainer, datalen: UInt(array.count))
1227         return vector
1228
1229     }
1230     /* SWIFT_TO_RUST_END */
1231
1232         /* RUST_TO_SWIFT_START */
1233     public class func LDKCVec_TransactionOutputsZ_to_array(nativeType: LDKCVec_TransactionOutputsZ) -> [LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ] {
1234                 var array = [LDKC2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ]()
1235                 for index in 0..<Int(nativeType.datalen) {
1236                         let currentEntry = nativeType.data[index]
1237                         /* CONVERSION_PREP */
1238                         array.append(currentEntry)
1239                 }
1240                 return array
1241         }
1242         /* RUST_TO_SWIFT_END */
1243
1244         /* SWIFT_TO_RUST_START */
1245         public class func new_LDKCVec_EventZ(array: [LDKEvent]) -> LDKCVec_EventZ {
1246                 /* DIMENSION_REDUCTION_PREP */
1247
1248                 /*
1249         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKEvent>) -> UnsafeMutablePointer<LDKEvent> in
1250             let mutablePointer = UnsafeMutablePointer<LDKEvent>(mutating: pointer.baseAddress!)
1251             return mutablePointer
1252         }
1253         */
1254
1255         let dataContainer = UnsafeMutablePointer<LDKEvent>.allocate(capacity: array.count)
1256                 dataContainer.initialize(from: array, count: array.count)
1257
1258         let vector = LDKCVec_EventZ(data: dataContainer, datalen: UInt(array.count))
1259         return vector
1260
1261     }
1262     /* SWIFT_TO_RUST_END */
1263
1264         /* RUST_TO_SWIFT_START */
1265     public class func LDKCVec_EventZ_to_array(nativeType: LDKCVec_EventZ) -> [LDKEvent] {
1266                 var array = [LDKEvent]()
1267                 for index in 0..<Int(nativeType.datalen) {
1268                         let currentEntry = nativeType.data[index]
1269                         /* CONVERSION_PREP */
1270                         array.append(currentEntry)
1271                 }
1272                 return array
1273         }
1274         /* RUST_TO_SWIFT_END */
1275
1276         /* SWIFT_TO_RUST_START */
1277         public class func new_LDKCVec_C2Tuple_BlockHashChannelMonitorZZ(array: [LDKC2Tuple_BlockHashChannelMonitorZ]) -> LDKCVec_C2Tuple_BlockHashChannelMonitorZZ {
1278                 /* DIMENSION_REDUCTION_PREP */
1279
1280                 /*
1281         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<LDKC2Tuple_BlockHashChannelMonitorZ>) -> UnsafeMutablePointer<LDKC2Tuple_BlockHashChannelMonitorZ> in
1282             let mutablePointer = UnsafeMutablePointer<LDKC2Tuple_BlockHashChannelMonitorZ>(mutating: pointer.baseAddress!)
1283             return mutablePointer
1284         }
1285         */
1286
1287         let dataContainer = UnsafeMutablePointer<LDKC2Tuple_BlockHashChannelMonitorZ>.allocate(capacity: array.count)
1288                 dataContainer.initialize(from: array, count: array.count)
1289
1290         let vector = LDKCVec_C2Tuple_BlockHashChannelMonitorZZ(data: dataContainer, datalen: UInt(array.count))
1291         return vector
1292
1293     }
1294     /* SWIFT_TO_RUST_END */
1295
1296         /* RUST_TO_SWIFT_START */
1297     public class func LDKCVec_C2Tuple_BlockHashChannelMonitorZZ_to_array(nativeType: LDKCVec_C2Tuple_BlockHashChannelMonitorZZ) -> [LDKC2Tuple_BlockHashChannelMonitorZ] {
1298                 var array = [LDKC2Tuple_BlockHashChannelMonitorZ]()
1299                 for index in 0..<Int(nativeType.datalen) {
1300                         let currentEntry = nativeType.data[index]
1301                         /* CONVERSION_PREP */
1302                         array.append(currentEntry)
1303                 }
1304                 return array
1305         }
1306         /* RUST_TO_SWIFT_END */
1307
1308         /* VECTOR_METHODS_END */
1309
1310         /* STATIC_METHODS_START */
1311         public class func swift_ldk_get_compiled_version() -> String {
1312                 
1313                                 return 
1314                                 Bindings.LDKStr_to_string(nativeType: _ldk_get_compiled_version())
1315                                 
1316                         
1317         }
1318         public class func swift_ldk_c_bindings_get_compiled_version() -> String {
1319                 
1320                                 return 
1321                                 Bindings.LDKStr_to_string(nativeType: _ldk_c_bindings_get_compiled_version())
1322                                 
1323                         
1324         }
1325         public class func swift_sign(msg: [UInt8], sk: [UInt8]) -> Result_StringErrorZ {
1326                 
1327                                 return withUnsafePointer(to: Bindings.array_to_tuple32(array: sk)) { (skPointer: UnsafePointer<(UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)>) in
1328
1329                                 Result_StringErrorZ(pointer: sign(Bindings.new_LDKu8slice(array: msg), skPointer))
1330                                 
1331 }
1332                         
1333         }
1334         public class func swift_recover_pk(msg: [UInt8], sig: String) -> Result_PublicKeyErrorZ {
1335                 
1336                                 return 
1337                                 Result_PublicKeyErrorZ(pointer: recover_pk(Bindings.new_LDKu8slice(array: msg), Bindings.new_LDKStr(string: sig)))
1338                                 
1339                         
1340         }
1341         public class func swift_verify(msg: [UInt8], sig: String, pk: [UInt8]) -> Bool {
1342                 
1343                                 return 
1344                                 verify(Bindings.new_LDKu8slice(array: msg), Bindings.new_LDKStr(string: sig), Bindings.new_LDKPublicKey(array: pk))
1345                                 
1346                         
1347         }
1348         public class func swift_C2Tuple_BlockHashChannelMonitorZ_read(ser: [UInt8], arg: KeysInterface) -> Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ {
1349                 
1350                                 return withUnsafePointer(to: arg.cOpaqueStruct!) { (argPointer: UnsafePointer<LDKKeysInterface>) in
1351
1352                                 Result_C2Tuple_BlockHashChannelMonitorZDecodeErrorZ(pointer: C2Tuple_BlockHashChannelMonitorZ_read(Bindings.new_LDKu8slice(array: ser), argPointer))
1353                                 
1354 }
1355                         
1356         }
1357         public class func swift_C2Tuple_BlockHashChannelManagerZ_read(ser: [UInt8], arg: ChannelManagerReadArgs) -> Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ {
1358                 
1359                                 return 
1360                                 Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ(pointer: C2Tuple_BlockHashChannelManagerZ_read(Bindings.new_LDKu8slice(array: ser), arg.cOpaqueStruct!))
1361                                 
1362                         
1363         }
1364         public class func swift_Result_read(ser: [UInt8]) -> Result_CResult_NetAddressu8ZDecodeErrorZ {
1365                 
1366                                 return 
1367                                 Result_CResult_NetAddressu8ZDecodeErrorZ(pointer: Result_read(Bindings.new_LDKu8slice(array: ser)))
1368                                 
1369                         
1370         }
1371         public class func swift_build_commitment_secret(commitment_seed: [UInt8], idx: UInt64) -> [UInt8] {
1372                 
1373                                 return withUnsafePointer(to: Bindings.array_to_tuple32(array: commitment_seed)) { (commitment_seedPointer: UnsafePointer<(UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)>) in
1374
1375                                 Bindings.LDKThirtyTwoBytes_to_array(nativeType: build_commitment_secret(commitment_seedPointer, idx))
1376                                 
1377 }
1378                         
1379         }
1380         public class func swift_derive_private_key(per_commitment_point: [UInt8], base_secret: [UInt8]) -> Result_SecretKeyErrorZ {
1381                 
1382                                 return withUnsafePointer(to: Bindings.array_to_tuple32(array: base_secret)) { (base_secretPointer: UnsafePointer<(UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)>) in
1383
1384                                 Result_SecretKeyErrorZ(pointer: derive_private_key(Bindings.new_LDKPublicKey(array: per_commitment_point), base_secretPointer))
1385                                 
1386 }
1387                         
1388         }
1389         public class func swift_derive_public_key(per_commitment_point: [UInt8], base_point: [UInt8]) -> Result_PublicKeyErrorZ {
1390                 
1391                                 return 
1392                                 Result_PublicKeyErrorZ(pointer: derive_public_key(Bindings.new_LDKPublicKey(array: per_commitment_point), Bindings.new_LDKPublicKey(array: base_point)))
1393                                 
1394                         
1395         }
1396         public class func swift_derive_private_revocation_key(per_commitment_secret: [UInt8], countersignatory_revocation_base_secret: [UInt8]) -> Result_SecretKeyErrorZ {
1397                 
1398                                 return withUnsafePointer(to: Bindings.array_to_tuple32(array: per_commitment_secret)) { (per_commitment_secretPointer: UnsafePointer<(UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)>) in
1399 withUnsafePointer(to: Bindings.array_to_tuple32(array: countersignatory_revocation_base_secret)) { (countersignatory_revocation_base_secretPointer: UnsafePointer<(UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)>) in
1400
1401                                 Result_SecretKeyErrorZ(pointer: derive_private_revocation_key(per_commitment_secretPointer, countersignatory_revocation_base_secretPointer))
1402                                 
1403 }
1404 }
1405                         
1406         }
1407         public class func swift_derive_public_revocation_key(per_commitment_point: [UInt8], countersignatory_revocation_base_point: [UInt8]) -> Result_PublicKeyErrorZ {
1408                 
1409                                 return 
1410                                 Result_PublicKeyErrorZ(pointer: derive_public_revocation_key(Bindings.new_LDKPublicKey(array: per_commitment_point), Bindings.new_LDKPublicKey(array: countersignatory_revocation_base_point)))
1411                                 
1412                         
1413         }
1414         public class func swift_get_revokeable_redeemscript(revocation_key: [UInt8], contest_delay: UInt16, broadcaster_delayed_payment_key: [UInt8]) -> [UInt8] {
1415                 
1416                                 return 
1417                                 Bindings.LDKCVec_u8Z_to_array(nativeType: get_revokeable_redeemscript(Bindings.new_LDKPublicKey(array: revocation_key), contest_delay, Bindings.new_LDKPublicKey(array: broadcaster_delayed_payment_key)))
1418                                 
1419                         
1420         }
1421         public class func swift_get_htlc_redeemscript(htlc: HTLCOutputInCommitment, keys: TxCreationKeys) -> [UInt8] {
1422                 
1423                                 return withUnsafePointer(to: htlc.cOpaqueStruct!) { (htlcPointer: UnsafePointer<LDKHTLCOutputInCommitment>) in
1424 withUnsafePointer(to: keys.cOpaqueStruct!) { (keysPointer: UnsafePointer<LDKTxCreationKeys>) in
1425
1426                                 Bindings.LDKCVec_u8Z_to_array(nativeType: get_htlc_redeemscript(htlcPointer, keysPointer))
1427                                 
1428 }
1429 }
1430                         
1431         }
1432         public class func swift_make_funding_redeemscript(broadcaster: [UInt8], countersignatory: [UInt8]) -> [UInt8] {
1433                 
1434                                 return 
1435                                 Bindings.LDKCVec_u8Z_to_array(nativeType: make_funding_redeemscript(Bindings.new_LDKPublicKey(array: broadcaster), Bindings.new_LDKPublicKey(array: countersignatory)))
1436                                 
1437                         
1438         }
1439         public class func swift_build_htlc_transaction(commitment_txid: [UInt8], feerate_per_kw: UInt32, contest_delay: UInt16, htlc: HTLCOutputInCommitment, broadcaster_delayed_payment_key: [UInt8], revocation_key: [UInt8]) -> [UInt8] {
1440                 
1441                                 return withUnsafePointer(to: Bindings.array_to_tuple32(array: commitment_txid)) { (commitment_txidPointer: UnsafePointer<(UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8,UInt8)>) in
1442 withUnsafePointer(to: htlc.cOpaqueStruct!) { (htlcPointer: UnsafePointer<LDKHTLCOutputInCommitment>) in
1443
1444                                 Bindings.LDKTransaction_to_array(nativeType: build_htlc_transaction(commitment_txidPointer, feerate_per_kw, contest_delay, htlcPointer, Bindings.new_LDKPublicKey(array: broadcaster_delayed_payment_key), Bindings.new_LDKPublicKey(array: revocation_key)))
1445                                 
1446 }
1447 }
1448                         
1449         }
1450         public class func swift_get_commitment_transaction_number_obscure_factor(broadcaster_payment_basepoint: [UInt8], countersignatory_payment_basepoint: [UInt8], outbound_from_broadcaster: Bool) -> UInt64 {
1451                 
1452                                 return 
1453                                 get_commitment_transaction_number_obscure_factor(Bindings.new_LDKPublicKey(array: broadcaster_payment_basepoint), Bindings.new_LDKPublicKey(array: countersignatory_payment_basepoint), outbound_from_broadcaster)
1454                                 
1455                         
1456         }
1457         public class func swift_check_platform() -> Void {
1458                 
1459                                 
1460                                 check_platform()
1461                                 
1462                         
1463         }
1464         public class func swift_create_invoice_from_channelmanager(channelmanager: ChannelManager, keys_manager: KeysInterface, network: LDKCurrency, amt_msat: Option_u64Z, description: String) -> Result_InvoiceSignOrCreationErrorZ {
1465                 
1466                                 return withUnsafePointer(to: channelmanager.cOpaqueStruct!) { (channelmanagerPointer: UnsafePointer<LDKChannelManager>) in
1467
1468                                 Result_InvoiceSignOrCreationErrorZ(pointer: create_invoice_from_channelmanager(channelmanagerPointer, keys_manager.cOpaqueStruct!, network, amt_msat.cOpaqueStruct!, Bindings.new_LDKStr(string: description)))
1469                                 
1470 }
1471                         
1472         }
1473
1474         /* STATIC_METHODS_END */
1475
1476         static var nativelyExposedInstances = [String: AnyObject]()
1477
1478         public class func instanceToPointer(instance: AnyObject) -> UnsafeMutableRawPointer {
1479                 let pointer = Unmanaged.passUnretained(instance).toOpaque()
1480                 Self.nativelyExposedInstances[pointer.debugDescription] = instance
1481                 return pointer
1482         }
1483
1484         public class func pointerToInstance<T: AnyObject>(pointer: UnsafeRawPointer, sourceMarker: String?) -> T{
1485
1486                 let callStack = Thread.callStackSymbols
1487                 let caller = sourceMarker ?? callStack[1]
1488                 print("Retrieving instance from pointer for caller: \(caller)")
1489                 // let value = Unmanaged<T>.fromOpaque(pointer).takeUnretainedValue()
1490                 let value = Self.nativelyExposedInstances[pointer.debugDescription] as! T
1491                 print("Instance retrieved for caller: \(caller)")
1492                 return value
1493         }
1494
1495         public class func new_LDKu8slice(array: [UInt8]) -> LDKu8slice {
1496                 /*
1497                 let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<UInt8>) -> UnsafeMutablePointer<UInt8> in
1498                         let mutablePointer = UnsafeMutablePointer<UInt8>(mutating: pointer.baseAddress!)
1499                         return mutablePointer
1500                 }
1501         */
1502
1503         let dataContainer = UnsafeMutablePointer<UInt8>.allocate(capacity: array.count)
1504         dataContainer.initialize(from: array, count: array.count)
1505
1506                 let vector = LDKu8slice(data: dataContainer, datalen: UInt(array.count))
1507                 return vector
1508         }
1509
1510         public class func LDKu8slice_to_array(nativeType: LDKu8slice) -> [UInt8] {
1511                 var array = [UInt8]()
1512                 for index in 0..<Int(nativeType.datalen) {
1513                         let currentEntry = nativeType.data[index]
1514                         array.append(currentEntry)
1515                 }
1516                 return array
1517         }
1518
1519         public class func new_LDKTransaction(array: [UInt8]) -> LDKTransaction {
1520         /*
1521         let dataContainer = array.withUnsafeBufferPointer { (pointer: UnsafeBufferPointer<UInt8>) -> UnsafeMutablePointer<UInt8> in
1522             let mutablePointer = UnsafeMutablePointer<UInt8>(mutating: pointer.baseAddress!)
1523             return mutablePointer
1524         }
1525         */
1526
1527         let dataContainer = UnsafeMutablePointer<UInt8>.allocate(capacity: array.count)
1528         dataContainer.initialize(from: array, count: array.count)
1529
1530         let vector = LDKTransaction(data: dataContainer, datalen: UInt(array.count), data_is_owned: false)
1531         return vector
1532     }
1533
1534     public class func LDKTransaction_to_array(nativeType: LDKTransaction) -> [UInt8] {
1535         var array = [UInt8]()
1536         for index in 0..<Int(nativeType.datalen) {
1537             let currentEntry = nativeType.data[index]
1538             array.append(currentEntry)
1539         }
1540         return array
1541     }
1542
1543     public class func LDKStr_to_string(nativeType: LDKStr) -> String {
1544         let string = String(cString: nativeType.chars)
1545         assert(string.count == nativeType.len)
1546         return string
1547     }
1548
1549     public class func UnsafeIntPointer_to_string(nativeType: UnsafePointer<Int8>) -> String {
1550                 let string = String(cString: nativeType)
1551                 return string
1552         }
1553
1554     public class func string_to_unsafe_int8_pointer(string: String) -> UnsafePointer<Int8> {
1555                 let count = string.utf8CString.count
1556                 let result: UnsafeMutableBufferPointer<Int8> = UnsafeMutableBufferPointer<Int8>.allocate(capacity: count)
1557                 _ = result.initialize(from: string.utf8CString)
1558                 let mutablePointer = result.baseAddress!
1559                 return UnsafePointer<Int8>(mutablePointer)
1560         }
1561
1562         public class func string_to_unsafe_uint8_pointer(string: String) -> UnsafePointer<UInt8> {
1563                 let stringData = string.data(using: .utf8)
1564                 let dataMutablePointer = UnsafeMutablePointer<UInt8>.allocate(capacity: string.count)
1565                 stringData?.copyBytes(to: dataMutablePointer, count: string.count)
1566
1567                 return UnsafePointer<UInt8>(dataMutablePointer)
1568         }
1569
1570         public class func new_LDKStr(string: String) -> LDKStr {
1571                 let nativeType = Self.string_to_unsafe_uint8_pointer(string: string)
1572                 return LDKStr(chars: nativeType, len: UInt(string.count), chars_is_owned: false)
1573         }
1574
1575     public class func createInvoiceFromChannelManager(channelManager: ChannelManager, keysManager: KeysInterface, network: LDKCurrency, amountMsat: UInt64?, description: String) -> Result_InvoiceSignOrCreationErrorZ {
1576                 let nativeKeysManager = keysManager.cOpaqueStruct!
1577                 let amount = Option_u64Z(value: amountMsat)
1578                 let nativeAmount = amount.cOpaqueStruct!
1579                 let nativeDescription = Self.new_LDKStr(string: description)
1580                 return withUnsafePointer(to: channelManager.cOpaqueStruct!) { (pointer: UnsafePointer<LDKChannelManager>) -> Result_InvoiceSignOrCreationErrorZ in
1581                         let nativeResult = create_invoice_from_channelmanager(pointer, nativeKeysManager, network, nativeAmount, nativeDescription)
1582                         return Result_InvoiceSignOrCreationErrorZ(pointer: nativeResult)
1583                 }
1584         }
1585
1586         public class func getRoute(our_node_id: [UInt8], network: NetworkGraph, payee: [UInt8], payee_features: InvoiceFeatures, first_hops: [LDKChannelDetails], last_hops: [LDKRouteHint], final_value_msat: UInt64, final_cltv: UInt32, logger: Logger) -> Result_RouteLightningErrorZ {
1587                 return withUnsafePointer(to: network.cOpaqueStruct!) { (networkPointer: UnsafePointer<LDKNetworkGraph>) in
1588                         var mutableHops = Bindings.new_LDKCVec_ChannelDetailsZ(array: first_hops)
1589                         return withUnsafeMutablePointer(to: &mutableHops) { (first_hopsPointer) in
1590                                 Result_RouteLightningErrorZ(pointer: get_route(Bindings.new_LDKPublicKey(array: our_node_id), networkPointer, Bindings.new_LDKPublicKey(array: payee), payee_features.cOpaqueStruct!, first_hopsPointer, Bindings.new_LDKCVec_RouteHintZ(array: last_hops), final_value_msat, final_cltv, logger.cOpaqueStruct!))
1591                         }
1592                 }
1593         }
1594
1595 }
1596
1597 public class TxOut {
1598
1599         public internal(set) var cOpaqueStruct: LDKTxOut?;
1600         init(pointer: LDKTxOut) {
1601                 self.cOpaqueStruct = pointer
1602         }
1603
1604         public func getScriptPubkey() -> [UInt8] {
1605                 return Bindings.LDKCVec_u8Z_to_array(nativeType: self.cOpaqueStruct!.script_pubkey)
1606         }
1607
1608         public func getValue() -> UInt64 {
1609                 return self.cOpaqueStruct!.value
1610         }
1611
1612 }
1613
1614 public class InstanceCrashSimulator {
1615
1616     public init() {
1617
1618     }
1619
1620     public func getPointer() -> UnsafeMutableRawPointer {
1621         let pointer = Bindings.instanceToPointer(instance: self)
1622         return pointer
1623     }
1624
1625 }