fix dogecoin transaction size calculation (#2570)
Serhii committed
Oct 11, 2025 at 02:31 UTC
a56ae8e4ab06312358628fc5e587079c83d3356c
1 file changed
+14
cw_dogecoin/lib/src/dogecoin_wallet.dart
+14
@@ -7,6 +7,7 @@ import 'package:cw_bitcoin/electrum_wallet.dart';
7
import 'package:cw_bitcoin/electrum_wallet_snapshot.dart';
8
import 'package:cw_core/crypto_currency.dart';
9
import 'package:cw_core/encryption_file_utils.dart';
10
+import 'package:cw_core/transaction_priority.dart';
11
import 'package:cw_core/unspent_coins_info.dart';
12
import 'package:cw_core/wallet_info.dart';
13
import 'package:cw_core/wallet_keys_file.dart';
@@ -65,6 +66,19 @@ abstract class DogeCoinWalletBase extends ElectrumWallet with Store {
66
@override
67
int get networkDustAmount => 100000000; // 1 DOGE = 1e8 koinu
68
69
+ static int estimatedDogeCoinTransactionSize(int inputsCount, int outputsCounts) =>
70
+ inputsCount * 180 + outputsCounts * 34 + 10;
71
+
72
+ @override
73
+ int feeAmountForPriority(TransactionPriority priority, int inputsCount, int outputsCount,
74
+ {int? size}) =>
75
+ feeRate(priority) * (size ?? estimatedDogeCoinTransactionSize(inputsCount, outputsCount));
76
+
77
+ @override
78
+ int feeAmountWithFeeRate(int feeRate, int inputsCount, int outputsCount, {int? size}) =>
79
+ feeRate * (size ?? estimatedDogeCoinTransactionSize(inputsCount, outputsCount));
80
+
81
+
82
static Future<DogeCoinWallet> create(
83
{required String mnemonic,
84
required String password,