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);