Skip to content

Commit

Permalink
fix docker test and dissallow sending dex fee
Browse files Browse the repository at this point in the history
  • Loading branch information
borngraced committed Jan 14, 2025
1 parent 450ced6 commit 0cc613a
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 5 deletions.
8 changes: 8 additions & 0 deletions mm2src/coins/utxo/utxo_common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3991,6 +3991,14 @@ pub async fn get_fee_to_send_taker_fee<T>(
where
T: MarketCoinOps + UtxoCommonOps,
{
if DexFee::Zero == dex_fee {
return Ok(TradeFee {
coin: coin.ticker().to_owned(),
amount: MmNumber::default(),
paid_from_trading_vol: false,
});
}

let decimals = coin.as_ref().decimals;

let outputs = generate_taker_fee_tx_outputs(decimals, &AddressHashEnum::default_address_hash(), &dex_fee)?;
Expand Down
15 changes: 13 additions & 2 deletions mm2src/mm2_main/src/lp_swap/maker_swap.rs
Original file line number Diff line number Diff line change
Expand Up @@ -739,6 +739,19 @@ impl MakerSwap {
};
swap_events.push(MakerSwapEvent::MakerPaymentInstructionsReceived(instructions));

let taker_amount = MmNumber::from(self.taker_amount.clone());
let dex_fee = dex_fee_amount_from_taker_coin(self.taker_coin.deref(), &self.r().data.maker_coin, &taker_amount);

if coins::DexFee::Zero == dex_fee {
info!("Zero Dex Fee: Skipping taker fee");
let fee_ident = TransactionIdentifier {
tx_hex: BytesJson::from(vec![]),
tx_hash: BytesJson::from(vec![]),
};
swap_events.push(MakerSwapEvent::TakerFeeValidated(fee_ident));
return Ok((Some(MakerSwapCommand::SendPayment), swap_events));
}

let taker_fee = match self.taker_coin.tx_enum_from_bytes(payload.data()) {
Ok(tx) => tx,
Err(e) => {
Expand All @@ -751,8 +764,6 @@ impl MakerSwap {
let hash = taker_fee.tx_hash_as_bytes();
info!("Taker fee tx {:02x}", hash);

let taker_amount = MmNumber::from(self.taker_amount.clone());
let dex_fee = dex_fee_amount_from_taker_coin(self.taker_coin.deref(), &self.r().data.maker_coin, &taker_amount);
let other_taker_coin_htlc_pub = self.r().other_taker_coin_htlc_pub;
let taker_coin_start_block = self.r().data.taker_coin_start_block;

Expand Down
6 changes: 3 additions & 3 deletions mm2src/mm2_main/tests/docker_tests/docker_tests_inner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2167,9 +2167,9 @@ fn test_get_max_taker_vol_with_kmd() {
.unwrap();
assert!(rc.0.is_success(), "!max_taker_vol: {}", rc.1);
let json: Json = serde_json::from_str(&rc.1).unwrap();
// the result of equation x + x * 9 / 7770 + 0.0002 = 1
assert_eq!(json["result"]["numer"], Json::from("1294741"));
assert_eq!(json["result"]["denom"], Json::from("1296500"));
// the result of equation x + 0.0002 = 1 (no dex fee included)
assert_eq!(json["result"]["numer"], Json::from("99989"));
assert_eq!(json["result"]["denom"], Json::from("100000"));

let rc = block_on(mm_alice.rpc(&json!({
"userpass": mm_alice.userpass,
Expand Down

0 comments on commit 0cc613a

Please sign in to comment.