Added verification for unspent coins while transaction creation.
M committed
Jul 23, 2021 at 19:10 UTC
b0724348a1e556d1d2eebc04e3ebb8524eec2fd9
1 file changed
+5
-4
lib/bitcoin/electrum_wallet.dart
+5
-4
@@ -158,6 +158,9 @@ abstract class ElectrumWalletBase extends WalletBase<ElectrumBalance,
158
const minAmount = 546;
159
final transactionCredentials = credentials as BitcoinTransactionCredentials;
160
final inputs = <BitcoinUnspent>[];
161
+ final credentialsAmount = transactionCredentials.amount != null
162
+ ? stringDoubleToBitcoinAmount(transactionCredentials.amount)
163
+ : 0;
164
var allInputsAmount = 0;
165
166
if (unspentCoins.isEmpty) {
@@ -171,7 +174,8 @@ abstract class ElectrumWalletBase extends WalletBase<ElectrumBalance,
174
}
175
}
176
174
- if (inputs.isEmpty) {
177
+ if (inputs.isEmpty ||
178
+ (credentialsAmount > 0 && allInputsAmount < credentialsAmount)) {
179
throw BitcoinTransactionNoInputsException();
180
}
181
@@ -179,9 +183,6 @@ abstract class ElectrumWalletBase extends WalletBase<ElectrumBalance,
183
feeAmountForPriority(transactionCredentials.priority, inputs.length, 1);
184
final allAmount = allInputsAmount - allAmountFee;
185
182
- final credentialsAmount = transactionCredentials.amount != null
183
- ? stringDoubleToBitcoinAmount(transactionCredentials.amount)
184
- : 0;
186
final amount = transactionCredentials.amount == null ||
187
allAmount - credentialsAmount < minAmount
188
? allAmount