Skip to content

Commit 63f5a73

Browse files
committed
add denom
1 parent 8228f16 commit 63f5a73

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

pallets/hybrid-orderbook/src/lib.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -513,9 +513,9 @@ pub mod pallet {
513513
let mut base_decimals_adjustment = None;
514514
let mut quote_decimals_adjustment = None;
515515
if base_decimals > quote_decimals {
516-
base_decimals_adjustment = Some(base_decimals - quote_decimals);
516+
quote_decimals_adjustment = Some(base_decimals - quote_decimals);
517517
} else if base_decimals < quote_decimals {
518-
quote_decimals_adjustment = Some(quote_decimals - base_decimals);
518+
base_decimals_adjustment = Some(quote_decimals - base_decimals);
519519
}
520520

521521
if T::Assets::should_touch(*base_asset.clone(), &pool_account) {
@@ -917,6 +917,7 @@ pub mod pallet {
917917
T::PalletId::get().into_account_truncating()
918918
}
919919

920+
// TODO: Benchmark
920921
pub fn get_pool_query(
921922
base_asset: &T::AssetKind,
922923
quote_asset: &T::AssetKind,
@@ -1094,10 +1095,10 @@ pub mod pallet {
10941095
quantity: T::Unit,
10951096
) -> DispatchResult {
10961097
if is_bid {
1097-
// Freeze the `price*quantity* amount of `quote_asset`
1098-
Self::freeze_asset(maker, quote_asset, price * quantity)?;
1098+
Self::freeze_asset(maker, quote_asset, (price*quantity).denom(
1099+
pool.pool_decimals.unwrap_or(0) + pool.quote_adjustment.unwrap_or(0)
1100+
))?;
10991101
} else {
1100-
// Freeze the `quantity` amount of `base_asset`
11011102
Self::freeze_asset(maker, base_asset, quantity)?;
11021103
}
11031104
let (price, order_id) = pool
@@ -1323,6 +1324,7 @@ pub mod pallet {
13231324
quote_decimals_adjustment: Option<u8>,
13241325
) -> Result<T::Unit, Error<T>> {
13251326
let (base_reserve, quote_reserve) = Self::get_reserves(base_asset, quote_asset)?;
1327+
13261328
Ok(
13271329
Self::quote(
13281330
&One::one(),

pallets/hybrid-orderbook/src/types.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -949,13 +949,20 @@ pub mod traits {
949949

950950
pub trait Normalize {
951951
fn normalize(&self, adjustment: Option<u8>) -> Self;
952+
953+
fn denom(&self, adjustment: u8) -> Self;
952954
}
953955

954956
impl<T: AtLeast32BitUnsigned + From<u64>> Normalize for T {
955957
fn normalize(&self, adjustment: Option<u8>) -> Self {
956958
let factor: T = 10u64.pow(adjustment.map_or(0, |d| d as u32)).into();
957959
self.clone() * factor
958960
}
961+
962+
fn denom(&self, adjustment: u8) -> Self {
963+
let factor: T = 10u64.pow(adjustment as u32).into();
964+
self.clone() / factor
965+
}
959966
}
960967

961968
#[cfg(test)]

0 commit comments

Comments
 (0)