From 1a5184ab4baea46e4cbe4187112c1ac810e74aca Mon Sep 17 00:00:00 2001 From: Ross Nicoll Date: Wed, 26 Aug 2015 21:29:43 +0100 Subject: [PATCH] Correct cast of network parameters to AuxPoW parameters Also adds unit test coverage --- src/main/java/org/bitcoinj/core/AltcoinBlock.java | 2 +- .../java/org/bitcoinj/core/DogecoinBlockTest.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/bitcoinj/core/AltcoinBlock.java b/src/main/java/org/bitcoinj/core/AltcoinBlock.java index 052bff90..9ba63a53 100644 --- a/src/main/java/org/bitcoinj/core/AltcoinBlock.java +++ b/src/main/java/org/bitcoinj/core/AltcoinBlock.java @@ -241,7 +241,7 @@ public class AltcoinBlock extends org.bitcoinj.core.Block { if (params instanceof AltcoinNetworkParameters) { BigInteger target = getDifficultyTargetAsInteger(); - final AuxPoWNetworkParameters altParams = (AuxPoWNetworkParameters)auxpow; + final AuxPoWNetworkParameters altParams = (AuxPoWNetworkParameters)this.params; if (altParams.isAuxPoWBlockVersion(getRawVersion()) && null != auxpow) { return auxpow.checkProofOfWork(this.getHash(), target, throwException); } diff --git a/src/test/java/org/bitcoinj/core/DogecoinBlockTest.java b/src/test/java/org/bitcoinj/core/DogecoinBlockTest.java index b1ee4bb9..3744ced4 100644 --- a/src/test/java/org/bitcoinj/core/DogecoinBlockTest.java +++ b/src/test/java/org/bitcoinj/core/DogecoinBlockTest.java @@ -117,4 +117,15 @@ public class DogecoinBlockTest { assertEquals(6, block.getTransactions().size()); } + + /** + * Confirm that checking proof of work on an AuxPoW block works. + */ + @Test + public void shouldCheckAuxPoWProofOfWork() throws IOException { + byte[] payload = Util.getBytes(getClass().getResourceAsStream("dogecoin_block371337.bin")); + AltcoinSerializer serializer = (AltcoinSerializer)params.getDefaultSerializer(); + final AltcoinBlock block = (AltcoinBlock)serializer.makeBlock(payload); + assertEquals(true, block.checkProofOfWork(true)); + } }