Skip to main content

openlimits_binance/client/
userstream.rs

1use super::BaseClient;
2use crate::model::Success;
3use crate::model::UserDataStream;
4use super::shared::Result;
5
6static USER_DATA_STREAM: &str = "/api/v3/userDataStream";
7
8impl BaseClient {
9    /// User Stream
10    pub async fn user_stream_start(&self) -> Result<UserDataStream> {
11        let user_data_stream = self.transport.post::<_, ()>(USER_DATA_STREAM, None).await?;
12        Ok(user_data_stream)
13    }
14
15    /// Current open orders on a symbol
16    pub async fn user_stream_keep_alive(&self, listen_key: &str) -> Result<Success> {
17        let success = self
18            .transport
19            .put(
20                USER_DATA_STREAM,
21                Some(&vec![("listen_key", listen_key.to_string())]),
22            )
23            .await?;
24        Ok(success)
25    }
26
27    pub async fn user_stream_close(&self, listen_key: &str) -> Result<Success> {
28        let success = self
29            .transport
30            .delete(
31                USER_DATA_STREAM,
32                Some(&vec![("listen_key", listen_key.to_string())]),
33            )
34            .await?;
35        Ok(success)
36    }
37}