From 95d5b78542d06246e2a97727864b3401df1b8f28 Mon Sep 17 00:00:00 2001 From: pokkst Date: Thu, 22 Sep 2022 17:13:19 -0500 Subject: [PATCH] Add code comments --- .../java/net/mynero/wallet/service/MoneroHandlerThread.java | 1 + app/src/main/java/net/mynero/wallet/service/UTXOService.java | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/net/mynero/wallet/service/MoneroHandlerThread.java b/app/src/main/java/net/mynero/wallet/service/MoneroHandlerThread.java index a69ff7f..d3b02a4 100644 --- a/app/src/main/java/net/mynero/wallet/service/MoneroHandlerThread.java +++ b/app/src/main/java/net/mynero/wallet/service/MoneroHandlerThread.java @@ -125,6 +125,7 @@ public class MoneroHandlerThread extends Thread implements WalletListener { long amount = sendAll ? Wallet.SWEEP_ALL : Wallet.getAmountFromString(amountStr); ArrayList preferredInputs; if(selectedUtxos.isEmpty()) { + // no inputs manually selected, we are sending from home screen most likely, or user somehow broke the app preferredInputs = UTXOService.getInstance().selectUtxos(amount, sendAll); } else { preferredInputs = selectedUtxos; diff --git a/app/src/main/java/net/mynero/wallet/service/UTXOService.java b/app/src/main/java/net/mynero/wallet/service/UTXOService.java index da4b06b..b288cf1 100644 --- a/app/src/main/java/net/mynero/wallet/service/UTXOService.java +++ b/app/src/main/java/net/mynero/wallet/service/UTXOService.java @@ -39,12 +39,15 @@ public class UTXOService extends ServiceBase { List utxos = getUtxos(); long amountSelected = 0; Collections.shuffle(utxos); + //loop through each utxo for (CoinsInfo coinsInfo : utxos) { - if(!coinsInfo.isSpent()) { + if(!coinsInfo.isSpent()) { //filter out spent outputs if (sendAll) { + // if send all, add all utxos and set amount to send all selectedUtxos.add(coinsInfo.getKeyImage()); amountSelected = Wallet.SWEEP_ALL; } else { + //if amount selected is still less than amount needed, and the utxos tx hash hasn't already been seen, add utxo if (amountSelected <= amount && !seenTxs.contains(coinsInfo.getHash())) { selectedUtxos.add(coinsInfo.getKeyImage()); // we don't want to spend multiple utxos from the same transaction, so we prevent that from happening here.