|
@ -299,8 +299,10 @@ public class ElectrumServer { |
|
|
try { |
|
|
try { |
|
|
Set<Integer> blockHeights = new TreeSet<>(); |
|
|
Set<Integer> blockHeights = new TreeSet<>(); |
|
|
for(BlockTransactionHash reference : references) { |
|
|
for(BlockTransactionHash reference : references) { |
|
|
|
|
|
if(reference.getHeight() > 0) { |
|
|
blockHeights.add(reference.getHeight()); |
|
|
blockHeights.add(reference.getHeight()); |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
JsonRpcClient client = new JsonRpcClient(getTransport()); |
|
|
JsonRpcClient client = new JsonRpcClient(getTransport()); |
|
|
BatchRequestBuilder<Integer, String> batchRequest = client.createBatchRequest().keysType(Integer.class).returnType(String.class); |
|
|
BatchRequestBuilder<Integer, String> batchRequest = client.createBatchRequest().keysType(Integer.class).returnType(String.class); |
|
@ -378,14 +380,20 @@ public class ElectrumServer { |
|
|
} |
|
|
} |
|
|
BlockTransactionHash reference = optionalReference.get(); |
|
|
BlockTransactionHash reference = optionalReference.get(); |
|
|
|
|
|
|
|
|
|
|
|
Date blockDate; |
|
|
|
|
|
if(reference.getHeight() > 0) { |
|
|
BlockHeader blockHeader = blockHeaderMap.get(reference.getHeight()); |
|
|
BlockHeader blockHeader = blockHeaderMap.get(reference.getHeight()); |
|
|
if(blockHeader == null) { |
|
|
if(blockHeader == null) { |
|
|
transactionMap.put(hash, UNFETCHABLE_BLOCK_TRANSACTION); |
|
|
transactionMap.put(hash, UNFETCHABLE_BLOCK_TRANSACTION); |
|
|
checkReferences.removeIf(ref -> ref.getHash().equals(hash)); |
|
|
checkReferences.removeIf(ref -> ref.getHash().equals(hash)); |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
|
|
|
blockDate = blockHeader.getTimeAsDate(); |
|
|
|
|
|
} else { |
|
|
|
|
|
blockDate = new Date(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
BlockTransaction blockchainTransaction = new BlockTransaction(reference.getHash(), reference.getHeight(), blockHeader.getTimeAsDate(), reference.getFee(), transaction); |
|
|
BlockTransaction blockchainTransaction = new BlockTransaction(reference.getHash(), reference.getHeight(), blockDate, reference.getFee(), transaction); |
|
|
|
|
|
|
|
|
transactionMap.put(hash, blockchainTransaction); |
|
|
transactionMap.put(hash, blockchainTransaction); |
|
|
checkReferences.remove(reference); |
|
|
checkReferences.remove(reference); |
|
|