Skip to content

Commit 5624a4e

Browse files
authored
Merge pull request #1687 from SatoshiPortal/fix-absolute-fee-type-cast
fix: resolve type cast error when setting custom absolute fees
2 parents 32255a6 + 62c816e commit 5624a4e

5 files changed

Lines changed: 12 additions & 39 deletions

File tree

lib/features/pay/presentation/pay_bloc.dart

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,6 @@ class PayBloc extends Bloc<PayEvent, PayState> {
222222
);
223223
absoluteFees = await _calculateBitcoinAbsoluteFeesUsecase.execute(
224224
psbt: preparedSend.unsignedPsbt,
225-
feeRate: fastestFee.value as double,
226225
);
227226
}
228227
} catch (e) {
@@ -240,10 +239,9 @@ class PayBloc extends Bloc<PayEvent, PayState> {
240239
final createdPayOrder = await _placePayOrderUsecase.execute(
241240
orderAmount: walletSelectionState.amount,
242241
recipientId: walletSelectionState.selectedRecipient.id,
243-
network:
244-
event.wallet.isLiquid
245-
? OrderBitcoinNetwork.liquid
246-
: OrderBitcoinNetwork.bitcoin,
242+
network: event.wallet.isLiquid
243+
? OrderBitcoinNetwork.liquid
244+
: OrderBitcoinNetwork.bitcoin,
247245
);
248246

249247
if (!event.wallet.isLiquid) {
@@ -405,27 +403,19 @@ class PayBloc extends Bloc<PayEvent, PayState> {
405403
message: 'Transaction fees not calculated. Please try again.',
406404
);
407405
}
408-
final bitcoinFees = await _getNetworkFeesUsecase.execute(
409-
isLiquid: false,
410-
);
411-
final fastestFee = bitcoinFees.fastest;
412406

413407
final preparedSend = await _prepareBitcoinSendUsecase.execute(
414408
walletId: wallet.id,
415409
address: payPaymentState.payOrder.bitcoinAddress!,
416410
amountSat: payinAmountSat,
417411
networkFee: NetworkFee.absolute(absoluteFees),
418-
selectedInputs:
419-
payPaymentState.selectedUtxos.isNotEmpty
420-
? payPaymentState.selectedUtxos
421-
: null,
412+
selectedInputs: payPaymentState.selectedUtxos.isNotEmpty
413+
? payPaymentState.selectedUtxos
414+
: null,
422415
replaceByFee: payPaymentState.replaceByFee,
423416
);
424417
final absoluteFeesUpdated = await _calculateBitcoinAbsoluteFeesUsecase
425-
.execute(
426-
psbt: preparedSend.unsignedPsbt,
427-
feeRate: fastestFee.value as double,
428-
);
418+
.execute(psbt: preparedSend.unsignedPsbt);
429419
emit(payPaymentState.copyWith(absoluteFees: absoluteFeesUpdated));
430420
final signedTx = await _signBitcoinTxUsecase.execute(
431421
psbt: preparedSend.unsignedPsbt,
@@ -648,15 +638,13 @@ class PayBloc extends Bloc<PayEvent, PayState> {
648638
address: dummyAddressForFeeCalculation.address,
649639
amountSat: payinAmountSat,
650640
networkFee: fastestFee,
651-
selectedInputs:
652-
payPaymentState.selectedUtxos.isNotEmpty
653-
? payPaymentState.selectedUtxos
654-
: null,
641+
selectedInputs: payPaymentState.selectedUtxos.isNotEmpty
642+
? payPaymentState.selectedUtxos
643+
: null,
655644
replaceByFee: payPaymentState.replaceByFee,
656645
);
657646
final absoluteFees = await _calculateBitcoinAbsoluteFeesUsecase.execute(
658647
psbt: preparedSend.unsignedPsbt,
659-
feeRate: fastestFee.value as double,
660648
);
661649
emit(payPaymentState.copyWith(absoluteFees: absoluteFees));
662650
}

lib/features/sell/presentation/bloc/sell_bloc.dart

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,6 @@ class SellBloc extends Bloc<SellEvent, SellState> {
235235
);
236236
absoluteFees = await _calculateBitcoinAbsoluteFeesUsecase.execute(
237237
psbt: preparedSend.unsignedPsbt,
238-
feeRate: fastestFee.value as double,
239238
);
240239
}
241240
} catch (e) {
@@ -425,10 +424,6 @@ class SellBloc extends Bloc<SellEvent, SellState> {
425424
message: 'Transaction fees not calculated. Please try again.',
426425
);
427426
}
428-
final bitcoinFees = await _getNetworkFeesUsecase.execute(
429-
isLiquid: false,
430-
);
431-
final fastestFee = bitcoinFees.fastest;
432427

