Skip to content

Commit

Permalink
Release v1.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
alplabin committed Oct 30, 2024
1 parent 94c72e5 commit b23948b
Show file tree
Hide file tree
Showing 73 changed files with 3,139 additions and 186 deletions.
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,36 @@
# Changelog

## 1.3.0 - 2024-10-31
### Added
- Market endpoints
- `GET /api/v3/ticker/tradingDay`
- `GET /api/v3/uiKlines`

- Trade endpoints
- `GET /api/v3/myAllocations`
- `GET /api/v3/account/commission`
- `GET /api/v3/myPreventedMatches`

- Wallet endpoints
- `GET /sapi/v1/account/info`
- `GET /sapi/v1/asset/wallet/balance`
- `GET /sapi/v1/spot/delist-schedule`
- `GET /sapi/v1/capital/deposit/address/list`
- `POST /sapi/v1/capital/deposit/credit-apply`
- `GET /sapi/v1/asset/custody/transfer-history`

- WebsocketStream:
- `<symbol>@avgPrice`

### Updated
- Updated deprecated trade endpoint `POST /api/v3/order/oco` to `POST /api/v3/orderList/oco`
- Added parameters `permissions`, `showPermissionSets` and `symbolStatus` to endpoint `GET /api/v3/exchangeInfo`
- Added parameter `time_zone` to endpoint `GET /api/v3/klines`
- Added parameter `type` to endpoints `GET /api/v3/ticker` and `GET /api/v3/ticker/24hr`
- Added parameter `omitZeroBalances` to endpoint `GET /api/v3/account`
- Added parameter `computeCommissionRates` to endpoint `POST /api/v3/order/test`
- Updated `ed25519` and `hmac` signature to allow the function to handle any error type that implements the `Error` trait, including `ed25519_dalek::pkcs8::Error`, without needing explicit conversions between error types.

## 1.2.1 - 2024-10-03
### Updated
- Updated url links
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "binance_spot_connector_rust"
version = "1.2.1"
version = "1.3.0"
authors = ["Binance"]
edition = "2021"
resolver = "2"
Expand Down
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ use binance_spot_connector_rust::{
market::klines::KlineInterval, market_stream::kline::KlineStream,
tokio_tungstenite::BinanceWebSocketClient,
};
use std::time::Duration;
use env_logger::Builder;
use futures_util::StreamExt;

