Skip to content

Commit f6a7cae

Browse files
committed
add some safeguards
1 parent e804553 commit f6a7cae

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

lib/pages/send_view/confirm_transaction_view.dart

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ import 'dart:io';
1414

1515
import 'package:decimal/decimal.dart';
1616
import 'package:flutter/material.dart';
17-
import 'package:isar_community/isar.dart';
1817
import 'package:flutter_riverpod/flutter_riverpod.dart';
1918
import 'package:flutter_svg/svg.dart';
19+
import 'package:isar_community/isar.dart';
2020

2121
import '../../models/input.dart';
2222
import '../../models/isar/models/transaction_note.dart';
@@ -113,14 +113,16 @@ class _ConfirmTransactionViewState
113113

114114
bool _spendsOrdinal = false;
115115

116-
Future<void> _checkForOrdinalSpend() async {
116+
Future<void> _checkForOrdinalSpend(
117+
bool updateStateInPostFrameCallback,
118+
) async {
119+
final db = ref.read(mainDBProvider);
117120
final wallet = ref.read(pWallets).getWallet(walletId);
118121
if (wallet is! OrdinalsInterface) return;
119122

120123
final usedUtxos = widget.txData.usedUTXOs;
121124
if (usedUtxos == null || usedUtxos.isEmpty) return;
122125

123-
final db = ref.read(mainDBProvider);
124126
for (final input in usedUtxos) {
125127
if (input is! StandardInput) continue;
126128
final ordinal = await db.isar.ordinals
@@ -133,8 +135,12 @@ class _ConfirmTransactionViewState
133135
.utxoVOUTEqualTo(input.utxo.vout)
134136
.findFirst();
135137
if (ordinal != null) {
136-
if (mounted) {
137-
setState(() => _spendsOrdinal = true);
138+
if (updateStateInPostFrameCallback) {
139+
WidgetsBinding.instance.addPostFrameCallback((_) {
140+
if (mounted) setState(() => _spendsOrdinal = true);
141+
});
142+
} else {
143+
if (mounted) setState(() => _spendsOrdinal = true);
138144
}
139145
return;
140146
}
@@ -556,6 +562,8 @@ class _ConfirmTransactionViewState
556562

557563
@override
558564
void initState() {
565+
super.initState();
566+
559567
isDesktop = Util.isDesktop;
560568
walletId = widget.walletId;
561569
routeOnSuccessName = widget.routeOnSuccessName;
@@ -567,9 +575,7 @@ class _ConfirmTransactionViewState
567575
onChainNoteController = TextEditingController();
568576
onChainNoteController.text = widget.txData.noteOnChain ?? "";
569577

570-
super.initState();
571-
572-
_checkForOrdinalSpend();
578+
_checkForOrdinalSpend(true);
573579
}
574580

575581
@override

0 commit comments

Comments
 (0)