433428
final preparedSend = await _prepareBitcoinSendUsecase.execute(
434429
walletId: wallet.id,
@@ -441,10 +436,7 @@ class SellBloc extends Bloc<SellEvent, SellState> {
441436
replaceByFee: sellPaymentState.replaceByFee,
442437
);
443438
final absoluteFeesUpdated = await _calculateBitcoinAbsoluteFeesUsecase
444-
.execute(
445-
psbt: preparedSend.unsignedPsbt,
446-
feeRate: fastestFee.value as double,
447-
);
439+
.execute(psbt: preparedSend.unsignedPsbt);
448440
emit(sellPaymentState.copyWith(absoluteFees: absoluteFeesUpdated));
449441
final signedTx = await _signBitcoinTxUsecase.execute(
450442
psbt: preparedSend.unsignedPsbt,
@@ -670,7 +662,6 @@ class SellBloc extends Bloc<SellEvent, SellState> {
670662
);
671663
final absoluteFees = await _calculateBitcoinAbsoluteFeesUsecase.execute(
672664
psbt: preparedSend.unsignedPsbt,
673-
feeRate: fastestFee.value as double,
674665
);
675666
emit(sellPaymentState.copyWith(absoluteFees: absoluteFees));
676667
}

lib/features/send/domain/usecases/calculate_bitcoin_absolute_fees_usecase.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class CalculateBitcoinAbsoluteFeesUsecase {
99
}) : _bitcoinWalletRepository = bitcoinWalletRepository;
1010

1111
/// Returns (amount, absFees)
12-
Future<int> execute({required String psbt, required double feeRate}) async {
12+
Future<int> execute({required String psbt}) async {
1313
try {
1414
final absFee = await _bitcoinWalletRepository.getTxFeeAmount(psbt: psbt);
1515
return absFee;

lib/features/send/presentation/bloc/send_cubit.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,7 +1208,6 @@ class SendCubit extends Cubit<SendState> {
12081208
final bitcoinAbsoluteFeesSat =
12091209
await _calculateBitcoinAbsoluteFeesUsecase.execute(
12101210
psbt: signedPsbtAndTxSize.signedPsbt,
1211-
feeRate: state.selectedFee!.value as double,
12121211
);
12131212
if (state.chainSwap != null) {
12141213
final settings = await _getSettingsUsecase.execute();
@@ -1355,7 +1354,6 @@ class SendCubit extends Cubit<SendState> {
13551354
final bitcoinAbsoluteFeesSat =
13561355
await _calculateBitcoinAbsoluteFeesUsecase.execute(
13571356
psbt: signedPsbtAndTxSize.signedPsbt,
1358-
feeRate: state.selectedFee!.value as double,
13591357
);
13601358
final settings = await _getSettingsUsecase.execute();
13611359
final updatedSwap = await _updateSendSwapLockupFeesUsecase.execute(
@@ -1637,7 +1635,6 @@ class SendCubit extends Cubit<SendState> {
16371635
);
16381636
absoluteFees = await _calculateBitcoinAbsoluteFeesUsecase.execute(
16391637
psbt: dummyDrainTxInfo.unsignedPsbt,
1640-
feeRate: networkFee.value as double,
16411638
);
16421639
emit(state.copyWith(bitcoinTxSize: dummyDrainTxInfo.txSize));
16431640
}

lib/features/swap/presentation/transfer_bloc.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,6 @@ class TransferBloc extends Bloc<TransferEvent, TransferState> {
407407
bitcoinAbsoluteFeesSat = await _calculateBitcoinAbsoluteFeesUsecase
408408
.execute(
409409
psbt: signedPsbtAndTxSize.signedPsbt,
410-
feeRate: state.bitcoinNetworkFees!.fastest.value as double,
411410
);
412411
final settings = await _getSettingsUsecase.execute();
413412
final updatedSwap = await _updateSendSwapLockupFeesUsecase.execute(
@@ -459,7 +458,6 @@ class TransferBloc extends Bloc<TransferEvent, TransferState> {
459458
bitcoinAbsoluteFeesSat = await _calculateBitcoinAbsoluteFeesUsecase
460459
.execute(
461460
psbt: signedPsbtAndTxSize.signedPsbt,
462-
feeRate: state.bitcoinNetworkFees!.fastest.value as double,
463461
);
464462
final settings = await _getSettingsUsecase.execute();
465463
final updatedSwap = await _updateSendSwapLockupFeesUsecase.execute(
@@ -827,7 +825,6 @@ class TransferBloc extends Bloc<TransferEvent, TransferState> {
827825

828826
absoluteFees = await _calculateBitcoinAbsoluteFeesUsecase.execute(
829827
psbt: dummyDrainTxInfo.unsignedPsbt,
830-
feeRate: networkFee.value as double,
831828
);
832829

833830
log.info("Absolute fees: $absoluteFees");

0 commit comments

Comments
 (0)