diff --git a/protocol/sources/bottle.move b/protocol/sources/bottle.move index 0be24ea..2993823 100644 --- a/protocol/sources/bottle.move +++ b/protocol/sources/bottle.move @@ -142,23 +142,23 @@ module bucket_protocol::bottle { } fun compute_buck_value_to_collateral( - buck_amount: u64, - collateral_decimal: u8, - price: u64, + buck_amount: u64, + collateral_decimal: u8, + price: u64, denominator: u64 ): u64 { - let buck_raw_value = + let buck_raw_value = mul_factor( - buck_amount, - denominator, + buck_amount, + denominator, price ); if (constants::buck_decimal() >= collateral_decimal) { buck_raw_value / pow(10, constants::buck_decimal() - collateral_decimal) } else { - buck_raw_value * pow(10, collateral_decimal - constants::buck_decimal()) + (((buck_raw_value as u128) * (pow(10, collateral_decimal - constants::buck_decimal()) as u128)) as u64) } } diff --git a/protocol/sources/bucket.move b/protocol/sources/bucket.move index 060e521..835b905 100644 --- a/protocol/sources/bucket.move +++ b/protocol/sources/bucket.move @@ -701,7 +701,7 @@ module bucket_protocol::bucket { ): u64 { let collateral_raw_value = mul_factor(collateral_amount, price, denominator); if (constants::buck_decimal() >= collateral_decimal) { - collateral_raw_value * pow(10, constants::buck_decimal() - collateral_decimal) + (((collateral_raw_value as u128) * (pow(10, constants::buck_decimal() - collateral_decimal) as u128)) as u64) } else { collateral_raw_value / pow(10, collateral_decimal - constants::buck_decimal()) } @@ -712,7 +712,7 @@ module bucket_protocol::bucket { if (constants::buck_decimal() >= collateral_decimal) { buck_raw_value / pow(10, constants::buck_decimal() - collateral_decimal) } else { - buck_raw_value * pow(10, collateral_decimal - constants::buck_decimal()) + (((buck_raw_value as u128) * (pow(10, collateral_decimal - constants::buck_decimal()) as u128)) as u64) } }