jupiter_sdk/models/recurring/
mod.rs1use serde::{Deserialize, Serialize};
2use serde_with::serde_as;
3
4use crate::trigger::Trade;
5
6
7
8
9#[derive(Debug, Deserialize, Serialize)]
10#[serde(rename_all = "camelCase")]
11#[serde_as]
12pub struct CreateRecurringOrderReq {
13 pub input_mint: String,
14 pub output_mint: String,
15 pub params: CreateRecurringOrderParams,
16 pub user: String,
17}
18
19#[derive(Debug, Deserialize, Serialize)]
20#[serde(rename_all = "camelCase")]
21#[serde_as]
22pub struct CreateRecurringOrderParams {
23 pub in_amount: i64,
24 pub interval: i64,
25 pub max_price: Option<f64>,
26 pub min_price: Option<f64>,
27 pub number_of_orders: i64,
28 pub start_at: i64,
29}
30
31
32#[derive(Debug, Deserialize, Serialize)]
33#[serde(rename_all = "camelCase")]
34#[serde_as]
35pub struct CreateRecurringOrderRes {
36 pub request_id: String,
37 pub transaction: String,
38}
39
40
41#[derive(Debug, Deserialize, Serialize)]
42#[serde(rename_all = "camelCase")]
43pub enum CloseRecurringType {
44 Time,
45 Price,
46}
47
48
49#[derive(Debug, Deserialize, Serialize)]
50#[serde(rename_all = "camelCase")]
51#[serde_as]
52pub struct CancelRecurringOrderReq {
53 pub order: String,
54 pub recurring_type: CloseRecurringType,
55 pub user: String,
56}
57
58#[derive(Debug, Deserialize, Serialize)]
59#[serde(rename_all = "camelCase")]
60#[serde_as]
61pub struct CancelRecurringOrderRes {
62 pub request_id: String,
63 pub transaction: String,
64}
65
66
67#[derive(Debug, Deserialize, Serialize)]
68#[serde(rename_all = "camelCase")]
69#[serde_as]
70pub struct PriceDepositReq {
71 pub amount: String,
72 pub order: String,
73 pub user: String,
74}
75
76#[derive(Debug, Deserialize, Serialize)]
77#[serde(rename_all = "camelCase")]
78#[serde_as]
79pub struct PriceDepositRes {
80 pub request_id: String,
81 pub transaction: String,
82}
83
84
85#[derive(Debug, Deserialize, Serialize)]
86#[serde(rename_all = "camelCase")]
87#[serde_as]
88pub enum Withdrawal {
89 In,
90 Out,
91}
92
93#[derive(Debug, Deserialize, Serialize)]
94#[serde(rename_all = "camelCase")]
95#[serde_as]
96pub struct PriceWithdrawReq {
97 pub amount: String,
98 pub input_or_output: Withdrawal,
99 pub order: String,
100 pub user: String,
101}
102
103#[derive(Debug, Deserialize, Serialize)]
104#[serde(rename_all = "camelCase")]
105#[serde_as]
106pub struct PriceWithdrawRes {
107 pub request_id: String,
108 pub transaction: String,
109}
110
111
112#[derive(Debug, Deserialize, Serialize)]
113#[serde(rename_all = "camelCase")]
114#[serde_as]
115pub enum RecurringOrderType {
116 Time,
117 Price,
118 All,
119}
120
121#[derive(Debug, Deserialize, Serialize)]
122#[serde(rename_all = "camelCase")]
123#[serde_as]
124pub enum OrderStatus {
125 Active,
126 History,
127}
128
129#[derive(Debug, Deserialize, Serialize)]
130#[serde(rename_all = "camelCase")]
131#[serde_as]
132pub struct GetRecurringOrdersReq {
133 pub recurring_type: RecurringOrderType,
134 pub order_status: OrderStatus,
135 pub user: String,
136 pub page: i64,
137 pub include_failed_tx: bool,
138 pub mint: Option<String>,
139}
140
141
142
143#[derive(Debug, Deserialize, Serialize)]
144#[serde(rename_all = "camelCase")]
145#[serde_as]
146pub struct GetRecurringOrdersRes {
147 pub order_status: OrderStatus,
148 pub page: i64,
149 pub total_pages: i64,
150 pub user: String,
151 pub timer: Option<Vec<TimeOrder>>,
152 pub price: Option<Vec<PriceOrder>>,
153}
154
155#[derive(Debug, Deserialize, Serialize)]
156#[serde(rename_all = "camelCase")]
157#[serde_as]
158pub struct TimeOrder {
159 pub close_tx: String,
160 pub created_at: String,
161 pub cycle_frequency: String,
162 pub in_amount_per_cycle: String,
163 pub in_deposited: String,
164 pub in_used: String,
165 pub in_withdrawn: String,
166 pub input_mint: String,
167 pub max_out_amount: String,
168 pub min_out_amount: String,
169 pub open_tx: String,
170 pub order_key: String,
171 pub out_received: String,
172 pub out_withdrawn: String,
173 pub output_mint: String,
174 pub raw_in_amount_per_cycl: String,
175 pub raw_in_deposited: String,
176 pub raw_in_used: String,
177 pub raw_in_withdrawn: String,
178 pub raw_max_out_amount: String,
179 pub raw_min_out_amount: String,
180 pub raw_out_received: String,
181 pub raw_out_withdrawn: String,
182 pub trades: Vec<Trade>,
183 pub updated_at: String,
184 pub user_closed: bool,
185 pub user_pubkey: String,
186}
187
188
189#[derive(Debug, Deserialize, Serialize)]
190#[serde(rename_all = "camelCase")]
191#[serde_as]
192pub struct PriceOrder {
193 pub close_tx: String,
194 pub closed_by: String,
195 pub created_by: String,
196 pub estimated_usdc_value_spent: String,
197 pub in_deposited: String,
198 pub in_left: String,
199 pub in_used: String,
200 pub in_withdrawn: String,
201 pub incremental_usd_value: String,
202 pub input_mint: String,
203 pub open_tx: String,
204 pub order_interval: String,
205 pub order_key: String,
206 pub out_received: String,
207 pub out_withdrawn: String,
208 pub output_mint: String,
209 pub raw_estimated_usdc_value_spent: String,
210 pub raw_in_deposited: String,
211 pub raw_in_left: String,
212 pub raw_in_used: String,
213 pub raw_in_withdrawn: String,
214 pub raw_incremental_usd_value: String,
215 pub raw_out_received: String,
216 pub raw_out_withdrawn: String,
217 pub raw_supposed_usd_value: String,
218 pub start_at: String,
219 pub status: String,
220 pub supposed_usd_value: String,
221 pub trades: Vec<Trade>,
222 pub updated_at: String,
223 pub user_pubkey: String,
224}