From ca7d58c27217c80f7a1b99ee3472b2ba31222a85 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Fri, 1 Jul 2022 12:46:20 +0100 Subject: [PATCH] SimpleTransaction.timestamp is now in milliseconds instead of seconds. Should fix 1970 timestamp issue in UI for foreign transactions, and also maintains consistency with QORT wallet transactions. --- src/main/java/org/qortal/crosschain/Bitcoiny.java | 7 ++++--- src/main/java/org/qortal/crosschain/SimpleTransaction.java | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/qortal/crosschain/Bitcoiny.java b/src/main/java/org/qortal/crosschain/Bitcoiny.java index f66ea939..56c5b409 100644 --- a/src/main/java/org/qortal/crosschain/Bitcoiny.java +++ b/src/main/java/org/qortal/crosschain/Bitcoiny.java @@ -375,7 +375,7 @@ public abstract class Bitcoiny implements ForeignBlockchain { public Long getWalletBalanceFromTransactions(String key58) throws ForeignBlockchainException { long balance = 0; - Comparator oldestTimestampFirstComparator = Comparator.comparingInt(SimpleTransaction::getTimestamp); + Comparator oldestTimestampFirstComparator = Comparator.comparingLong(SimpleTransaction::getTimestamp); List transactions = getWalletTransactions(key58).stream().sorted(oldestTimestampFirstComparator).collect(Collectors.toList()); for (SimpleTransaction transaction : transactions) { balance += transaction.getTotalAmount(); @@ -455,7 +455,7 @@ public abstract class Bitcoiny implements ForeignBlockchain { // Process new keys } while (true); - Comparator newestTimestampFirstComparator = Comparator.comparingInt(SimpleTransaction::getTimestamp).reversed(); + Comparator newestTimestampFirstComparator = Comparator.comparingLong(SimpleTransaction::getTimestamp).reversed(); // Update cache and return transactionsCacheTimestamp = NTP.getTime(); @@ -537,7 +537,8 @@ public abstract class Bitcoiny implements ForeignBlockchain { // All inputs and outputs relate to this wallet, so the balance should be unaffected amount = 0; } - return new SimpleTransaction(t.txHash, t.timestamp, amount, fee, inputs, outputs); + long timestampMillis = t.timestamp * 1000L; + return new SimpleTransaction(t.txHash, timestampMillis, amount, fee, inputs, outputs); } /** diff --git a/src/main/java/org/qortal/crosschain/SimpleTransaction.java b/src/main/java/org/qortal/crosschain/SimpleTransaction.java index 27c9f9e3..53039020 100644 --- a/src/main/java/org/qortal/crosschain/SimpleTransaction.java +++ b/src/main/java/org/qortal/crosschain/SimpleTransaction.java @@ -7,7 +7,7 @@ import java.util.List; @XmlAccessorType(XmlAccessType.FIELD) public class SimpleTransaction { private String txHash; - private Integer timestamp; + private Long timestamp; private long totalAmount; private long feeAmount; private List inputs; @@ -74,7 +74,7 @@ public class SimpleTransaction { public SimpleTransaction() { } - public SimpleTransaction(String txHash, Integer timestamp, long totalAmount, long feeAmount, List inputs, List outputs) { + public SimpleTransaction(String txHash, Long timestamp, long totalAmount, long feeAmount, List inputs, List outputs) { this.txHash = txHash; this.timestamp = timestamp; this.totalAmount = totalAmount; @@ -87,7 +87,7 @@ public class SimpleTransaction { return txHash; } - public Integer getTimestamp() { + public Long getTimestamp() { return timestamp; }