1+ use injective_math:: FPDecimal ;
12use schemars:: JsonSchema ;
23use serde:: { Deserialize , Serialize } ;
34
45use crate :: { msg:: OrderInfo , route:: InjectiveRoute } ;
5- use cosmwasm_std:: { CustomQuery , Decimal256 as Decimal } ;
6+ use cosmwasm_std:: CustomQuery ;
67
78#[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
89#[ serde( rename_all = "snake_case" ) ]
@@ -65,39 +66,39 @@ pub struct SubaccountDepositResponse {
6566pub struct Position {
6667 #[ serde( default ) ]
6768 pub isLong : bool ,
68- pub quantity : Decimal ,
69- pub entry_price : Decimal ,
69+ pub quantity : FPDecimal ,
70+ pub entry_price : FPDecimal ,
7071 #[ serde( default ) ]
71- pub margin : Decimal ,
72- pub cumulative_funding_entry : Decimal ,
72+ pub margin : FPDecimal ,
73+ pub cumulative_funding_entry : FPDecimal ,
7374}
7475
7576#[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
7677pub struct EffectivePosition {
7778 #[ serde( default ) ]
7879 pub is_long : bool ,
79- pub quantity : Decimal ,
80- pub entry_price : Decimal ,
80+ pub quantity : FPDecimal ,
81+ pub entry_price : FPDecimal ,
8182 #[ serde( default ) ]
82- pub effective_margin : Decimal ,
83+ pub effective_margin : FPDecimal ,
8384}
8485
8586#[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
8687pub struct DerivativeLimitOrder {
8788 pub order_info : OrderInfo ,
8889 pub order_type : i32 ,
89- pub margin : Decimal ,
90- pub fillable : Decimal ,
91- pub trigger_price : Option < Decimal > ,
90+ pub margin : FPDecimal ,
91+ pub fillable : FPDecimal ,
92+ pub trigger_price : Option < FPDecimal > ,
9293 pub order_hash : String ,
9394}
9495
9596impl DerivativeLimitOrder {
9697 pub fn new (
97- margin : Decimal ,
98- fillable : Decimal ,
98+ margin : FPDecimal ,
99+ fillable : FPDecimal ,
99100 order_hash : String ,
100- trigger_price : Option < Decimal > ,
101+ trigger_price : Option < FPDecimal > ,
101102 order_type : i32 ,
102103 order_info : OrderInfo ,
103104 ) -> DerivativeLimitOrder {
@@ -130,10 +131,10 @@ pub struct SubaccountEffectivePositionInMarketResponse {
130131#[ allow( non_snake_case) ]
131132#[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
132133pub struct TrimmedDerivativeLimitOrder {
133- pub price : Decimal ,
134- pub quantity : Decimal ,
135- pub margin : Decimal ,
136- pub fillable : Decimal ,
134+ pub price : FPDecimal ,
135+ pub quantity : FPDecimal ,
136+ pub margin : FPDecimal ,
137+ pub fillable : FPDecimal ,
137138 pub isBuy : bool ,
138139 pub order_hash : String ,
139140}
@@ -155,12 +156,12 @@ pub struct PerpetualMarketFundingResponse {
155156
156157#[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
157158pub struct DerivativeMarketVolatilityResponse {
158- pub volatility : Option < Decimal > ,
159+ pub volatility : Option < FPDecimal > ,
159160}
160161
161162#[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
162163pub struct SpotMarketVolatilityResponse {
163- pub volatility : Option < Decimal > ,
164+ pub volatility : Option < FPDecimal > ,
164165}
165166
166167#[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
@@ -172,18 +173,18 @@ pub struct DerivativeMarketResponse {
172173#[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
173174pub struct Deposit {
174175 #[ serde( default ) ]
175- pub available_balance : Decimal ,
176+ pub available_balance : FPDecimal ,
176177 #[ serde( default ) ]
177- pub total_balance : Decimal ,
178+ pub total_balance : FPDecimal ,
178179}
179180
180181#[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
181182pub struct PerpetualMarketInfo {
182183 pub market_id : String ,
183184 #[ serde( default ) ]
184- pub hourly_funding_rate_cap : Decimal ,
185+ pub hourly_funding_rate_cap : FPDecimal ,
185186 #[ serde( default ) ]
186- pub hourly_interest_rate : Decimal ,
187+ pub hourly_interest_rate : FPDecimal ,
187188 #[ serde( default ) ]
188189 pub next_funding_timestamp : i64 ,
189190 pub funding_interval : i64 ,
@@ -192,9 +193,9 @@ pub struct PerpetualMarketInfo {
192193#[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
193194pub struct PerpetualMarketFunding {
194195 #[ serde( default ) ]
195- pub cumulative_funding : Decimal ,
196+ pub cumulative_funding : FPDecimal ,
196197 #[ serde( default ) ]
197- pub cumulative_price : Decimal ,
198+ pub cumulative_price : FPDecimal ,
198199 #[ serde( default ) ]
199200 pub last_timestamp : i64 ,
200201}
@@ -214,7 +215,7 @@ pub struct FullDerivativeMarketPerpetualInfo {
214215pub struct FullDerivativeMarket {
215216 pub market : Option < DerivativeMarket > ,
216217 pub info : Option < FullDerivativeMarketPerpetualInfo > ,
217- pub mark_price : Decimal ,
218+ pub mark_price : FPDecimal ,
218219}
219220
220221#[ allow( non_snake_case) ]
@@ -229,14 +230,14 @@ pub struct DerivativeMarket {
229230 pub oracle_scale_factor : u32 ,
230231 pub quote_denom : String ,
231232 pub market_id : String ,
232- pub initial_margin_ratio : Decimal ,
233- pub maintenance_margin_ratio : Decimal ,
234- pub maker_fee_rate : Decimal ,
235- pub taker_fee_rate : Decimal ,
233+ pub initial_margin_ratio : FPDecimal ,
234+ pub maintenance_margin_ratio : FPDecimal ,
235+ pub maker_fee_rate : FPDecimal ,
236+ pub taker_fee_rate : FPDecimal ,
236237 #[ serde( default ) ]
237238 pub isPerpetual : bool ,
238239 #[ serde( default ) ]
239240 pub status : i32 ,
240- pub min_price_tick_size : Decimal ,
241- pub min_quantity_tick_size : Decimal ,
241+ pub min_price_tick_size : FPDecimal ,
242+ pub min_quantity_tick_size : FPDecimal ,
242243}
0 commit comments