fix(cw_monero): properly await transaction commit (#2284)
cyan committed
May 24, 2025 at 21:21 UTC
fd3158293eaf1364311e4ad2a14414a236bcfb9c
2 files changed
+7
-7
cw_monero/lib/api/transaction_history.dart
+5
-5
@@ -251,13 +251,13 @@ Future<PendingTransactionDescription> createTransactionMultDest(
251
);
252
}
253
254
-String? commitTransactionFromPointerAddress({required int address, required bool useUR}) =>
254
+Future<String?> commitTransactionFromPointerAddress({required int address, required bool useUR}) =>
255
commitTransaction(tx: MoneroPendingTransaction(Pointer.fromAddress(address)), useUR: useUR);
256
257
-String? commitTransaction({required Wallet2PendingTransaction tx, required bool useUR}) {
257
+Future<String?> commitTransaction({required Wallet2PendingTransaction tx, required bool useUR}) async {
258
final txCommit = useUR
259
? tx.commitUR(120)
260
- : Isolate.run(() {
260
+ : await Isolate.run(() {
261
monero.PendingTransaction_commit(
262
Pointer.fromAddress(tx.ffiAddress()),
263
filename: '',
@@ -286,9 +286,9 @@ String? commitTransaction({required Wallet2PendingTransaction tx, required bool
286
throw CreationTransactionException(message: error);
287
}
288
if (useUR) {
289
- return txCommit as String?;
289
+ return Future.value(txCommit as String?);
290
} else {
291
- return null;
291
+ return Future.value(null);
292
}
293
}
294
cw_monero/lib/pending_monero_transaction.dart
+2
-2
@@ -46,7 +46,7 @@ class PendingMoneroTransaction with PendingTransaction {
46
@override
47
Future<void> commit() async {
48
try {
49
- monero_transaction_history.commitTransactionFromPointerAddress(
49
+ await monero_transaction_history.commitTransactionFromPointerAddress(
50
address: pendingTransactionDescription.pointerAddress,
51
useUR: false);
52
} catch (e) {
@@ -68,7 +68,7 @@ class PendingMoneroTransaction with PendingTransaction {
68
@override
69
Future<String?> commitUR() async {
70
try {
71
- final ret = monero_transaction_history.commitTransactionFromPointerAddress(
71
+ final ret = await monero_transaction_history.commitTransactionFromPointerAddress(
72
address: pendingTransactionDescription.pointerAddress,
73
useUR: true);
74
storeSync(force: true);