fix tx status update (#3123)
* fix tx status update * fix infobox with disabled address rotation * check transaction direction (edge case)
malik1004x committed
Mar 23, 2026 at 21:11 UTC
212441d1bc36a07b23f3def5f881592030f44bd1
4 files changed
+12
-4
lib/new-ui/widgets/coins_page/assets_history/history_section.dart
+2
-3
@@ -30,12 +30,11 @@ class HistorySection extends StatelessWidget {
30
return SliverPadding(
31
padding: const EdgeInsets.symmetric(horizontal: 16.0),
32
sliver: Observer(
33
- builder: (_) => (dashboardViewModel.items.isEmpty &&
34
- dashboardViewModel.status is! SyncingSyncStatus)
33
+ builder: (_) => (dashboardViewModel.items.isEmpty)
34
? SliverPadding(
35
padding: EdgeInsets.only(top: 24),
36
sliver: SliverToBoxAdapter(
38
- child: Center(
37
+ child: (dashboardViewModel.status is SyncingSyncStatus) ? SizedBox.shrink() : Center(
38
child: Text(S.of(context).transactions_will_appear_here,
39
style: TextStyle(
40
fontSize: 14,
lib/new-ui/widgets/receive_page/receive_info_box.dart
+2
@@ -30,6 +30,8 @@ class ReceiveInfoBox extends StatelessWidget {
30
onDismissed: onDismissed,
31
);
32
default:
33
+ if(autoGenerateSubaddressStatus == AutoGenerateSubaddressStatus.disabled)
34
+ return null;
35
return ReceiveInfoBox(
36
iconPath: "assets/new-ui/info.svg",
37
message: S.current.infobox_auto_address,
lib/view_model/dashboard/dashboard_view_model.dart
+4
@@ -490,6 +490,10 @@ abstract class DashboardViewModelBase with Store {
490
))
491
.where((item) => !transactions.contains(item));
492
493
+ transactions.removeWhere((item) =>
494
+ newTransactions.any((tx) => tx.transaction.txHash == item.transaction.txHash && tx.transaction.direction == item.transaction.direction)
495
+ );
496
+
497
transactions.addAll(newTransactions);
498
// transactions.clear();
499
// transactions.addAll(relevantTxs.map((tx) => TransactionListItem(
lib/view_model/dashboard/transaction_list_item.dart
+4
-1
@@ -293,7 +293,10 @@ class TransactionListItem extends ActionListItem with Keyable {
293
@override
294
bool operator ==(Object other) {
295
if (other is TransactionListItem) {
296
- return other.transaction.txHash == transaction.txHash;
296
+ return other.transaction.txHash == transaction.txHash &&
297
+ other.transaction.confirmations == transaction.confirmations &&
298
+ other.transaction.isPending == transaction.isPending &&
299
+ other.transaction.direction == transaction.direction;
300
}
301
return false;
302
}