use figment::{Figment, providers::Env};
use std::sync::Arc;
use xapi_binance::{
clients::spot::BnSpot,
common::{
endpoint::BnEndpoint, executor::BnExecutor, ratelimiter::BnRatelimiter, signer::BnSigner,
},
};
mod clients;
mod common;
lazy_static::lazy_static! {
pub static ref LIMITER: Arc<BnRatelimiter> = Arc::new(BnRatelimiter::default());
}
fn make_test_spot_pub() -> BnSpot {
BnSpot::builder()
.executor(
BnExecutor::builder()
.endpoint(BnEndpoint::new_spot())
.ratelimiter(LIMITER.clone())
.build(),
)
.build()
}
fn make_test_spot_priv() -> BnSpot {
dotenvy::from_filename(".env.testnet").ok();
let signer: BnSigner = Figment::new()
.merge(Env::prefixed("BNSPOT_"))
.extract()
.unwrap();
BnSpot::builder()
.executor(
BnExecutor::builder()
.endpoint(BnEndpoint::new_spot_testnet())
.ratelimiter(LIMITER.clone())
.signer(signer)
.build(),
)
.build()
}