From 57bec6165baa0af72b21daea9100d330c068d8d7 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Tue, 9 Sep 2014 14:07:47 +0200 Subject: [PATCH] Parse verifyFlags from script and tx JSON tests. In addition to P2SH (previously known as enforceP2SH), NULLDUMMY is implemented. Update all script and tx JSON tests from Bitcoin Core. --- .../bitcoin/core/FullPrunedBlockChain.java | 31 +- .../google/bitcoin/core/TransactionInput.java | 2 +- .../java/com/google/bitcoin/core/Wallet.java | 2 +- .../com/google/bitcoin/script/Script.java | 46 +- .../signers/CustomTransactionSigner.java | 2 +- .../signers/LocalTransactionSigner.java | 2 +- .../com/google/bitcoin/core/WalletTest.java | 4 +- .../com/google/bitcoin/script/ScriptTest.java | 33 +- .../google/bitcoin/script/script_invalid.json | 585 ++++++------ .../google/bitcoin/script/script_valid.json | 868 +++++++++--------- .../com/google/bitcoin/script/tx_invalid.json | 63 +- .../com/google/bitcoin/script/tx_valid.json | 116 ++- 12 files changed, 957 insertions(+), 797 deletions(-) diff --git a/core/src/main/java/com/google/bitcoin/core/FullPrunedBlockChain.java b/core/src/main/java/com/google/bitcoin/core/FullPrunedBlockChain.java index 28de36fa..7dbe811c 100644 --- a/core/src/main/java/com/google/bitcoin/core/FullPrunedBlockChain.java +++ b/core/src/main/java/com/google/bitcoin/core/FullPrunedBlockChain.java @@ -18,6 +18,7 @@ package com.google.bitcoin.core; import com.google.bitcoin.script.Script; +import com.google.bitcoin.script.Script.VerifyFlag; import com.google.bitcoin.store.BlockStoreException; import com.google.bitcoin.store.FullPrunedBlockStore; import org.slf4j.Logger; @@ -25,9 +26,11 @@ import org.slf4j.LoggerFactory; import javax.annotation.Nullable; import java.util.ArrayList; +import java.util.EnumSet; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; +import java.util.Set; import java.util.concurrent.*; import static com.google.common.base.Preconditions.checkState; @@ -124,10 +127,10 @@ public class FullPrunedBlockChain extends AbstractBlockChain { private static class Verifier implements Callable { final Transaction tx; final List