Skip to main content

jupiter_sdk/models/token/
mod.rs

1use serde::{Deserialize, Serialize};
2use serde_with::serde_as;
3
4
5
6
7
8#[derive(Debug, Deserialize, Serialize)]
9#[serde(rename_all = "camelCase")]
10#[serde_as]
11pub struct TokenSearchReq {
12    pub query: String,
13}
14
15
16pub type TokenSearchRes = Vec<Token>;
17
18#[derive(Debug, Deserialize, Serialize)]
19#[serde(rename_all = "camelCase")]
20#[serde_as]
21pub struct Token {
22    pub id: String,
23    pub name: String,
24    pub symbol: String,
25    pub icon: String,
26    pub decimals: i32,
27    pub twitter: String,
28    pub telegram: String,
29    pub website: String,
30    pub dev: String,
31    pub circ_supply: f64,
32    pub total_supply: f64,
33    pub token_program: String,
34    pub launchpad: String,
35    pub partner_config: String,
36    pub graduated_pool: String,
37    pub graduated_at: String,
38    pub holder_count: i64,
39    pub fdv: f64,
40    pub mcap: f64,
41    pub usd_price: f64,
42    pub price_block_id: i64,
43    pub liquidity: LiquidityStat,
44    pub organic_score: f64,
45    // high, medium, low
46    pub organic_score_label: String,
47    pub is_verified: bool,
48    pub cexes: Vec<String>,
49    pub tags: Vec<String>,
50    pub updated_at: String,
51}
52
53
54#[derive(Debug, Deserialize, Serialize)]
55#[serde(rename_all = "camelCase")]
56#[serde_as]
57pub struct LiquidityStat {
58    pub stats5m: LiquidityStatItem,
59    pub stats1h: LiquidityStatItem,
60    pub stats6h: LiquidityStatItem,
61    pub stats24h: LiquidityStatItem,
62    pub firt_pool: Pool,
63    pub audit: Audit,
64}
65
66#[derive(Debug, Deserialize, Serialize)]
67#[serde(rename_all = "camelCase")]
68#[serde_as]
69pub struct Pool {
70    pub id: String,
71    pub created_at: String,
72}
73
74
75#[derive(Debug, Deserialize, Serialize)]
76#[serde(rename_all = "camelCase")]
77#[serde_as]
78pub struct Audit {
79    pub is_sus: bool,
80    pub mint_authority_disabled: bool,
81    pub freeze_authority_disabled: bool,
82    pub top_holders_percentage: f64,
83    pub dev_balance_percentage: f64,
84    pub dev_migrations: f64,
85}
86
87#[derive(Debug, Deserialize, Serialize)]
88#[serde(rename_all = "camelCase")]
89#[serde_as]
90pub struct LiquidityStatItem {
91    pub price_cange: String,
92    pub holder_change: String,
93    pub liquidity_change: String,
94    pub volume_change: String,
95    pub buy_volume: String,
96    pub sell_volume: String,
97    pub buy_organic_volume: String,
98    pub sell_organic_volume: String,
99    pub num_buys: String,
100    pub num_sells: String,
101    pub num_traders: String,
102    pub num_organic_buyers: String,
103    pub num_net_buyers: String,
104}
105
106
107
108
109
110#[derive(Debug, Deserialize, Serialize)]
111#[serde(rename_all = "camelCase")]
112#[serde_as]
113pub struct GetByTagQueryReq {
114    pub query: String,
115}
116
117
118pub type GetByTagQueryRes = Vec<Token>;
119
120
121
122#[derive(Debug, Deserialize, Serialize)]
123#[serde(rename_all = "camelCase")]
124#[serde_as]
125pub struct GetByCategoryQueryReq {
126    pub limit: i64,
127}
128
129pub type GetByCategoryQueryRes = Vec<Token>;
130
131
132pub type GetRecentRes = Vec<Token>;