1use std::sync::Arc;
2
3use ethers::signers::{LocalWallet, Signer};
4use hyperliquid::{types::Chain, Exchange, Hyperliquid, Info};
5
6#[tokio::main]
7async fn main() {
8 let wallet: Arc<LocalWallet> = Arc::new(
10 "e908f86dbb4d55ac876378565aafeabc187f6690f046459397b17d9b9a19688e"
11 .parse()
12 .unwrap(),
13 );
14
15 let exchange: Exchange = Hyperliquid::new(Chain::Dev);
16
17 let leverage = 2;
18 let asset = 4;
19 let is_cross = false;
20
21 println!("Updating leverage to {}x ...", leverage);
22
23 let res = exchange
24 .update_leverage(wallet.clone(), leverage, asset, is_cross)
25 .await
26 .unwrap();
27
28 println!("Response: {:?}", res);
29
30 let margin = 1;
31
32 println!("--\nUpdating isolated margin for ETH to {margin}% ...");
33
34 let res = exchange
35 .update_isolated_margin(wallet.clone(), asset, true, margin)
36 .await
37 .unwrap();
38
39 println!("Response: {:?}", res);
40
41 let info: Info = Hyperliquid::new(Chain::Dev);
42
43 let res = info.user_state(wallet.address()).await.unwrap();
45
46 println!("--\nUser state: {:?}", res);
47}