From 16581766c689dc6838e7c80e3180c2ff362cc715 Mon Sep 17 00:00:00 2001 From: catbref Date: Wed, 29 Jul 2020 20:48:06 +0100 Subject: [PATCH] WIP: trade-bot: detect and remove mempool entries from ElectrumX "listunspent" results --- src/main/java/org/qortal/crosschain/ElectrumX.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/qortal/crosschain/ElectrumX.java b/src/main/java/org/qortal/crosschain/ElectrumX.java index 2331a305..b52994ac 100644 --- a/src/main/java/org/qortal/crosschain/ElectrumX.java +++ b/src/main/java/org/qortal/crosschain/ElectrumX.java @@ -226,9 +226,13 @@ public class ElectrumX { for (Object rawUnspent : (JSONArray) unspentJson) { JSONObject unspent = (JSONObject) rawUnspent; + int height = ((Long) unspent.get("height")).intValue(); + // We only want unspent outputs from confirmed transactions (and definitely not mempool duplicates with height 0) + if (height <= 0) + continue; + byte[] txHash = HashCode.fromString((String) unspent.get("tx_hash")).asBytes(); int outputIndex = ((Long) unspent.get("tx_pos")).intValue(); - int height = ((Long) unspent.get("height")).intValue(); long value = (Long) unspent.get("value"); unspentOutputs.add(new UnspentOutput(txHash, outputIndex, height, value));