Expand All @@ -124,8 +125,15 @@ async fn main() {
&KlineStream::new("BTCUSDT", KlineInterval::Minutes1).into()
])
.await;
// Start a timer for 10 seconds
let timer = tokio::time::Instant::now();
let duration = Duration::new(10, 0);
// Read messages
while let Some(message) = conn.as_mut().next().await {
if timer.elapsed() >= duration {
log::info!("10 seconds elapsed, exiting loop.");
break; // Exit the loop after 10 seconds
}
match message {
Ok(message) => {
let binary_data = message.into_data();
Expand Down
52 changes: 52 additions & 0 deletions examples/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@ path="market/agg_trades.rs"
name="market_klines"
path="market/klines.rs"

[[example]]
name="market_ui_klines"
path="market/ui_klines.rs"

[[example]]
name="market_avg_price"
path="market/avg_price.rs"
Expand All @@ -69,6 +73,10 @@ path="market/avg_price.rs"
name="market_ticker_twenty_four_hr"
path="market/ticker_twenty_four_hr.rs"

[[example]]
name="market_ticker_trading_day"
path="market/ticker_trading_day.rs"

[[example]]
name="market_ticker_price"
path="market/ticker_price.rs"
Expand Down Expand Up @@ -117,6 +125,14 @@ path="trade/all_orders.rs"
name="trade_new_oco_order"
path="trade/new_oco_order.rs"

[[example]]
name="trade_new_oto_order"
path="trade/new_oto_order.rs"

[[example]]
name="trade_new_otoco_order"
path="trade/new_otoco_order.rs"

[[example]]
name="trade_get_oco_order"
path="trade/get_oco_order.rs"
Expand All @@ -125,6 +141,14 @@ path="trade/get_oco_order.rs"
name="trade_cancel_oco_order"
path="trade/cancel_oco_order.rs"

[[example]]
name="trade_get_allocations"
path="trade/get_allocations.rs"

[[example]]
name="trade_get_commission_rates"
path="trade/get_commission_rates.rs"

[[example]]
name="trade_get_oco_orders"
path="trade/get_oco_orders.rs"
Expand All @@ -133,6 +157,10 @@ path="trade/get_oco_orders.rs"
name="trade_get_open_oco_orders"
path="trade/get_open_oco_orders.rs"

[[example]]
name="get_prevented_matches"
path="trade/get_prevented_matches.rs"

[[example]]
name="trade_account"
path="trade/account.rs"
Expand Down Expand Up @@ -365,6 +393,30 @@ path="wallet/user_asset.rs"
name="wallet_api_key_permission"
path="wallet/api_key_permission.rs"

[[example]]
name="wallet_account_info"
path="wallet/account_info.rs"

[[example]]
name="wallet_balance"
path="wallet/balance.rs"

[[example]]
name="wallet_delist_schedule"
path="wallet/delist_schedule.rs"

[[example]]
name="wallet_deposit_address_list"
path="wallet/deposit_address_list.rs"

[[example]]
name="wallet_deposit_credit_apply"
path="wallet/deposit_credit_apply.rs"

[[example]]
name="wallet_transfer_history"
path="wallet/transfer_history.rs"

[[example]]
name="stream_new_listen_key"
path="stream/new_listen_key.rs"
Expand Down
4 changes: 1 addition & 3 deletions examples/market/book_ticker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ async fn main() -> Result<(), Error> {
.init();

let client = BinanceHttpClient::default();
let request = market::book_ticker()
.symbol("BNBUSDT")
.symbols(vec!["BTCUSDT", "BNBBTC"]);
let request = market::book_ticker().symbols(vec!["BTCUSDT", "BNBBTC"]);
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
Expand Down
4 changes: 1 addition & 3 deletions examples/market/klines.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ async fn main() -> Result<(), Error> {
.init();

let client = BinanceHttpClient::default();
let request = market::klines("BNBUSDT", KlineInterval::Hours1)
.start_time(1654079109000)
.end_time(1654079209000);
let request = market::klines("BNBUSDT", KlineInterval::Hours1).limit(5);
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
Expand Down
5 changes: 2 additions & 3 deletions examples/market/rolling_window_price_change_statistics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@ async fn main() -> Result<(), Error> {
.init();

let client = BinanceHttpClient::default();
let request = market::rolling_window_price_change_statistics()
.symbol("BNBUSDT")
.symbols(vec!["BTCUSDT", "BNBBTC"]);
let request =
market::rolling_window_price_change_statistics().symbols(vec!["BTCUSDT", "BNBBTC"]);
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
Expand Down
2 changes: 1 addition & 1 deletion examples/market/ticker_price.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ async fn main() -> Result<(), Error> {
.init();

let client = BinanceHttpClient::default();
let request = market::ticker_price().symbols(vec!["BTCUSDT", "BNBBTC"]);
let request = market::ticker_price().symbols(vec!["BTCUSDT", "BNBUSDT"]);
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
Expand Down
20 changes: 20 additions & 0 deletions examples/market/ticker_trading_day.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
use binance_spot_connector_rust::{
hyper::{BinanceHttpClient, Error},
market::{self, rolling_window_price_change_statistics::TickerType},
};
use env_logger::Builder;

#[tokio::main]
async fn main() -> Result<(), Error> {
Builder::from_default_env()
.filter(None, log::LevelFilter::Info)
.init();

let client = BinanceHttpClient::default();
let request = market::ticker_trading_day()
.symbol("BNBUSDT")
.ticker_type(TickerType::Mini);
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
}
6 changes: 3 additions & 3 deletions examples/market/ticker_twenty_four_hr.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use binance_spot_connector_rust::{
hyper::{BinanceHttpClient, Error},
market,
market::{self, rolling_window_price_change_statistics::TickerType},
};
use env_logger::Builder;

Expand All @@ -12,8 +12,8 @@ async fn main() -> Result<(), Error> {

let client = BinanceHttpClient::default();
let request = market::ticker_twenty_four_hr()
.symbol("BNBUSDT")
.symbols(vec!["BTCUSDT", "BNBBTC"]);
.symbols(vec!["BTCUSDT", "BNBBTC"])
.ticker_type(TickerType::Mini);
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
Expand Down
18 changes: 18 additions & 0 deletions examples/market/ui_klines.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
use binance_spot_connector_rust::{
hyper::{BinanceHttpClient, Error},
market::{self, klines::KlineInterval},
};
use env_logger::Builder;

#[tokio::main]
async fn main() -> Result<(), Error> {
Builder::from_default_env()
.filter(None, log::LevelFilter::Info)
.init();

let client = BinanceHttpClient::default();
let request = market::ui_klines("BNBUSDT", KlineInterval::Hours1).limit(5);
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
}
8 changes: 8 additions & 0 deletions examples/tokio_tungstenite.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use binance_spot_connector_rust::{
};
use env_logger::Builder;
use futures_util::StreamExt;
use std::time::Duration;

const BINANCE_WSS_BASE_URL: &str = "wss://stream.binance.com:9443/ws";

Expand All @@ -21,8 +22,15 @@ async fn main() {
&KlineStream::new("BTCUSDT", KlineInterval::Minutes1).into()
])
.await;
// Start a timer for 10 seconds
let timer = tokio::time::Instant::now();
let duration = Duration::new(10, 0);
// Read messages
while let Some(message) = conn.as_mut().next().await {
if timer.elapsed() >= duration {
log::info!("10 seconds elapsed, exiting loop.");
break; // Exit the loop after 10 seconds
}
match message {
Ok(message) => {
let data = message.into_data();
Expand Down
19 changes: 19 additions & 0 deletions examples/trade/get_allocations.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
use binance_spot_connector_rust::{
http::Credentials,
hyper::{BinanceHttpClient, Error},
trade,
};
use env_logger::Builder;

#[tokio::main]
async fn main() -> Result<(), Error> {
Builder::from_default_env()
.filter(None, log::LevelFilter::Info)
.init();
let credentials = Credentials::from_hmac("api-key".to_owned(), "api-secret".to_owned());
let client = BinanceHttpClient::default().credentials(credentials);
let request = trade::get_allocations("BNBUSDT").limit(500);
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
}
19 changes: 19 additions & 0 deletions examples/trade/get_commission_rates.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
use binance_spot_connector_rust::{
http::Credentials,
hyper::{BinanceHttpClient, Error},
trade,
};
use env_logger::Builder;

#[tokio::main]
async fn main() -> Result<(), Error> {
Builder::from_default_env()
.filter(None, log::LevelFilter::Info)
.init();
let credentials = Credentials::from_hmac("api-key".to_owned(), "api-secret".to_owned());
let client = BinanceHttpClient::default().credentials(credentials);
let request = trade::get_commission_rates("BNBUSDT");
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
}
21 changes: 21 additions & 0 deletions examples/trade/get_prevented_matches.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
use binance_spot_connector_rust::{
http::Credentials,
hyper::{BinanceHttpClient, Error},
trade,
};
use env_logger::Builder;

#[tokio::main]
async fn main() -> Result<(), Error> {
Builder::from_default_env()
.filter(None, log::LevelFilter::Info)
.init();
let credentials = Credentials::from_hmac("api-key".to_owned(), "api-secret".to_owned());
let client = BinanceHttpClient::default().credentials(credentials);
let request = trade::get_prevented_matches("BNBUSDT")
.order_id(11)
.limit(500);
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
}
15 changes: 12 additions & 3 deletions examples/trade/new_oco_order.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,18 @@ async fn main() -> Result<(), Error> {
.init();
let credentials = Credentials::from_hmac("api-key".to_owned(), "api-secret".to_owned());
let client = BinanceHttpClient::default().credentials(credentials);
let request = trade::new_oco_order("BNBUSDT", Side::Sell, dec!(0.1), dec!(400.15), dec!(390.3))
.stop_limit_price(dec!(380.3))
.stop_limit_time_in_force(TimeInForce::Gtc);
let request = trade::new_oco_order(
"BNBUSDT",
Side::Sell,
dec!(1.0),
"LIMIT_MAKER",
"STOP_LOSS_LIMIT",
)
.above_price(dec!(610.1))
.below_price(dec!(600.3))
.below_stop_price(dec!(598.2))
.below_trailing_delta(dec!(60))
.below_time_in_force(TimeInForce::Gtc);
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Ok(())
Expand Down
3 changes: 1 addition & 2 deletions examples/trade/new_order.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ async fn main() -> Result<(), Error> {
.filter(None, log::LevelFilter::Debug)
.init();
let credentials = Credentials::from_hmac("the_api_key".to_owned(), "the_api_secret".to_owned());
let client =
BinanceHttpClient::with_url("https://testnet.binance.vision").credentials(credentials);
let client = BinanceHttpClient::default().credentials(credentials);
let request = trade::new_order("BNBUSDT", Side::Sell, "MARKET").quantity(dec!(0.1));
let data = client.send(request).await?.into_body_str().await?;
log::info!("{}", data);
Expand Down
Loading

0 comments on commit b23948b

Please sign in to comment.