File tree 4 files changed +24
-4
lines changed
xchange-kraken/src/main/java/org/knowm/xchange/kraken/service
xchange-stream-kraken/src/main/java/info/bitrich/xchangestream/kraken
4 files changed +24
-4
lines changed Original file line number Diff line number Diff line change @@ -225,12 +225,16 @@ public KrakenOrderResponse placeKrakenLimitOrder(LimitOrder limitOrder) throws I
225
225
type ,
226
226
limitOrder .getLimitPrice ().toPlainString (),
227
227
limitOrder .getOriginalAmount ())
228
- .withUserRefId (limitOrder .getUserReference ())
229
228
.withOrderFlags (limitOrder .getOrderFlags ())
230
229
.withLeverage (limitOrder .getLeverage ())
231
230
.withTimeInForce (timeInForceFromOrder (limitOrder ).orElse (null ));
232
231
233
- getClientOrderId (limitOrder ).ifPresent (krakenOrderBuilder ::withClientOrderId );
232
+ Optional <String > clientOrderId = getClientOrderId (limitOrder );
233
+ if (clientOrderId .isPresent ()) {
234
+ krakenOrderBuilder .withClientOrderId (clientOrderId .get ());
235
+ } else {
236
+ krakenOrderBuilder .withUserRefId (limitOrder .getUserReference ());
237
+ }
234
238
235
239
return placeKrakenOrder (krakenOrderBuilder .buildOrder ());
236
240
}
Original file line number Diff line number Diff line change @@ -137,7 +137,7 @@ else if ("stop".equals(orderType))
137
137
.timestamp (dto .opentm == null ? null : new Date ((long ) (dto .opentm * 1000L )))
138
138
.fee (dto .fee )
139
139
.flags (adaptFlags (dto .oflags ))
140
- .userReference (dto .userref == null ? null : Integer . toString ( dto .userref ))
140
+ .userReference (resolveUserReference ( dto .cl_ord_id , dto .userref ))
141
141
.build ());
142
142
}
143
143
}
@@ -220,9 +220,16 @@ private List<UserTrade> adaptKrakenUserTrade(KrakenDtoUserTradeHolder[] ownTrade
220
220
.feeAmount (dto .fee )
221
221
.feeCurrency (currencyPair .counter )
222
222
.originalAmount (dto .vol )
223
+ .orderUserReference (resolveUserReference (dto .cl_ord_id , dto .userref ))
223
224
.build ());
224
225
}
225
226
}
226
227
return result ;
227
228
}
229
+
230
+ private static String resolveUserReference (String cl_ord_id , Integer userref ) {
231
+ return cl_ord_id == null
232
+ ? userref == null ? null : Integer .toString (userref )
233
+ : cl_ord_id ;
234
+ }
228
235
}
Original file line number Diff line number Diff line change 2
2
3
3
import java .math .BigDecimal ;
4
4
5
- /** https://docs.kraken.com/websockets/#message-openOrders */
5
+ /** https://docs.kraken.com/api/docs/websocket-v1/openorders */
6
6
public class KrakenOpenOrder {
7
7
/** Referral order transaction id that created this order */
8
8
public String refid ;
9
9
10
10
/** user reference id */
11
11
public Integer userref ;
12
12
13
+ /** an optional, alphanumeric client identifier associated with this order */
14
+ public String cl_ord_id ;
15
+
13
16
/** status of order: */
14
17
public String status ;
15
18
Original file line number Diff line number Diff line change @@ -6,6 +6,12 @@ public class KrakenOwnTrade {
6
6
/** order responsible for execution of trade */
7
7
public String ordertxid ;
8
8
9
+ /** an optional, alphanumeric client identifier associated with this order. Available on update messages only. */
10
+ public String cl_ord_id ;
11
+
12
+ /** an optional, numeric identifier associated with one or more orders. Available on update messages only. */
13
+ public Integer userref ;
14
+
9
15
/** Position trade id */
10
16
public String postxid ;
11
17
You can’t perform that action at this time.
0 commit comments