rust_okx/ws/ops/
spread.rs1use crate::Error;
4use crate::ws::client::{OkxWs, WsChannelGroup};
5use crate::ws::conn::WsConnector;
6use crate::ws::request::{
7 AmendSpreadOrderRequest, CancelSpreadOrderRequest, MassCancelSpreadOrdersRequest,
8 PlaceSpreadOrderRequest,
9};
10
11impl<C: WsConnector> OkxWs<C> {
12 pub async fn place_spread_order_ws(
16 &mut self,
17 id: impl Into<String>,
18 request: &PlaceSpreadOrderRequest,
19 ) -> Result<(), Error> {
20 self.require_channel_group(WsChannelGroup::Business, "sprd-order")?;
21 self.require_credentials("sprd-order")?;
22 self.send_request_with_expiry(id, "sprd-order", None, std::slice::from_ref(request))
23 .await
24 }
25
26 pub async fn amend_spread_order_ws(
30 &mut self,
31 id: impl Into<String>,
32 request: &AmendSpreadOrderRequest,
33 ) -> Result<(), Error> {
34 self.require_channel_group(WsChannelGroup::Business, "sprd-amend-order")?;
35 self.require_credentials("sprd-amend-order")?;
36 self.send_request_with_expiry(id, "sprd-amend-order", None, std::slice::from_ref(request))
37 .await
38 }
39
40 pub async fn cancel_spread_order_ws(
44 &mut self,
45 id: impl Into<String>,
46 request: &CancelSpreadOrderRequest,
47 ) -> Result<(), Error> {
48 self.require_channel_group(WsChannelGroup::Business, "sprd-cancel-order")?;
49 self.require_credentials("sprd-cancel-order")?;
50 self.send_request_with_expiry(id, "sprd-cancel-order", None, std::slice::from_ref(request))
51 .await
52 }
53
54 pub async fn mass_cancel_spread_ws(
58 &mut self,
59 id: impl Into<String>,
60 request: &MassCancelSpreadOrdersRequest,
61 ) -> Result<(), Error> {
62 self.require_channel_group(WsChannelGroup::Business, "sprd-mass-cancel")?;
63 self.require_credentials("sprd-mass-cancel")?;
64 self.send_request_with_expiry(id, "sprd-mass-cancel", None, std::slice::from_ref(request))
65 .await
66 }
67}