pub struct BitgetConnector { /* private fields */ }Expand description
Bitget коннектор
Implementations§
Source§impl BitgetConnector
impl BitgetConnector
Sourcepub async fn new(
credentials: Option<Credentials>,
testnet: bool,
) -> ExchangeResult<Self>
pub async fn new( credentials: Option<Credentials>, testnet: bool, ) -> ExchangeResult<Self>
Создать новый коннектор
When testnet is true the connector operates in Bitget Demo Trading
(paper trading) mode: WebSocket connects to wspap.bitget.com and the
X-CHANNEL-API-CODE: paptrading header is added to every authenticated
REST request. The REST base URL remains the same as mainnet.
Sourcepub async fn public() -> ExchangeResult<Self>
pub async fn public() -> ExchangeResult<Self>
Создать коннектор только для публичных методов
Examples found in repository?
446async fn test_bitget_rest() -> RestTally {
447 println!("\n── Bitget REST ──────────────────────────────────────────────");
448 let mut tally = RestTally { exchange: "Bitget".into(), tested: 0, passed: 0, failed: 0 };
449
450 let conn = match BitgetConnector::public().await {
451 Ok(c) => c,
452 Err(e) => {
453 println!(" FAIL: connector init -> {}", e);
454 tally.failed += 1;
455 tally.tested += 1;
456 return tally;
457 }
458 };
459
460 // get_futures_open_interest
461 tally.tested += 1;
462 match conn.get_futures_open_interest("BTCUSDT", "USDT-FUTURES").await {
463 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_open_interest(BTCUSDT, USDT-FUTURES)", v); tally.passed += p as usize; }
464 Err(e) => { fail_rest!("get_futures_open_interest", e); tally.failed += 1; }
465 }
466
467 // NEW: get_futures_market_fills
468 tally.tested += 1;
469 match conn.get_futures_market_fills("BTCUSDT", "USDT-FUTURES", Some(10)).await {
470 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_market_fills(BTCUSDT, USDT-FUTURES)", v); tally.passed += p as usize; }
471 Err(e) => { fail_rest!("get_futures_market_fills", e); tally.failed += 1; }
472 }
473
474 // NEW: get_futures_mark_candles
475 tally.tested += 1;
476 match conn.get_futures_mark_candles("BTCUSDT", "USDT-FUTURES", "1H", None, None, Some(5)).await {
477 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_mark_candles(BTCUSDT, USDT-FUTURES, 1H)", v); tally.passed += p as usize; }
478 Err(e) => { fail_rest!("get_futures_mark_candles", e); tally.failed += 1; }
479 }
480
481 tally
482}Sourcepub async fn get_symbols(
&self,
account_type: AccountType,
) -> ExchangeResult<Value>
pub async fn get_symbols( &self, account_type: AccountType, ) -> ExchangeResult<Value>
Получить информацию о символах
Source§impl BitgetConnector
impl BitgetConnector
Sourcepub async fn get_spot_recent_fills(
&self,
symbol: &str,
limit: Option<u32>,
) -> ExchangeResult<Value>
pub async fn get_spot_recent_fills( &self, symbol: &str, limit: Option<u32>, ) -> ExchangeResult<Value>
Get recent public spot fills (market trades).
GET /api/v2/spot/market/fills
§Parameters
symbol: Spot symbol e.g.BTCUSDTlimit: Number of fills (optional, max 500)
Sourcepub async fn get_spot_history_candles(
&self,
symbol: &str,
granularity: &str,
end_time: Option<i64>,
limit: Option<u32>,
) -> ExchangeResult<Value>
pub async fn get_spot_history_candles( &self, symbol: &str, granularity: &str, end_time: Option<i64>, limit: Option<u32>, ) -> ExchangeResult<Value>
Get historical spot candles beyond the standard window.
GET /api/v2/spot/market/history-candles
§Parameters
symbol: Spot symbol e.g.BTCUSDTgranularity: Candle interval e.g.1min,1h,1dayend_time: End timestamp in ms (optional)limit: Number of candles (optional, max 200)
Sourcepub async fn get_futures_fill_history(
&self,
product_type: &str,
symbol: Option<&str>,
start_time: Option<i64>,
end_time: Option<i64>,
id_less_than: Option<&str>,
limit: Option<u32>,
) -> ExchangeResult<Value>
pub async fn get_futures_fill_history( &self, product_type: &str, symbol: Option<&str>, start_time: Option<i64>, end_time: Option<i64>, id_less_than: Option<&str>, limit: Option<u32>, ) -> ExchangeResult<Value>
Get futures fill/trade history (requires auth).
GET /api/v2/mix/order/fill-history
§Parameters
product_type: e.g.USDT-FUTURES,COIN-FUTURESsymbol: Futures symbol (optional)start_time: Start timestamp in ms (optional)end_time: End timestamp in ms (optional)id_less_than: Pagination — return records with ID less than this (optional)limit: Number of records (optional, max 100)
Sourcepub async fn get_futures_open_interest(
&self,
symbol: &str,
product_type: &str,
) -> ExchangeResult<Value>
pub async fn get_futures_open_interest( &self, symbol: &str, product_type: &str, ) -> ExchangeResult<Value>
Get futures open interest.
GET /api/v2/mix/market/open-interest
§Parameters
symbol: Futures symbol e.g.BTCUSDTproduct_type: e.g.USDT-FUTURES
Examples found in repository?
446async fn test_bitget_rest() -> RestTally {
447 println!("\n── Bitget REST ──────────────────────────────────────────────");
448 let mut tally = RestTally { exchange: "Bitget".into(), tested: 0, passed: 0, failed: 0 };
449
450 let conn = match BitgetConnector::public().await {
451 Ok(c) => c,
452 Err(e) => {
453 println!(" FAIL: connector init -> {}", e);
454 tally.failed += 1;
455 tally.tested += 1;
456 return tally;
457 }
458 };
459
460 // get_futures_open_interest
461 tally.tested += 1;
462 match conn.get_futures_open_interest("BTCUSDT", "USDT-FUTURES").await {
463 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_open_interest(BTCUSDT, USDT-FUTURES)", v); tally.passed += p as usize; }
464 Err(e) => { fail_rest!("get_futures_open_interest", e); tally.failed += 1; }
465 }
466
467 // NEW: get_futures_market_fills
468 tally.tested += 1;
469 match conn.get_futures_market_fills("BTCUSDT", "USDT-FUTURES", Some(10)).await {
470 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_market_fills(BTCUSDT, USDT-FUTURES)", v); tally.passed += p as usize; }
471 Err(e) => { fail_rest!("get_futures_market_fills", e); tally.failed += 1; }
472 }
473
474 // NEW: get_futures_mark_candles
475 tally.tested += 1;
476 match conn.get_futures_mark_candles("BTCUSDT", "USDT-FUTURES", "1H", None, None, Some(5)).await {
477 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_mark_candles(BTCUSDT, USDT-FUTURES, 1H)", v); tally.passed += p as usize; }
478 Err(e) => { fail_rest!("get_futures_mark_candles", e); tally.failed += 1; }
479 }
480
481 tally
482}Sourcepub async fn get_futures_funding_rate_history(
&self,
symbol: &str,
product_type: &str,
page_size: Option<u32>,
page_no: Option<u32>,
) -> ExchangeResult<Value>
pub async fn get_futures_funding_rate_history( &self, symbol: &str, product_type: &str, page_size: Option<u32>, page_no: Option<u32>, ) -> ExchangeResult<Value>
Get futures historical funding rates.
GET /api/v2/mix/market/history-fund-rate
§Parameters
symbol: Futures symbol e.g.BTCUSDTproduct_type: e.g.USDT-FUTURESpage_size: Number of records per page (optional, max 100)page_no: Page number (optional)
Sourcepub async fn get_futures_symbol_price(
&self,
symbol: &str,
product_type: &str,
) -> ExchangeResult<Value>
pub async fn get_futures_symbol_price( &self, symbol: &str, product_type: &str, ) -> ExchangeResult<Value>
Get futures mark price and index price.
GET /api/v2/mix/market/symbol-price
§Parameters
symbol: Futures symbol e.g.BTCUSDTproduct_type: e.g.USDT-FUTURES
Source§impl BitgetConnector
impl BitgetConnector
Sourcepub async fn get_futures_market_fills(
&self,
symbol: &str,
product_type: &str,
limit: Option<u32>,
) -> ExchangeResult<Value>
pub async fn get_futures_market_fills( &self, symbol: &str, product_type: &str, limit: Option<u32>, ) -> ExchangeResult<Value>
Get recent public futures fills (market trades).
GET /api/v2/mix/market/fills-history
Verified: returns [{tradeId, price, size, side, ts, symbol}] directly as data array.
§Parameters
symbol: Futures symbol e.g.BTCUSDTproduct_type: e.g.USDT-FUTURESlimit: Number of fills (optional, max 100)
Examples found in repository?
446async fn test_bitget_rest() -> RestTally {
447 println!("\n── Bitget REST ──────────────────────────────────────────────");
448 let mut tally = RestTally { exchange: "Bitget".into(), tested: 0, passed: 0, failed: 0 };
449
450 let conn = match BitgetConnector::public().await {
451 Ok(c) => c,
452 Err(e) => {
453 println!(" FAIL: connector init -> {}", e);
454 tally.failed += 1;
455 tally.tested += 1;
456 return tally;
457 }
458 };
459
460 // get_futures_open_interest
461 tally.tested += 1;
462 match conn.get_futures_open_interest("BTCUSDT", "USDT-FUTURES").await {
463 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_open_interest(BTCUSDT, USDT-FUTURES)", v); tally.passed += p as usize; }
464 Err(e) => { fail_rest!("get_futures_open_interest", e); tally.failed += 1; }
465 }
466
467 // NEW: get_futures_market_fills
468 tally.tested += 1;
469 match conn.get_futures_market_fills("BTCUSDT", "USDT-FUTURES", Some(10)).await {
470 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_market_fills(BTCUSDT, USDT-FUTURES)", v); tally.passed += p as usize; }
471 Err(e) => { fail_rest!("get_futures_market_fills", e); tally.failed += 1; }
472 }
473
474 // NEW: get_futures_mark_candles
475 tally.tested += 1;
476 match conn.get_futures_mark_candles("BTCUSDT", "USDT-FUTURES", "1H", None, None, Some(5)).await {
477 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_mark_candles(BTCUSDT, USDT-FUTURES, 1H)", v); tally.passed += p as usize; }
478 Err(e) => { fail_rest!("get_futures_mark_candles", e); tally.failed += 1; }
479 }
480
481 tally
482}Sourcepub async fn get_futures_mark_candles(
&self,
symbol: &str,
product_type: &str,
granularity: &str,
start_time: Option<i64>,
end_time: Option<i64>,
limit: Option<u32>,
) -> ExchangeResult<Value>
pub async fn get_futures_mark_candles( &self, symbol: &str, product_type: &str, granularity: &str, start_time: Option<i64>, end_time: Option<i64>, limit: Option<u32>, ) -> ExchangeResult<Value>
Get mark price OHLCV history for a futures contract.
GET /api/v2/mix/market/history-mark-candles
Verified: returns array of [ts, open, high, low, close, vol, notional] candles.
§Parameters
symbol: Futures symbol e.g.BTCUSDTproduct_type: e.g.USDT-FUTURESgranularity: Candle interval e.g.1m,1H,1Dstart_time: Start timestamp in ms (optional)end_time: End timestamp in ms (optional)limit: Number of candles (optional, max 200)
Examples found in repository?
446async fn test_bitget_rest() -> RestTally {
447 println!("\n── Bitget REST ──────────────────────────────────────────────");
448 let mut tally = RestTally { exchange: "Bitget".into(), tested: 0, passed: 0, failed: 0 };
449
450 let conn = match BitgetConnector::public().await {
451 Ok(c) => c,
452 Err(e) => {
453 println!(" FAIL: connector init -> {}", e);
454 tally.failed += 1;
455 tally.tested += 1;
456 return tally;
457 }
458 };
459
460 // get_futures_open_interest
461 tally.tested += 1;
462 match conn.get_futures_open_interest("BTCUSDT", "USDT-FUTURES").await {
463 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_open_interest(BTCUSDT, USDT-FUTURES)", v); tally.passed += p as usize; }
464 Err(e) => { fail_rest!("get_futures_open_interest", e); tally.failed += 1; }
465 }
466
467 // NEW: get_futures_market_fills
468 tally.tested += 1;
469 match conn.get_futures_market_fills("BTCUSDT", "USDT-FUTURES", Some(10)).await {
470 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_market_fills(BTCUSDT, USDT-FUTURES)", v); tally.passed += p as usize; }
471 Err(e) => { fail_rest!("get_futures_market_fills", e); tally.failed += 1; }
472 }
473
474 // NEW: get_futures_mark_candles
475 tally.tested += 1;
476 match conn.get_futures_mark_candles("BTCUSDT", "USDT-FUTURES", "1H", None, None, Some(5)).await {
477 Ok(v) => { let (p, _) = ok_rest_single!("get_futures_mark_candles(BTCUSDT, USDT-FUTURES, 1H)", v); tally.passed += p as usize; }
478 Err(e) => { fail_rest!("get_futures_mark_candles", e); tally.failed += 1; }
479 }
480
481 tally
482}Trait Implementations§
Source§impl Account for BitgetConnector
impl Account for BitgetConnector
Source§fn get_balance<'life0, 'async_trait>(
&'life0 self,
query: BalanceQuery,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Balance>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_balance<'life0, 'async_trait>(
&'life0 self,
query: BalanceQuery,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Balance>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_account_info<'life0, 'async_trait>(
&'life0 self,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<AccountInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_account_info<'life0, 'async_trait>(
&'life0 self,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<AccountInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_fees<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: Option<&'life1 str>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<FeeInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_fees<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: Option<&'life1 str>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<FeeInfo>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn account_capabilities(&self, account_type: AccountType) -> AccountCapabilities
fn account_capabilities(&self, account_type: AccountType) -> AccountCapabilities
Source§impl AccountLedger for BitgetConnector
impl AccountLedger for BitgetConnector
Source§fn get_ledger<'life0, 'async_trait>(
&'life0 self,
filter: LedgerFilter,
_account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<LedgerEntry>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_ledger<'life0, 'async_trait>(
&'life0 self,
filter: LedgerFilter,
_account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<LedgerEntry>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get spot account bill/ledger records from GET /api/v2/spot/account/bills.
Params: coin (optional), groupType, businessType, startTime (ms),
endTime (ms), limit (max 500), idLessThan (for pagination).
Source§impl AccountTransfers for BitgetConnector
impl AccountTransfers for BitgetConnector
Source§fn transfer<'life0, 'async_trait>(
&'life0 self,
req: TransferRequest,
) -> Pin<Box<dyn Future<Output = ExchangeResult<TransferResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn transfer<'life0, 'async_trait>(
&'life0 self,
req: TransferRequest,
) -> Pin<Box<dyn Future<Output = ExchangeResult<TransferResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Transfer between Spot, Futures, P2P, etc.
POST /api/v2/spot/wallet/transfer Body: { fromType, toType, amount, coin }
Source§fn get_transfer_history<'life0, 'async_trait>(
&'life0 self,
filter: TransferHistoryFilter,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<TransferResponse>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_transfer_history<'life0, 'async_trait>(
&'life0 self,
filter: TransferHistoryFilter,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<TransferResponse>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get internal transfer history.
GET /api/v2/spot/account/transferRecords
Source§impl AmendOrder for BitgetConnector
impl AmendOrder for BitgetConnector
Source§fn amend_order<'life0, 'async_trait>(
&'life0 self,
req: AmendRequest,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Order>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn amend_order<'life0, 'async_trait>(
&'life0 self,
req: AmendRequest,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Order>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl BatchOrders for BitgetConnector
impl BatchOrders for BitgetConnector
Source§fn max_batch_place_size(&self) -> usize
fn max_batch_place_size(&self) -> usize
Source§fn max_batch_cancel_size(&self) -> usize
fn max_batch_cancel_size(&self) -> usize
Source§fn place_orders_batch<'life0, 'async_trait>(
&'life0 self,
orders: Vec<OrderRequest>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<OrderResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn place_orders_batch<'life0, 'async_trait>(
&'life0 self,
orders: Vec<OrderRequest>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<OrderResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn cancel_orders_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
order_ids: Vec<String>,
symbol: Option<&'life1 str>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<OrderResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn cancel_orders_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
order_ids: Vec<String>,
symbol: Option<&'life1 str>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<OrderResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl CancelAll for BitgetConnector
impl CancelAll for BitgetConnector
Source§fn cancel_all_orders<'life0, 'async_trait>(
&'life0 self,
scope: CancelScope,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<CancelAllResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn cancel_all_orders<'life0, 'async_trait>(
&'life0 self,
scope: CancelScope,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<CancelAllResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl CustodialFunds for BitgetConnector
impl CustodialFunds for BitgetConnector
Source§fn get_deposit_address<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
asset: &'life1 str,
network: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<DepositAddress>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_deposit_address<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
asset: &'life1 str,
network: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<DepositAddress>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get deposit address for an asset.
GET /api/v2/spot/wallet/deposit-address
Source§fn withdraw<'life0, 'async_trait>(
&'life0 self,
req: WithdrawRequest,
) -> Pin<Box<dyn Future<Output = ExchangeResult<WithdrawResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn withdraw<'life0, 'async_trait>(
&'life0 self,
req: WithdrawRequest,
) -> Pin<Box<dyn Future<Output = ExchangeResult<WithdrawResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Submit a withdrawal request.
POST /api/v2/spot/wallet/withdrawal
Source§fn get_funds_history<'life0, 'async_trait>(
&'life0 self,
filter: FundsHistoryFilter,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<FundsRecord>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_funds_history<'life0, 'async_trait>(
&'life0 self,
filter: FundsHistoryFilter,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<FundsRecord>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get deposit and/or withdrawal history.
GET /api/v2/spot/wallet/deposit-records (deposits) GET /api/v2/spot/wallet/withdrawal-records (withdrawals)
Source§impl ExchangeIdentity for BitgetConnector
impl ExchangeIdentity for BitgetConnector
Source§fn exchange_id(&self) -> ExchangeId
fn exchange_id(&self) -> ExchangeId
Source§fn metrics(&self) -> ConnectorStats
fn metrics(&self) -> ConnectorStats
Source§fn rate_limit_capabilities(&self) -> RateLimitCapabilities
fn rate_limit_capabilities(&self) -> RateLimitCapabilities
Source§fn is_testnet(&self) -> bool
fn is_testnet(&self) -> bool
Source§fn supported_account_types(&self) -> Vec<AccountType>
fn supported_account_types(&self) -> Vec<AccountType>
Source§fn exchange_type(&self) -> ExchangeType
fn exchange_type(&self) -> ExchangeType
Source§fn orderbook_capabilities(
&self,
_account_type: AccountType,
) -> OrderbookCapabilities
fn orderbook_capabilities( &self, _account_type: AccountType, ) -> OrderbookCapabilities
Source§fn exchange_name(&self) -> &'static str
fn exchange_name(&self) -> &'static str
Source§impl FundingHistory for BitgetConnector
impl FundingHistory for BitgetConnector
Source§fn get_funding_payments<'life0, 'async_trait>(
&'life0 self,
filter: FundingFilter,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<FundingPayment>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_funding_payments<'life0, 'async_trait>(
&'life0 self,
filter: FundingFilter,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<FundingPayment>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl HasCapabilities for BitgetConnector
impl HasCapabilities for BitgetConnector
Source§fn capabilities(&self) -> ConnectorCapabilities
fn capabilities(&self) -> ConnectorCapabilities
Source§fn validation_status(&self) -> Option<&'static ValidationStamp>
fn validation_status(&self) -> Option<&'static ValidationStamp>
e2e_smoke harness run. Read moreSource§impl MarketData for BitgetConnector
impl MarketData for BitgetConnector
Source§fn get_price<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Price>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_price<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Price>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_orderbook<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
depth: Option<u16>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<OrderBook>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_orderbook<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
depth: Option<u16>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<OrderBook>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_klines<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
interval: &'life2 str,
limit: Option<u16>,
account_type: AccountType,
end_time: Option<i64>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Kline>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_klines<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
interval: &'life2 str,
limit: Option<u16>,
account_type: AccountType,
end_time: Option<i64>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Kline>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_ticker<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Ticker>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_ticker<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Ticker>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn ping<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ExchangeResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn ping<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ExchangeResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_exchange_info<'life0, 'async_trait>(
&'life0 self,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<SymbolInfo>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_exchange_info<'life0, 'async_trait>(
&'life0 self,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<SymbolInfo>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn market_data_capabilities(
&self,
account_type: AccountType,
) -> MarketDataCapabilities
fn market_data_capabilities( &self, account_type: AccountType, ) -> MarketDataCapabilities
Source§impl MarketDataPublic for BitgetConnector
impl MarketDataPublic for BitgetConnector
Source§fn get_recent_trades<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
limit: Option<u32>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<PublicTrade>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_recent_trades<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
limit: Option<u32>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<PublicTrade>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_liquidation_history<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: Option<SymbolInput<'life1>>,
start_time: Option<i64>,
end_time: Option<i64>,
limit: Option<u32>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Liquidation>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_liquidation_history<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: Option<SymbolInput<'life1>>,
start_time: Option<i64>,
end_time: Option<i64>,
limit: Option<u32>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Liquidation>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_open_interest_history<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
period: &'life2 str,
start_time: Option<i64>,
end_time: Option<i64>,
limit: Option<u32>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<OpenInterest>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_open_interest_history<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
period: &'life2 str,
start_time: Option<i64>,
end_time: Option<i64>,
limit: Option<u32>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<OpenInterest>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_long_short_ratio_history<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
period: &'life2 str,
start_time: Option<i64>,
end_time: Option<i64>,
limit: Option<u32>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<LongShortRatio>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_long_short_ratio_history<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
period: &'life2 str,
start_time: Option<i64>,
end_time: Option<i64>,
limit: Option<u32>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<LongShortRatio>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_mark_price_klines<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
interval: &'life2 str,
limit: Option<u32>,
account_type: AccountType,
end_time: Option<i64>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Kline>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_mark_price_klines<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
interval: &'life2 str,
limit: Option<u32>,
account_type: AccountType,
end_time: Option<i64>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Kline>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_index_price_klines<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
interval: &'life2 str,
limit: Option<u32>,
account_type: AccountType,
end_time: Option<i64>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Kline>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_index_price_klines<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
interval: &'life2 str,
limit: Option<u32>,
account_type: AccountType,
end_time: Option<i64>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Kline>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_funding_rate_history<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
start_time: Option<i64>,
end_time: Option<i64>,
limit: Option<u32>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<FundingRate>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_funding_rate_history<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: SymbolInput<'life1>,
start_time: Option<i64>,
end_time: Option<i64>,
limit: Option<u32>,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<FundingRate>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl Positions for BitgetConnector
impl Positions for BitgetConnector
Source§fn get_positions<'life0, 'async_trait>(
&'life0 self,
query: PositionQuery,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Position>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_positions<'life0, 'async_trait>(
&'life0 self,
query: PositionQuery,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<Position>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_funding_rate<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<FundingRate>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_funding_rate<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<FundingRate>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_open_interest<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<OpenInterest>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_open_interest<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<OpenInterest>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_mark_price<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = ExchangeResult<MarkPrice>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_mark_price<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = ExchangeResult<MarkPrice>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn modify_position<'life0, 'async_trait>(
&'life0 self,
req: PositionModification,
) -> Pin<Box<dyn Future<Output = ExchangeResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn modify_position<'life0, 'async_trait>(
&'life0 self,
req: PositionModification,
) -> Pin<Box<dyn Future<Output = ExchangeResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_closed_pnl<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: Option<&'life1 str>,
start_time: Option<u64>,
end_time: Option<u64>,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<ClosedPnlRecord>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_closed_pnl<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: Option<&'life1 str>,
start_time: Option<u64>,
end_time: Option<u64>,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = ExchangeResult<Vec<ClosedPnlRecord>>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_long_short_ratio<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<LongShortRatio>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_long_short_ratio<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
account_type: AccountType,
) -> Pin<Box<dyn Future<Output = ExchangeResult<LongShortRatio>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl SubAccounts for BitgetConnector
impl SubAccounts for BitgetConnector
Source§fn sub_account_operation<'life0, 'async_trait>(
&'life0 self,
op: SubAccountOperation,
) -> Pin<Box<dyn Future<Output = ExchangeResult<SubAccountResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn sub_account_operation<'life0, 'async_trait>(
&'life0 self,
op: SubAccountOperation,
) -> Pin<Box<dyn Future<Output = ExchangeResult<SubAccountResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Perform sub-account operations: Create, List, Transfer, GetBalance.