df_hyperliquid_core/deploy/
tokens.rs1use crate::client::{ApiError, Transport, info, info_request, user_request};
5use crate::utils::{Address, Dec};
6use serde::Deserialize;
7
8#[must_use]
10pub fn spot_deploy_state_request(user: Address) -> String {
11 user_request("spotDeployState", user)
12}
13
14pub async fn spot_deploy_state(transport: &impl Transport, user: Address) -> Result<SpotDeployState, ApiError> {
15 info(transport, spot_deploy_state_request(user)).await
16}
17
18#[must_use]
20pub fn spot_pair_deploy_auction_request() -> String {
21 info_request("spotPairDeployAuctionStatus", &[])
22}
23
24pub async fn spot_pair_deploy_auction(transport: &impl Transport) -> Result<GasAuction, ApiError> {
25 info(transport, spot_pair_deploy_auction_request()).await
26}
27
28#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
29#[serde(rename_all = "camelCase")]
30pub struct SpotDeployState {
31 #[serde(default)]
33 pub states: Vec<DeployingToken>,
34 pub gas_auction: GasAuction,
36}
37
38pub use crate::deploy::auction::GasAuction;
40
41#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
43#[serde(rename_all = "camelCase")]
44pub struct DeployingToken {
45 pub token: u32,
47 pub spec: TokenSpec,
48 #[serde(default)]
49 pub full_name: Option<String>,
50 #[serde(default)]
51 pub deployer_trading_fee_share: Option<Dec>,
52 #[serde(default)]
54 pub spots: Vec<u32>,
55 #[serde(default)]
57 pub max_supply: Option<Dec>,
58 #[serde(default)]
59 pub hyperliquidity_genesis_balance: Option<Dec>,
60 #[serde(default)]
61 pub total_genesis_balance_wei: Option<Dec>,
62 #[serde(default)]
63 pub user_genesis_balances: Vec<(Address, Dec)>,
64 #[serde(default)]
65 pub existing_token_genesis_balances: Vec<(u32, Dec)>,
66 #[serde(default)]
67 pub blacklist_users: Vec<Address>,
68}
69
70#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
72#[serde(rename_all = "camelCase")]
73pub struct TokenSpec {
74 pub name: String,
75 pub sz_decimals: u32,
76 pub wei_decimals: u32,
77}