Skip to content

Commit cc2d455

Browse files
authored
Merge pull request #1701 from SatoshiPortal/fix-double-tap-duplicate-sell-orders
use BLoC event transformer to ignore new confirmations while one is processing
2 parents 3d78ddb + 70fcfec commit cc2d455

3 files changed

Lines changed: 16 additions & 3 deletions

File tree

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import 'package:bb_mobile/features/send/domain/usecases/prepare_liquid_send_usec
3333
import 'package:bb_mobile/features/send/domain/usecases/sign_bitcoin_tx_usecase.dart';
3434
import 'package:bb_mobile/features/send/domain/usecases/sign_liquid_tx_usecase.dart';
3535
import 'package:bip21_uri/bip21_uri.dart';
36+
import 'package:bloc_concurrency/bloc_concurrency.dart';
3637
import 'package:flutter_bloc/flutter_bloc.dart';
3738
import 'package:freezed_annotation/freezed_annotation.dart';
3839

@@ -90,7 +91,10 @@ class SellBloc extends Bloc<SellEvent, SellState> {
9091
on<SellWalletSelected>(_onWalletSelected);
9192
on<SellExternalWalletNetworkSelected>(_onExternalWalletNetworkSelected);
9293
on<SellOrderRefreshTimePassed>(_onOrderRefreshTimePassed);
93-
on<SellSendPaymentConfirmed>(_onSendPaymentConfirmed);
94+
on<SellSendPaymentConfirmed>(
95+
_onSendPaymentConfirmed,
96+
transformer: droppable(), // Prevent multiple simultaneous confirmations
97+
);
9498
on<SellPollOrderStatus>(_onPollOrderStatus);
9599
on<SellReplaceByFeeChanged>(_onReplaceByFeeChanged);
96100
on<SellUtxosSelected>(_onUtxosSelected);

pubspec.lock

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,14 @@ packages:
172172
url: "https://pub.dev"
173173
source: hosted
174174
version: "9.1.0"
175+
bloc_concurrency:
176+
dependency: "direct main"
177+
description:
178+
name: bloc_concurrency
179+
sha256: "86b7b17a0a78f77fca0d7c030632b59b593b22acea2d96972588f40d4ef53a94"
180+
url: "https://pub.dev"
181+
source: hosted
182+
version: "0.3.0"
175183
blockchain_utils:
176184
dependency: transitive
177185
description:
@@ -306,10 +314,10 @@ packages:
306314
dependency: transitive
307315
description:
308316
name: camera_avfoundation
309-
sha256: "0efb057a1fecdbf9b697272fbf79afbd47ac0e7bd69b4d900d3f304b31d93bad"
317+
sha256: "087a9fadef20325cb246b4c13344a3ce8e408acfc3e0c665ebff0ec3144d7163"
310318
url: "https://pub.dev"
311319
source: hosted
312-
version: "0.9.22+7"
320+
version: "0.9.22+8"
313321
camera_platform_interface:
314322
dependency: transitive
315323
description:

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ dependencies:
130130
path: ^1.9.1
131131
http: ^1.6.0
132132
lints: ^6.0.0
133+
bloc_concurrency: ^0.3.0
133134

134135
dev_dependencies:
135136
build_runner: ^2.10.4

0 commit comments

Comments
 (0)