diff --git a/lib/wallets/wallet/impl/xelis_wallet.dart b/lib/wallets/wallet/impl/xelis_wallet.dart index 87de162f7..72094fcf4 100644 --- a/lib/wallets/wallet/impl/xelis_wallet.dart +++ b/lib/wallets/wallet/impl/xelis_wallet.dart @@ -324,7 +324,7 @@ class XelisWallet extends LibXelisWallet { @override Future> updateTransactions({ bool isRescan = false, - List? rawTransactions, + List? objTransactions, int? topoheight, }) async { checkInitialized(); @@ -361,16 +361,17 @@ class XelisWallet extends LibXelisWallet { await libXelisWallet!.rescan(topoheight: BigInt.from(pruningHeight)); } - final txListJson = rawTransactions ?? await libXelisWallet!.allHistory(); + final txList = objTransactions ?? + (await libXelisWallet!.allHistory()) + .map((jsonStr) => xelis_sdk.TransactionEntry.fromJson( + json.decode(jsonStr), + ) as xelis_sdk.TransactionEntry) + .toList(); final List txns = []; - for (final jsonString in txListJson) { + for (final transactionEntry in txList) { try { - final transactionEntry = xelis_sdk.TransactionEntry.fromJson( - (json.decode(jsonString) as Map).cast(), - ); - // Check for duplicates final storedTx = await mainDB.isar.transactionV2s @@ -562,7 +563,7 @@ class XelisWallet extends LibXelisWallet { txns.add(txn); } catch (e, s) { Logging.instance.w( - "Error in $runtimeType handling transaction: $jsonString", + "Error in $runtimeType handling transaction: $transactionEntry", error: e, stackTrace: s, ); @@ -865,10 +866,10 @@ class XelisWallet extends LibXelisWallet { @override Future handleNewTransaction(xelis_sdk.TransactionEntry tx) async { try { - final txListJson = [jsonEncode(tx.toString())]; + final txList = [tx]; final newTxIds = await updateTransactions( isRescan: false, - rawTransactions: txListJson, + objTransactions: txList, ); await updateBalance();