From a56ae8e4ab06312358628fc5e587079c83d3356c Mon Sep 17 00:00:00 2001 From: Serhii Date: Sat, 11 Oct 2025 02:31:15 +0300 Subject: [PATCH] fix dogecoin transaction size calculation (#2570) --- cw_dogecoin/lib/src/dogecoin_wallet.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cw_dogecoin/lib/src/dogecoin_wallet.dart b/cw_dogecoin/lib/src/dogecoin_wallet.dart index bd7fe0699..7e0b61a90 100644 --- a/cw_dogecoin/lib/src/dogecoin_wallet.dart +++ b/cw_dogecoin/lib/src/dogecoin_wallet.dart @@ -7,6 +7,7 @@ import 'package:cw_bitcoin/electrum_wallet.dart'; import 'package:cw_bitcoin/electrum_wallet_snapshot.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/encryption_file_utils.dart'; +import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_keys_file.dart'; @@ -65,6 +66,19 @@ abstract class DogeCoinWalletBase extends ElectrumWallet with Store { @override int get networkDustAmount => 100000000; // 1 DOGE = 1e8 koinu + static int estimatedDogeCoinTransactionSize(int inputsCount, int outputsCounts) => + inputsCount * 180 + outputsCounts * 34 + 10; + + @override + int feeAmountForPriority(TransactionPriority priority, int inputsCount, int outputsCount, + {int? size}) => + feeRate(priority) * (size ?? estimatedDogeCoinTransactionSize(inputsCount, outputsCount)); + + @override + int feeAmountWithFeeRate(int feeRate, int inputsCount, int outputsCount, {int? size}) => + feeRate * (size ?? estimatedDogeCoinTransactionSize(inputsCount, outputsCount)); + + static Future create( {required String mnemonic, required String password,