From 805b78f06047eabfb40176b223c1b26d170b614f Mon Sep 17 00:00:00 2001 From: Ross Nicoll Date: Fri, 16 Oct 2015 19:18:15 +0100 Subject: [PATCH] Added check of parsed difficulty bits. Corrected difficult retarget interval. --- .../java/org/libdohj/params/AbstractDogecoinParams.java | 6 +++--- src/test/java/org/bitcoinj/core/DogecoinBlockTest.java | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/libdohj/params/AbstractDogecoinParams.java b/src/main/java/org/libdohj/params/AbstractDogecoinParams.java index 50ef20ba..0ecfb83b 100644 --- a/src/main/java/org/libdohj/params/AbstractDogecoinParams.java +++ b/src/main/java/org/libdohj/params/AbstractDogecoinParams.java @@ -173,8 +173,8 @@ public abstract class AbstractDogecoinParams extends NetworkParameters implement final int previousHeight = storedPrev.getHeight(); final boolean digishieldAlgorithm = previousHeight + 1 >= this.getDigishieldBlockHeight(); final int retargetInterval = digishieldAlgorithm - ? this.getInterval() - : this.getNewInterval(); + ? this.getNewInterval() + : this.getInterval(); // Is this supposed to be a difficulty transition point? if ((storedPrev.getHeight() + 1) % retargetInterval != 0) { @@ -226,7 +226,7 @@ public abstract class AbstractDogecoinParams extends NetworkParameters implement * @param lastRetargetTime Time of the last difficulty retarget. * @return New difficulty target as compact bytes. */ - protected long getNewDifficultyTarget(int previousHeight, long previousBlockTime, + public long getNewDifficultyTarget(int previousHeight, long previousBlockTime, final long lastDifficultyTarget, final long lastRetargetTime) { final int height = previousHeight + 1; final boolean digishieldAlgorithm = height >= this.getDigishieldBlockHeight(); diff --git a/src/test/java/org/bitcoinj/core/DogecoinBlockTest.java b/src/test/java/org/bitcoinj/core/DogecoinBlockTest.java index 16e7a5b6..79062bfc 100644 --- a/src/test/java/org/bitcoinj/core/DogecoinBlockTest.java +++ b/src/test/java/org/bitcoinj/core/DogecoinBlockTest.java @@ -54,6 +54,7 @@ public class DogecoinBlockTest { final AltcoinBlock block = (AltcoinBlock)serializer.makeBlock(payload); assertEquals("82bc68038f6034c0596b6e313729793a887fded6e92a31fbdf70863f89d9bea2", block.getHashAsString()); assertEquals(1, block.getTransactions().size()); + assertEquals(0x1e0ffff0L, block.getDifficultyTarget()); } /**