xapi-binance 0.0.1

Binance API client
Documentation
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()
}