Change calculation way of set_unit_usdt()

This commit is contained in:
Sik Yoon 2023-08-15 14:07:37 +09:00
parent 90ea086a62
commit d05a8fb579

View File

@ -36,25 +36,21 @@ pub async fn set_unit_usdt() {
let mut set_unit_trade_usdt = Decimal::new(0, 8);
// define protect_rate and unit_trade_usdt as high as total_usdt_amount
if dec!(0.0) <= asset_info.current_total_usdt && asset_info.current_total_usdt < dec!(500.0) {
if dec!(0.0) <= asset_info.current_total_usdt && asset_info.current_total_usdt < dec!(1000.0) {
set_unit_trade_usdt = dec!(100.0); // $100 for each trade
// set_unit_trade_usdt = decimal_mul(asset_info.current_total_usdt, dec!(0.8)); // 80% of total usdt
} else if dec!(500.0) <= asset_info.current_total_usdt
&& asset_info.current_total_usdt < dec!(2000.0)
} else if dec!(1000.0) <= asset_info.current_total_usdt
{
// set_unit_trade_usdt = dec!(150.0); // $150 for each trade
set_unit_trade_usdt = decimal_mul(asset_info.current_total_usdt, dec!(0.1));
// 10% of total usdt
} else if dec!(2000.0) <= asset_info.current_total_usdt
&& asset_info.current_total_usdt < dec!(5000.0)
{
set_unit_trade_usdt = dec!(200.0); // $200 for each trade
} else if dec!(5000.0) <= asset_info.current_total_usdt
&& asset_info.current_total_usdt < dec!(10000.0)
{
set_unit_trade_usdt = dec!(300.0); // $300 for each trade
let truncated = decimal_mul(decimal_mul(set_unit_trade_usdt, dec!(0.1)).trunc(), dec!(10));
let difference = decimal_sub(set_unit_trade_usdt, truncated);
if difference >= dec!(5) {
set_unit_trade_usdt = decimal_add(truncated, dec!(5));
} else {
set_unit_trade_usdt = dec!(500.0); // $500 for each trade
set_unit_trade_usdt = truncated;
}
}
// update fields in [asset_manage_announcement] table