@@ -92,35 +92,42 @@ public extension SwiftTrader {
92
92
///
93
93
/// https://docs.kucoin.com/futures/#place-an-order
94
94
///
95
- /// - Parameter orderInput: `SwiftTraderOrderInput ` instance that encapsulates
95
+ /// - Parameter orderInput: `SwiftTraderStopLimitOrderInput ` instance that encapsulates
96
96
/// all the arguments required for submiting the stop limit order.
97
97
/// - Returns: An instance of `KucoinFuturesPlaceOrder` or `SwiftTraderError`.
98
- func kucoinFuturesPlaceStopLimitOrder( _ stopLimitOrderInput: SwiftTraderStopLimitOrderInput ) async throws -> Result < KucoinFuturesPlaceOrder , SwiftTraderError > {
99
-
100
- let orderParameters = try createStopLimitOrderParameters ( for: stopLimitOrderInput)
101
-
102
- if stopLimitOrderInput. clean {
103
- do {
104
- try await kucoinFuturesCancelStopOrders ( symbol: stopLimitOrderInput. contractSymbol)
105
- } catch {
106
- logger. log ( " Could not cancel untriggered stop orders: \( error) " )
98
+ func kucoinFuturesPlaceStopLimitOrder( _ orderInput: SwiftTraderStopLimitOrderInput ) async throws -> Result < KucoinFuturesPlaceOrder , SwiftTraderError > {
99
+ do {
100
+ let orderParameters = try createStopLimitOrderParameters ( for: orderInput)
101
+
102
+ if orderInput. clean {
103
+ do {
104
+ try await kucoinFuturesCancelStopOrders ( symbol: orderInput. contractSymbol)
105
+ } catch {
106
+ logger. log ( " Could not cancel untriggered stop orders: \( error) " )
107
+ }
107
108
}
108
- }
109
-
110
- let request = KucoinFuturesPlaceOrdersRequest (
111
- orderParameters: orderParameters,
112
- kucoinAuth: kucoinAuth,
113
- settings: settings. networkRequestSettings
114
- )
115
- switch await request. execute ( ) {
116
- case . success( let model) :
117
- guard let placeOrder = model as? KucoinFuturesPlaceOrder else {
118
- return . failure( . unexpectedResponse( modelString: " \( model) " ) )
109
+
110
+ let request = KucoinFuturesPlaceOrdersRequest (
111
+ orderParameters: orderParameters,
112
+ kucoinAuth: kucoinAuth,
113
+ settings: settings. networkRequestSettings
114
+ )
115
+ switch await request. execute ( ) {
116
+ case . success( let model) :
117
+ guard let placeOrder = model as? KucoinFuturesPlaceOrder else {
118
+ return . failure( . unexpectedResponse( modelString: " \( model) " ) )
119
+ }
120
+ return . success( placeOrder)
121
+ case . failure( let error) :
122
+ let swiftTraderError = handle ( networkRequestError: error, operation: . kucoinFuturesPlaceStopLimitOrder)
123
+ return . failure( swiftTraderError)
124
+ }
125
+ } catch {
126
+ if let swiftTraderError = error as? SwiftTraderError {
127
+ return . failure( swiftTraderError)
128
+ } else {
129
+ return . failure( . unexpected( error) )
119
130
}
120
- return . success( placeOrder)
121
- case . failure( let error) :
122
- let swiftTraderError = handle ( networkRequestError: error, operation: . kucoinFuturesPlaceStopLimitOrder)
123
- return . failure( swiftTraderError)
124
131
}
125
132
}
126
133
0 commit comments