Skip to main content

create_cross_liquidate_orders/
create_cross_liquidate_orders.rs

1use gateio_rs::{api::spot, http::Credentials, ureq::GateHttpClient};
2use serde_json::Value;
3
4fn main() -> Result<(), Box<gateio_rs::ureq::Error>> {
5    dotenv::dotenv().ok();
6
7    let api_key = std::env::var("GATE_API_KEY").expect("GATE_API_KEY not set");
8    let api_secret = std::env::var("GATE_API_SECRET").expect("GATE_API_SECRET not set");
9    let credentials = Credentials::new(api_key, api_secret);
10
11    let client = GateHttpClient::default().credentials(credentials.clone());
12
13    // ⚠️  WARNING: This is for cross margin liquidation scenarios
14    // Use with extreme caution
15    println!("⚠️  WARNING: This creates cross liquidation orders!");
16    println!("These are typically used in margin liquidation scenarios.");
17    println!("Proceeding in 3 seconds... Press Ctrl+C to abort");
18    std::thread::sleep(std::time::Duration::from_secs(3));
19
20    // Create cross liquidation orders
21    let orders = vec![
22        spot::CrossLiquidateOrder::new("BTC_USDT", "0.01", "45000")
23            .text("Cross liquidation order")
24            .action_mode("ACK"),
25    ];
26
27    let req = spot::create_cross_liquidate_orders(orders);
28
29    let resp = client.send(req)?;
30    let body = resp.into_body_str()?;
31    let resp_obj: Value = serde_json::from_str(&body).unwrap();
32    println!("{:?}", resp_obj);
33
34    Ok(())
35}