Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 34 additions & 7 deletions lib/babel_binance.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,59 @@
/// This library provides convenient access to the Binance REST API and WebSocket streams.
library babel_binance;

// Core
export 'src/babel_binance_base.dart';
export 'src/auto_invest.dart';
export 'src/binance_base.dart';
export 'src/spot.dart';
export 'src/futures_usd.dart';
export 'src/margin.dart';
export 'src/testnet.dart';
export 'src/websockets.dart';
export 'src/simulated_convert.dart';

// Configuration
export 'src/config/binance_config.dart';

// Exceptions
export 'src/exceptions/binance_exception.dart';
export 'src/exceptions/api_exception.dart';
export 'src/exceptions/network_exception.dart';
export 'src/exceptions/validation_exception.dart';

// Logging
export 'src/logging/logger.dart';
export 'src/logging/log_level.dart';
export 'src/logging/console_logger.dart';

// Rate Limiting
export 'src/rate_limiting/rate_limiter.dart';
export 'src/rate_limiting/rate_limit_config.dart';

// WebSocket
export 'src/websocket/websocket_client.dart';
export 'src/websocket/websocket_config.dart';
export 'src/websocket/websocket_stream.dart';
export 'src/websocket/stream_types.dart';

// Additional API modules
export 'src/auto_invest.dart';
export 'src/blvt.dart';
export 'src/c2c.dart';
export 'src/convert.dart';
export 'src/copy_trading.dart';
export 'src/fiat.dart';
export 'src/futures_algo.dart';
export 'src/futures_coin.dart';
export 'src/futures_usd.dart';
export 'src/gift_card.dart';
export 'src/loan.dart';
export 'src/margin.dart';
export 'src/mining.dart';
export 'src/nft.dart';
export 'src/pay.dart';
export 'src/portfolio_margin.dart';
export 'src/rebate.dart';
export 'src/savings.dart';
export 'src/simple_earn.dart';
export 'src/simulated_convert.dart';
export 'src/spot.dart';
export 'src/staking.dart';
export 'src/sub_account.dart';
export 'src/testnet.dart';
export 'src/vip_loan.dart';
export 'src/wallet.dart';
export 'src/websockets.dart';
51 changes: 40 additions & 11 deletions lib/src/babel_binance_base.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import './simulated_convert.dart';
import './futures_usd.dart';
import './margin.dart';
import './testnet.dart';
import './config/binance_config.dart';
import './logging/logger.dart';

class Binance {
final Spot spot;
Expand All @@ -11,23 +13,50 @@ class Binance {
final Margin margin;
final TestnetSpot testnetSpot;
final TestnetFuturesUsd testnetFutures;
final BinanceConfig config;
final BinanceLogger logger;

Binance({String? apiKey, String? apiSecret})
: spot = Spot(apiKey: apiKey, apiSecret: apiSecret),
simulatedConvert =
SimulatedConvert(apiKey: apiKey, apiSecret: apiSecret),
futuresUsd = FuturesUsd(apiKey: apiKey, apiSecret: apiSecret),
margin = Margin(apiKey: apiKey, apiSecret: apiSecret),
testnetSpot = TestnetSpot(apiKey: apiKey, apiSecret: apiSecret),
testnetFutures =
TestnetFuturesUsd(apiKey: apiKey, apiSecret: apiSecret);
Binance({
String? apiKey,
String? apiSecret,
BinanceConfig? config,
BinanceLogger? logger,
}) : config = config ?? BinanceConfig.defaultConfig,
logger = logger ?? const NoOpLogger(),
spot = Spot(apiKey: apiKey, apiSecret: apiSecret),
simulatedConvert =
SimulatedConvert(apiKey: apiKey, apiSecret: apiSecret),
futuresUsd = FuturesUsd(apiKey: apiKey, apiSecret: apiSecret),
margin = Margin(apiKey: apiKey, apiSecret: apiSecret),
testnetSpot = TestnetSpot(apiKey: apiKey, apiSecret: apiSecret),
testnetFutures =
TestnetFuturesUsd(apiKey: apiKey, apiSecret: apiSecret);

/// Create a Binance instance specifically configured for testnet
///
/// Use this when you want to test with real API endpoints but test data
/// Get your testnet API keys from: https://testnet.binance.vision/
factory Binance.testnet({required String apiKey, required String apiSecret}) {
return Binance(apiKey: apiKey, apiSecret: apiSecret);
factory Binance.testnet({
required String apiKey,
required String apiSecret,
BinanceConfig? config,
BinanceLogger? logger,
}) {
return Binance(
apiKey: apiKey,
apiSecret: apiSecret,
config: config,
logger: logger,
);
}

/// Dispose and clean up resources
void dispose() {
spot.market.dispose();
futuresUsd.dispose();
margin.dispose();
testnetSpot.dispose();
testnetFutures.dispose();
}
}

Expand Down
Loading