From b1caf79c1b4f4a3bb124d7eac24b80e38abf1914 Mon Sep 17 00:00:00 2001
From: Hector Chu <hectorchu@gmail.com>
Date: Thu, 25 Apr 2024 23:13:41 +0100
Subject: [PATCH] Normal fee for non-mweb txns

---
 cw_bitcoin/lib/electrum_wallet.dart | 1 +
 cw_bitcoin/lib/litecoin_wallet.dart | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart
index 1f5c14319..586c73ed8 100644
--- a/cw_bitcoin/lib/electrum_wallet.dart
+++ b/cw_bitcoin/lib/electrum_wallet.dart
@@ -1250,6 +1250,7 @@ abstract class ElectrumWalletBase
       totalConfirmed += confirmed;
       totalUnconfirmed += unconfirmed;
 
+      addressRecord.balance = confirmed + unconfirmed;
       if (confirmed > 0 || unconfirmed > 0) {
         addressRecord.setAsUsed();
       }
diff --git a/cw_bitcoin/lib/litecoin_wallet.dart b/cw_bitcoin/lib/litecoin_wallet.dart
index b84675669..c9bee05f1 100644
--- a/cw_bitcoin/lib/litecoin_wallet.dart
+++ b/cw_bitcoin/lib/litecoin_wallet.dart
@@ -291,6 +291,13 @@ abstract class LitecoinWalletBase extends ElectrumWallet with Store {
       String? memo,
       required int feeRate}) async {
 
+    final spendsMweb = utxos.any((utxo) => utxo.utxo.scriptType == SegwitAddresType.mweb);
+    final paysToMweb = outputs.any((output) =>
+        output.toOutput.scriptPubKey.getAddressType() == SegwitAddresType.mweb);
+    if (!spendsMweb && !paysToMweb) {
+      return await super.calcFee(utxos: utxos, outputs: outputs,
+          network: network, memo: memo, feeRate: feeRate);
+    }
     final txb = BitcoinTransactionBuilder(utxos: utxos,
         outputs: outputs, fee: BigInt.zero, network: network);
     final scanSecret = mwebHd.derive(0x80000000).privKey!;