From 64e74d3a566eceb41d850bd3cefc67b0e32e5151 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Fri, 2 Nov 2018 12:51:15 +0100 Subject: [PATCH] Script: Remove deprecated decodeFromBitcoin() variant. --- .../org/bitcoinj/crypto/TransactionSignature.java | 14 -------------- .../channels/PaymentChannelServerState.java | 2 +- .../channels/PaymentChannelV1ClientState.java | 2 +- core/src/main/java/org/bitcoinj/script/Script.java | 4 ++-- 4 files changed, 4 insertions(+), 18 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/crypto/TransactionSignature.java b/core/src/main/java/org/bitcoinj/crypto/TransactionSignature.java index 0cec411bb..ef14b7670 100644 --- a/core/src/main/java/org/bitcoinj/crypto/TransactionSignature.java +++ b/core/src/main/java/org/bitcoinj/crypto/TransactionSignature.java @@ -156,20 +156,6 @@ public class TransactionSignature extends ECKey.ECDSASignature { return new TransactionSignature(super.toCanonicalised(), sigHashMode(), anyoneCanPay()); } - /** - * Returns a decoded signature. - * - * @param requireCanonicalEncoding if the encoding of the signature must - * be canonical. - * @throws RuntimeException if the signature is invalid or unparseable in some way. - * @deprecated use {@link #decodeFromBitcoin(byte[], boolean, boolean)} instead}. - */ - @Deprecated - public static TransactionSignature decodeFromBitcoin(byte[] bytes, - boolean requireCanonicalEncoding) throws VerificationException { - return decodeFromBitcoin(bytes, requireCanonicalEncoding, false); - } - /** * Returns a decoded signature. * diff --git a/core/src/main/java/org/bitcoinj/protocols/channels/PaymentChannelServerState.java b/core/src/main/java/org/bitcoinj/protocols/channels/PaymentChannelServerState.java index fd2eb2a4d..8bbe2c700 100644 --- a/core/src/main/java/org/bitcoinj/protocols/channels/PaymentChannelServerState.java +++ b/core/src/main/java/org/bitcoinj/protocols/channels/PaymentChannelServerState.java @@ -240,7 +240,7 @@ public abstract class PaymentChannelServerState { stateMachine.checkState(State.READY); checkNotNull(refundSize); checkNotNull(signatureBytes); - TransactionSignature signature = TransactionSignature.decodeFromBitcoin(signatureBytes, true); + TransactionSignature signature = TransactionSignature.decodeFromBitcoin(signatureBytes, true, false); // We allow snapping to zero for the payment amount because it's treated specially later, but not less than // the dust level because that would prevent the transaction from being relayed/mined. final boolean fullyUsedUp = refundSize.equals(Coin.ZERO); diff --git a/core/src/main/java/org/bitcoinj/protocols/channels/PaymentChannelV1ClientState.java b/core/src/main/java/org/bitcoinj/protocols/channels/PaymentChannelV1ClientState.java index 3d44c19d1..d7d8c55ef 100644 --- a/core/src/main/java/org/bitcoinj/protocols/channels/PaymentChannelV1ClientState.java +++ b/core/src/main/java/org/bitcoinj/protocols/channels/PaymentChannelV1ClientState.java @@ -230,7 +230,7 @@ public class PaymentChannelV1ClientState extends PaymentChannelClientState { throws VerificationException { checkNotNull(theirSignature); stateMachine.checkState(State.WAITING_FOR_SIGNED_REFUND); - TransactionSignature theirSig = TransactionSignature.decodeFromBitcoin(theirSignature, true); + TransactionSignature theirSig = TransactionSignature.decodeFromBitcoin(theirSignature, true, false); if (theirSig.sigHashMode() != Transaction.SigHash.NONE || !theirSig.anyoneCanPay()) throw new VerificationException("Refund signature was not SIGHASH_NONE|SIGHASH_ANYONECANPAY"); // Sign the refund transaction ourselves. diff --git a/core/src/main/java/org/bitcoinj/script/Script.java b/core/src/main/java/org/bitcoinj/script/Script.java index 74f4ea226..0691058b3 100644 --- a/core/src/main/java/org/bitcoinj/script/Script.java +++ b/core/src/main/java/org/bitcoinj/script/Script.java @@ -470,7 +470,7 @@ public class Script { private int findSigInRedeem(byte[] signatureBytes, Sha256Hash hash) { checkArgument(chunks.get(0).isOpCode()); // P2SH scriptSig int numKeys = Script.decodeFromOpN(chunks.get(chunks.size() - 2).opcode); - TransactionSignature signature = TransactionSignature.decodeFromBitcoin(signatureBytes, true); + TransactionSignature signature = TransactionSignature.decodeFromBitcoin(signatureBytes, true, false); for (int i = 0 ; i < numKeys ; i++) { if (ECKey.fromPublicOnly(chunks.get(i + 1).data).verify(hash, signature)) { return i; @@ -1484,7 +1484,7 @@ public class Script { // We could reasonably move this out of the loop, but because signature verification is significantly // more expensive than hashing, its not a big deal. try { - TransactionSignature sig = TransactionSignature.decodeFromBitcoin(sigs.getFirst(), requireCanonical); + TransactionSignature sig = TransactionSignature.decodeFromBitcoin(sigs.getFirst(), requireCanonical, false); Sha256Hash hash = txContainingThis.hashForSignature(index, connectedScript, (byte) sig.sighashFlags); if (ECKey.verify(hash.getBytes(), sig, pubKey)) sigs.pollFirst();