diff --git a/core/src/main/java/org/bitcoinj/signers/CustomTransactionSigner.java b/core/src/main/java/org/bitcoinj/signers/CustomTransactionSigner.java index dc675862..20fe991d 100644 --- a/core/src/main/java/org/bitcoinj/signers/CustomTransactionSigner.java +++ b/core/src/main/java/org/bitcoinj/signers/CustomTransactionSigner.java @@ -40,7 +40,7 @@ import static com.google.common.base.Preconditions.checkNotNull; * some local API or something else. *

*/ -public abstract class CustomTransactionSigner extends StatelessTransactionSigner { +public abstract class CustomTransactionSigner implements TransactionSigner { private static final Logger log = LoggerFactory.getLogger(CustomTransactionSigner.class); @Override diff --git a/core/src/main/java/org/bitcoinj/signers/LocalTransactionSigner.java b/core/src/main/java/org/bitcoinj/signers/LocalTransactionSigner.java index 1f59b423..62e96e08 100644 --- a/core/src/main/java/org/bitcoinj/signers/LocalTransactionSigner.java +++ b/core/src/main/java/org/bitcoinj/signers/LocalTransactionSigner.java @@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory; * the same derivation path.

*

This signer always uses {@link Transaction.SigHash#ALL} signing mode.

*/ -public class LocalTransactionSigner extends StatelessTransactionSigner { +public class LocalTransactionSigner implements TransactionSigner { private static final Logger log = LoggerFactory.getLogger(LocalTransactionSigner.class); /** diff --git a/core/src/main/java/org/bitcoinj/signers/MissingSigResolutionSigner.java b/core/src/main/java/org/bitcoinj/signers/MissingSigResolutionSigner.java index dddba7c2..befde006 100644 --- a/core/src/main/java/org/bitcoinj/signers/MissingSigResolutionSigner.java +++ b/core/src/main/java/org/bitcoinj/signers/MissingSigResolutionSigner.java @@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory; * In MissingSigsMode.THROW mode this signer will throw an exception. It would be MissingSignatureException * for P2SH or MissingPrivateKeyException for other transaction types. */ -public class MissingSigResolutionSigner extends StatelessTransactionSigner { +public class MissingSigResolutionSigner implements TransactionSigner { private static final Logger log = LoggerFactory.getLogger(MissingSigResolutionSigner.class); public Wallet.MissingSigsMode missingSigsMode = Wallet.MissingSigsMode.USE_DUMMY_SIG; diff --git a/core/src/main/java/org/bitcoinj/signers/StatelessTransactionSigner.java b/core/src/main/java/org/bitcoinj/signers/StatelessTransactionSigner.java deleted file mode 100644 index 393804bf..00000000 --- a/core/src/main/java/org/bitcoinj/signers/StatelessTransactionSigner.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2014 Kosta Korenkov - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.bitcoinj.signers; - -/** - * A signer that doesn't have any state to be serialized. - */ -public abstract class StatelessTransactionSigner implements TransactionSigner { - @Override - public void deserialize(byte[] data) { - } - - @Override - public byte[] serialize() { - return new byte[0]; - } -} diff --git a/core/src/main/java/org/bitcoinj/signers/TransactionSigner.java b/core/src/main/java/org/bitcoinj/signers/TransactionSigner.java index 33e8dd40..663f1bfa 100644 --- a/core/src/main/java/org/bitcoinj/signers/TransactionSigner.java +++ b/core/src/main/java/org/bitcoinj/signers/TransactionSigner.java @@ -67,16 +67,6 @@ public interface TransactionSigner { */ boolean isReady(); - /** - * Returns byte array of data representing state of this signer. It's used to serialize/deserialize this signer - */ - byte[] serialize(); - - /** - * Uses given byte array of data to reconstruct internal state of this signer - */ - void deserialize(byte[] data); - /** * Signs given transaction's inputs. * Returns true if signer is compatible with given transaction (can do something meaningful with it). diff --git a/core/src/main/java/org/bitcoinj/wallet/Protos.java b/core/src/main/java/org/bitcoinj/wallet/Protos.java index 12fa8497..34eb5007 100644 --- a/core/src/main/java/org/bitcoinj/wallet/Protos.java +++ b/core/src/main/java/org/bitcoinj/wallet/Protos.java @@ -13661,661 +13661,6 @@ public final class Protos { // @@protoc_insertion_point(class_scope:wallet.Tag) } - public interface TransactionSignerOrBuilder extends - // @@protoc_insertion_point(interface_extends:wallet.TransactionSigner) - com.google.protobuf.MessageOrBuilder { - - /** - * required string class_name = 1; - * - *
-     * fully qualified class name of TransactionSigner implementation
-     * 
- */ - boolean hasClassName(); - /** - * required string class_name = 1; - * - *
-     * fully qualified class name of TransactionSigner implementation
-     * 
- */ - java.lang.String getClassName(); - /** - * required string class_name = 1; - * - *
-     * fully qualified class name of TransactionSigner implementation
-     * 
- */ - com.google.protobuf.ByteString - getClassNameBytes(); - - /** - * optional bytes data = 2; - * - *
-     * arbitrary data required for signer to function
-     * 
- */ - boolean hasData(); - /** - * optional bytes data = 2; - * - *
-     * arbitrary data required for signer to function
-     * 
- */ - com.google.protobuf.ByteString getData(); - } - /** - * Protobuf type {@code wallet.TransactionSigner} - * - *
-   **
-   * Data required to reconstruct TransactionSigner.
-   * 
- */ - public static final class TransactionSigner extends - com.google.protobuf.GeneratedMessage implements - // @@protoc_insertion_point(message_implements:wallet.TransactionSigner) - TransactionSignerOrBuilder { - // Use TransactionSigner.newBuilder() to construct. - private TransactionSigner(com.google.protobuf.GeneratedMessage.Builder builder) { - super(builder); - this.unknownFields = builder.getUnknownFields(); - } - private TransactionSigner(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } - - private static final TransactionSigner defaultInstance; - public static TransactionSigner getDefaultInstance() { - return defaultInstance; - } - - public TransactionSigner getDefaultInstanceForType() { - return defaultInstance; - } - - private final com.google.protobuf.UnknownFieldSet unknownFields; - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - private TransactionSigner( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - initFields(); - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = - com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!parseUnknownField(input, unknownFields, - extensionRegistry, tag)) { - done = true; - } - break; - } - case 10: { - com.google.protobuf.ByteString bs = input.readBytes(); - bitField0_ |= 0x00000001; - className_ = bs; - break; - } - case 18: { - bitField0_ |= 0x00000002; - data_ = input.readBytes(); - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException( - e.getMessage()).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.bitcoinj.wallet.Protos.internal_static_wallet_TransactionSigner_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.bitcoinj.wallet.Protos.internal_static_wallet_TransactionSigner_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.bitcoinj.wallet.Protos.TransactionSigner.class, org.bitcoinj.wallet.Protos.TransactionSigner.Builder.class); - } - - public static com.google.protobuf.Parser PARSER = - new com.google.protobuf.AbstractParser() { - public TransactionSigner parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new TransactionSigner(input, extensionRegistry); - } - }; - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - private int bitField0_; - public static final int CLASS_NAME_FIELD_NUMBER = 1; - private java.lang.Object className_; - /** - * required string class_name = 1; - * - *
-     * fully qualified class name of TransactionSigner implementation
-     * 
- */ - public boolean hasClassName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * required string class_name = 1; - * - *
-     * fully qualified class name of TransactionSigner implementation
-     * 
- */ - public java.lang.String getClassName() { - java.lang.Object ref = className_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - className_ = s; - } - return s; - } - } - /** - * required string class_name = 1; - * - *
-     * fully qualified class name of TransactionSigner implementation
-     * 
- */ - public com.google.protobuf.ByteString - getClassNameBytes() { - java.lang.Object ref = className_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - className_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DATA_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString data_; - /** - * optional bytes data = 2; - * - *
-     * arbitrary data required for signer to function
-     * 
- */ - public boolean hasData() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes data = 2; - * - *
-     * arbitrary data required for signer to function
-     * 
- */ - public com.google.protobuf.ByteString getData() { - return data_; - } - - private void initFields() { - className_ = ""; - data_ = com.google.protobuf.ByteString.EMPTY; - } - private byte memoizedIsInitialized = -1; - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - if (!hasClassName()) { - memoizedIsInitialized = 0; - return false; - } - memoizedIsInitialized = 1; - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (((bitField0_ & 0x00000001) == 0x00000001)) { - output.writeBytes(1, getClassNameBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeBytes(2, data_); - } - getUnknownFields().writeTo(output); - } - - private int memoizedSerializedSize = -1; - public int getSerializedSize() { - int size = memoizedSerializedSize; - if (size != -1) return size; - - size = 0; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(1, getClassNameBytes()); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, data_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSerializedSize = size; - return size; - } - - private static final long serialVersionUID = 0L; - @java.lang.Override - protected java.lang.Object writeReplace() - throws java.io.ObjectStreamException { - return super.writeReplace(); - } - - public static org.bitcoinj.wallet.Protos.TransactionSigner parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.bitcoinj.wallet.Protos.TransactionSigner parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.bitcoinj.wallet.Protos.TransactionSigner parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static org.bitcoinj.wallet.Protos.TransactionSigner parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static org.bitcoinj.wallet.Protos.TransactionSigner parseFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.bitcoinj.wallet.Protos.TransactionSigner parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - public static org.bitcoinj.wallet.Protos.TransactionSigner parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input); - } - public static org.bitcoinj.wallet.Protos.TransactionSigner parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseDelimitedFrom(input, extensionRegistry); - } - public static org.bitcoinj.wallet.Protos.TransactionSigner parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return PARSER.parseFrom(input); - } - public static org.bitcoinj.wallet.Protos.TransactionSigner parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return PARSER.parseFrom(input, extensionRegistry); - } - - public static Builder newBuilder() { return Builder.create(); } - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder(org.bitcoinj.wallet.Protos.TransactionSigner prototype) { - return newBuilder().mergeFrom(prototype); - } - public Builder toBuilder() { return newBuilder(this); } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code wallet.TransactionSigner} - * - *
-     **
-     * Data required to reconstruct TransactionSigner.
-     * 
- */ - public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder implements - // @@protoc_insertion_point(builder_implements:wallet.TransactionSigner) - org.bitcoinj.wallet.Protos.TransactionSignerOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return org.bitcoinj.wallet.Protos.internal_static_wallet_TransactionSigner_descriptor; - } - - protected com.google.protobuf.GeneratedMessage.FieldAccessorTable - internalGetFieldAccessorTable() { - return org.bitcoinj.wallet.Protos.internal_static_wallet_TransactionSigner_fieldAccessorTable - .ensureFieldAccessorsInitialized( - org.bitcoinj.wallet.Protos.TransactionSigner.class, org.bitcoinj.wallet.Protos.TransactionSigner.Builder.class); - } - - // Construct using org.bitcoinj.wallet.Protos.TransactionSigner.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessage.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { - } - } - private static Builder create() { - return new Builder(); - } - - public Builder clear() { - super.clear(); - className_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - data_ = com.google.protobuf.ByteString.EMPTY; - bitField0_ = (bitField0_ & ~0x00000002); - return this; - } - - public Builder clone() { - return create().mergeFrom(buildPartial()); - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return org.bitcoinj.wallet.Protos.internal_static_wallet_TransactionSigner_descriptor; - } - - public org.bitcoinj.wallet.Protos.TransactionSigner getDefaultInstanceForType() { - return org.bitcoinj.wallet.Protos.TransactionSigner.getDefaultInstance(); - } - - public org.bitcoinj.wallet.Protos.TransactionSigner build() { - org.bitcoinj.wallet.Protos.TransactionSigner result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public org.bitcoinj.wallet.Protos.TransactionSigner buildPartial() { - org.bitcoinj.wallet.Protos.TransactionSigner result = new org.bitcoinj.wallet.Protos.TransactionSigner(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.className_ = className_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.data_ = data_; - result.bitField0_ = to_bitField0_; - onBuilt(); - return result; - } - - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.bitcoinj.wallet.Protos.TransactionSigner) { - return mergeFrom((org.bitcoinj.wallet.Protos.TransactionSigner)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(org.bitcoinj.wallet.Protos.TransactionSigner other) { - if (other == org.bitcoinj.wallet.Protos.TransactionSigner.getDefaultInstance()) return this; - if (other.hasClassName()) { - bitField0_ |= 0x00000001; - className_ = other.className_; - onChanged(); - } - if (other.hasData()) { - setData(other.getData()); - } - this.mergeUnknownFields(other.getUnknownFields()); - return this; - } - - public final boolean isInitialized() { - if (!hasClassName()) { - - return false; - } - return true; - } - - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - org.bitcoinj.wallet.Protos.TransactionSigner parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.bitcoinj.wallet.Protos.TransactionSigner) e.getUnfinishedMessage(); - throw e; - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - private int bitField0_; - - private java.lang.Object className_ = ""; - /** - * required string class_name = 1; - * - *
-       * fully qualified class name of TransactionSigner implementation
-       * 
- */ - public boolean hasClassName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - /** - * required string class_name = 1; - * - *
-       * fully qualified class name of TransactionSigner implementation
-       * 
- */ - public java.lang.String getClassName() { - java.lang.Object ref = className_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - className_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * required string class_name = 1; - * - *
-       * fully qualified class name of TransactionSigner implementation
-       * 
- */ - public com.google.protobuf.ByteString - getClassNameBytes() { - java.lang.Object ref = className_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - className_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * required string class_name = 1; - * - *
-       * fully qualified class name of TransactionSigner implementation
-       * 
- */ - public Builder setClassName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - className_ = value; - onChanged(); - return this; - } - /** - * required string class_name = 1; - * - *
-       * fully qualified class name of TransactionSigner implementation
-       * 
- */ - public Builder clearClassName() { - bitField0_ = (bitField0_ & ~0x00000001); - className_ = getDefaultInstance().getClassName(); - onChanged(); - return this; - } - /** - * required string class_name = 1; - * - *
-       * fully qualified class name of TransactionSigner implementation
-       * 
- */ - public Builder setClassNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - className_ = value; - onChanged(); - return this; - } - - private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; - /** - * optional bytes data = 2; - * - *
-       * arbitrary data required for signer to function
-       * 
- */ - public boolean hasData() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - /** - * optional bytes data = 2; - * - *
-       * arbitrary data required for signer to function
-       * 
- */ - public com.google.protobuf.ByteString getData() { - return data_; - } - /** - * optional bytes data = 2; - * - *
-       * arbitrary data required for signer to function
-       * 
- */ - public Builder setData(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - data_ = value; - onChanged(); - return this; - } - /** - * optional bytes data = 2; - * - *
-       * arbitrary data required for signer to function
-       * 
- */ - public Builder clearData() { - bitField0_ = (bitField0_ & ~0x00000002); - data_ = getDefaultInstance().getData(); - onChanged(); - return this; - } - - // @@protoc_insertion_point(builder_scope:wallet.TransactionSigner) - } - - static { - defaultInstance = new TransactionSigner(true); - defaultInstance.initFields(); - } - - // @@protoc_insertion_point(class_scope:wallet.TransactionSigner) - } - public interface WalletOrBuilder extends // @@protoc_insertion_point(interface_extends:wallet.Wallet) com.google.protobuf.MessageOrBuilder { @@ -14598,50 +13943,6 @@ public final class Protos { */ org.bitcoinj.wallet.Protos.TagOrBuilder getTagsOrBuilder( int index); - - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-     * transaction signers added to the wallet
-     * 
- */ - java.util.List - getTransactionSignersList(); - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-     * transaction signers added to the wallet
-     * 
- */ - org.bitcoinj.wallet.Protos.TransactionSigner getTransactionSigners(int index); - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-     * transaction signers added to the wallet
-     * 
- */ - int getTransactionSignersCount(); - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-     * transaction signers added to the wallet
-     * 
- */ - java.util.List - getTransactionSignersOrBuilderList(); - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-     * transaction signers added to the wallet
-     * 
- */ - org.bitcoinj.wallet.Protos.TransactionSignerOrBuilder getTransactionSignersOrBuilder( - int index); } /** * Protobuf type {@code wallet.Wallet} @@ -14800,14 +14101,6 @@ public final class Protos { tags_.add(input.readMessage(org.bitcoinj.wallet.Protos.Tag.PARSER, extensionRegistry)); break; } - case 138: { - if (!((mutable_bitField0_ & 0x00004000) == 0x00004000)) { - transactionSigners_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00004000; - } - transactionSigners_.add(input.readMessage(org.bitcoinj.wallet.Protos.TransactionSigner.PARSER, extensionRegistry)); - break; - } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -14831,9 +14124,6 @@ public final class Protos { if (((mutable_bitField0_ & 0x00002000) == 0x00002000)) { tags_ = java.util.Collections.unmodifiableList(tags_); } - if (((mutable_bitField0_ & 0x00004000) == 0x00004000)) { - transactionSigners_ = java.util.Collections.unmodifiableList(transactionSigners_); - } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } @@ -15406,61 +14696,6 @@ public final class Protos { return tags_.get(index); } - public static final int TRANSACTION_SIGNERS_FIELD_NUMBER = 17; - private java.util.List transactionSigners_; - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-     * transaction signers added to the wallet
-     * 
- */ - public java.util.List getTransactionSignersList() { - return transactionSigners_; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-     * transaction signers added to the wallet
-     * 
- */ - public java.util.List - getTransactionSignersOrBuilderList() { - return transactionSigners_; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-     * transaction signers added to the wallet
-     * 
- */ - public int getTransactionSignersCount() { - return transactionSigners_.size(); - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-     * transaction signers added to the wallet
-     * 
- */ - public org.bitcoinj.wallet.Protos.TransactionSigner getTransactionSigners(int index) { - return transactionSigners_.get(index); - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-     * transaction signers added to the wallet
-     * 
- */ - public org.bitcoinj.wallet.Protos.TransactionSignerOrBuilder getTransactionSignersOrBuilder( - int index) { - return transactionSigners_.get(index); - } - private void initFields() { networkIdentifier_ = ""; lastSeenBlockHash_ = com.google.protobuf.ByteString.EMPTY; @@ -15476,7 +14711,6 @@ public final class Protos { description_ = ""; keyRotationTime_ = 0L; tags_ = java.util.Collections.emptyList(); - transactionSigners_ = java.util.Collections.emptyList(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -15524,12 +14758,6 @@ public final class Protos { return false; } } - for (int i = 0; i < getTransactionSignersCount(); i++) { - if (!getTransactionSigners(i).isInitialized()) { - memoizedIsInitialized = 0; - return false; - } - } memoizedIsInitialized = 1; return true; } @@ -15579,9 +14807,6 @@ public final class Protos { for (int i = 0; i < tags_.size(); i++) { output.writeMessage(16, tags_.get(i)); } - for (int i = 0; i < transactionSigners_.size(); i++) { - output.writeMessage(17, transactionSigners_.get(i)); - } getUnknownFields().writeTo(output); } @@ -15647,10 +14872,6 @@ public final class Protos { size += com.google.protobuf.CodedOutputStream .computeMessageSize(16, tags_.get(i)); } - for (int i = 0; i < transactionSigners_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(17, transactionSigners_.get(i)); - } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -15770,7 +14991,6 @@ public final class Protos { getEncryptionParametersFieldBuilder(); getExtensionFieldBuilder(); getTagsFieldBuilder(); - getTransactionSignersFieldBuilder(); } } private static Builder create() { @@ -15831,12 +15051,6 @@ public final class Protos { } else { tagsBuilder_.clear(); } - if (transactionSignersBuilder_ == null) { - transactionSigners_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00004000); - } else { - transactionSignersBuilder_.clear(); - } return this; } @@ -15950,15 +15164,6 @@ public final class Protos { } else { result.tags_ = tagsBuilder_.build(); } - if (transactionSignersBuilder_ == null) { - if (((bitField0_ & 0x00004000) == 0x00004000)) { - transactionSigners_ = java.util.Collections.unmodifiableList(transactionSigners_); - bitField0_ = (bitField0_ & ~0x00004000); - } - result.transactionSigners_ = transactionSigners_; - } else { - result.transactionSigners_ = transactionSignersBuilder_.build(); - } result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -16136,32 +15341,6 @@ public final class Protos { } } } - if (transactionSignersBuilder_ == null) { - if (!other.transactionSigners_.isEmpty()) { - if (transactionSigners_.isEmpty()) { - transactionSigners_ = other.transactionSigners_; - bitField0_ = (bitField0_ & ~0x00004000); - } else { - ensureTransactionSignersIsMutable(); - transactionSigners_.addAll(other.transactionSigners_); - } - onChanged(); - } - } else { - if (!other.transactionSigners_.isEmpty()) { - if (transactionSignersBuilder_.isEmpty()) { - transactionSignersBuilder_.dispose(); - transactionSignersBuilder_ = null; - transactionSigners_ = other.transactionSigners_; - bitField0_ = (bitField0_ & ~0x00004000); - transactionSignersBuilder_ = - com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? - getTransactionSignersFieldBuilder() : null; - } else { - transactionSignersBuilder_.addAllMessages(other.transactionSigners_); - } - } - } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -16207,12 +15386,6 @@ public final class Protos { return false; } } - for (int i = 0; i < getTransactionSignersCount(); i++) { - if (!getTransactionSigners(i).isInitialized()) { - - return false; - } - } return true; } @@ -18029,318 +17202,6 @@ public final class Protos { return tagsBuilder_; } - private java.util.List transactionSigners_ = - java.util.Collections.emptyList(); - private void ensureTransactionSignersIsMutable() { - if (!((bitField0_ & 0x00004000) == 0x00004000)) { - transactionSigners_ = new java.util.ArrayList(transactionSigners_); - bitField0_ |= 0x00004000; - } - } - - private com.google.protobuf.RepeatedFieldBuilder< - org.bitcoinj.wallet.Protos.TransactionSigner, org.bitcoinj.wallet.Protos.TransactionSigner.Builder, org.bitcoinj.wallet.Protos.TransactionSignerOrBuilder> transactionSignersBuilder_; - - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public java.util.List getTransactionSignersList() { - if (transactionSignersBuilder_ == null) { - return java.util.Collections.unmodifiableList(transactionSigners_); - } else { - return transactionSignersBuilder_.getMessageList(); - } - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public int getTransactionSignersCount() { - if (transactionSignersBuilder_ == null) { - return transactionSigners_.size(); - } else { - return transactionSignersBuilder_.getCount(); - } - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public org.bitcoinj.wallet.Protos.TransactionSigner getTransactionSigners(int index) { - if (transactionSignersBuilder_ == null) { - return transactionSigners_.get(index); - } else { - return transactionSignersBuilder_.getMessage(index); - } - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public Builder setTransactionSigners( - int index, org.bitcoinj.wallet.Protos.TransactionSigner value) { - if (transactionSignersBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTransactionSignersIsMutable(); - transactionSigners_.set(index, value); - onChanged(); - } else { - transactionSignersBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public Builder setTransactionSigners( - int index, org.bitcoinj.wallet.Protos.TransactionSigner.Builder builderForValue) { - if (transactionSignersBuilder_ == null) { - ensureTransactionSignersIsMutable(); - transactionSigners_.set(index, builderForValue.build()); - onChanged(); - } else { - transactionSignersBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public Builder addTransactionSigners(org.bitcoinj.wallet.Protos.TransactionSigner value) { - if (transactionSignersBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTransactionSignersIsMutable(); - transactionSigners_.add(value); - onChanged(); - } else { - transactionSignersBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public Builder addTransactionSigners( - int index, org.bitcoinj.wallet.Protos.TransactionSigner value) { - if (transactionSignersBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTransactionSignersIsMutable(); - transactionSigners_.add(index, value); - onChanged(); - } else { - transactionSignersBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public Builder addTransactionSigners( - org.bitcoinj.wallet.Protos.TransactionSigner.Builder builderForValue) { - if (transactionSignersBuilder_ == null) { - ensureTransactionSignersIsMutable(); - transactionSigners_.add(builderForValue.build()); - onChanged(); - } else { - transactionSignersBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public Builder addTransactionSigners( - int index, org.bitcoinj.wallet.Protos.TransactionSigner.Builder builderForValue) { - if (transactionSignersBuilder_ == null) { - ensureTransactionSignersIsMutable(); - transactionSigners_.add(index, builderForValue.build()); - onChanged(); - } else { - transactionSignersBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public Builder addAllTransactionSigners( - java.lang.Iterable values) { - if (transactionSignersBuilder_ == null) { - ensureTransactionSignersIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, transactionSigners_); - onChanged(); - } else { - transactionSignersBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public Builder clearTransactionSigners() { - if (transactionSignersBuilder_ == null) { - transactionSigners_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00004000); - onChanged(); - } else { - transactionSignersBuilder_.clear(); - } - return this; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public Builder removeTransactionSigners(int index) { - if (transactionSignersBuilder_ == null) { - ensureTransactionSignersIsMutable(); - transactionSigners_.remove(index); - onChanged(); - } else { - transactionSignersBuilder_.remove(index); - } - return this; - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public org.bitcoinj.wallet.Protos.TransactionSigner.Builder getTransactionSignersBuilder( - int index) { - return getTransactionSignersFieldBuilder().getBuilder(index); - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public org.bitcoinj.wallet.Protos.TransactionSignerOrBuilder getTransactionSignersOrBuilder( - int index) { - if (transactionSignersBuilder_ == null) { - return transactionSigners_.get(index); } else { - return transactionSignersBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public java.util.List - getTransactionSignersOrBuilderList() { - if (transactionSignersBuilder_ != null) { - return transactionSignersBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(transactionSigners_); - } - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public org.bitcoinj.wallet.Protos.TransactionSigner.Builder addTransactionSignersBuilder() { - return getTransactionSignersFieldBuilder().addBuilder( - org.bitcoinj.wallet.Protos.TransactionSigner.getDefaultInstance()); - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public org.bitcoinj.wallet.Protos.TransactionSigner.Builder addTransactionSignersBuilder( - int index) { - return getTransactionSignersFieldBuilder().addBuilder( - index, org.bitcoinj.wallet.Protos.TransactionSigner.getDefaultInstance()); - } - /** - * repeated .wallet.TransactionSigner transaction_signers = 17; - * - *
-       * transaction signers added to the wallet
-       * 
- */ - public java.util.List - getTransactionSignersBuilderList() { - return getTransactionSignersFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilder< - org.bitcoinj.wallet.Protos.TransactionSigner, org.bitcoinj.wallet.Protos.TransactionSigner.Builder, org.bitcoinj.wallet.Protos.TransactionSignerOrBuilder> - getTransactionSignersFieldBuilder() { - if (transactionSignersBuilder_ == null) { - transactionSignersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - org.bitcoinj.wallet.Protos.TransactionSigner, org.bitcoinj.wallet.Protos.TransactionSigner.Builder, org.bitcoinj.wallet.Protos.TransactionSignerOrBuilder>( - transactionSigners_, - ((bitField0_ & 0x00004000) == 0x00004000), - getParentForChildren(), - isClean()); - transactionSigners_ = null; - } - return transactionSignersBuilder_; - } - // @@protoc_insertion_point(builder_scope:wallet.Wallet) } @@ -19188,11 +18049,6 @@ public final class Protos { private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_wallet_Tag_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_wallet_TransactionSigner_descriptor; - private static - com.google.protobuf.GeneratedMessage.FieldAccessorTable - internal_static_wallet_TransactionSigner_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_wallet_Wallet_descriptor; private static @@ -19272,27 +18128,24 @@ public final class Protos { "(\014\022\020\n\001n\030\002 \001(\003:\00516384\022\014\n\001r\030\003 \001(\005:\0018\022\014\n\001p\030" + "\004 \001(\005:\0011\"8\n\tExtension\022\n\n\002id\030\001 \002(\t\022\014\n\004dat" + "a\030\002 \002(\014\022\021\n\tmandatory\030\003 \002(\010\" \n\003Tag\022\013\n\003tag", - "\030\001 \002(\t\022\014\n\004data\030\002 \002(\014\"5\n\021TransactionSigne" + - "r\022\022\n\nclass_name\030\001 \002(\t\022\014\n\004data\030\002 \001(\014\"\351\004\n\006" + - "Wallet\022\032\n\022network_identifier\030\001 \002(\t\022\034\n\024la" + - "st_seen_block_hash\030\002 \001(\014\022\036\n\026last_seen_bl" + - "ock_height\030\014 \001(\r\022!\n\031last_seen_block_time" + - "_secs\030\016 \001(\003\022\030\n\003key\030\003 \003(\0132\013.wallet.Key\022(\n" + - "\013transaction\030\004 \003(\0132\023.wallet.Transaction\022" + - "&\n\016watched_script\030\017 \003(\0132\016.wallet.Script\022" + - "C\n\017encryption_type\030\005 \001(\0162\035.wallet.Wallet" + - ".EncryptionType:\013UNENCRYPTED\0227\n\025encrypti", - "on_parameters\030\006 \001(\0132\030.wallet.ScryptParam" + - "eters\022\022\n\007version\030\007 \001(\005:\0011\022$\n\textension\030\n" + - " \003(\0132\021.wallet.Extension\022\023\n\013description\030\013" + - " \001(\t\022\031\n\021key_rotation_time\030\r \001(\004\022\031\n\004tags\030" + - "\020 \003(\0132\013.wallet.Tag\0226\n\023transaction_signer" + - "s\030\021 \003(\0132\031.wallet.TransactionSigner\";\n\016En" + - "cryptionType\022\017\n\013UNENCRYPTED\020\001\022\030\n\024ENCRYPT" + - "ED_SCRYPT_AES\020\002\"R\n\014ExchangeRate\022\022\n\ncoin_" + - "value\030\001 \002(\003\022\022\n\nfiat_value\030\002 \002(\003\022\032\n\022fiat_" + - "currency_code\030\003 \002(\tB\035\n\023org.bitcoinj.wall", - "etB\006Protos" + "\030\001 \002(\t\022\014\n\004data\030\002 \002(\014\"\261\004\n\006Wallet\022\032\n\022netwo" + + "rk_identifier\030\001 \002(\t\022\034\n\024last_seen_block_h" + + "ash\030\002 \001(\014\022\036\n\026last_seen_block_height\030\014 \001(" + + "\r\022!\n\031last_seen_block_time_secs\030\016 \001(\003\022\030\n\003" + + "key\030\003 \003(\0132\013.wallet.Key\022(\n\013transaction\030\004 " + + "\003(\0132\023.wallet.Transaction\022&\n\016watched_scri" + + "pt\030\017 \003(\0132\016.wallet.Script\022C\n\017encryption_t" + + "ype\030\005 \001(\0162\035.wallet.Wallet.EncryptionType" + + ":\013UNENCRYPTED\0227\n\025encryption_parameters\030\006" + + " \001(\0132\030.wallet.ScryptParameters\022\022\n\007versio", + "n\030\007 \001(\005:\0011\022$\n\textension\030\n \003(\0132\021.wallet.E" + + "xtension\022\023\n\013description\030\013 \001(\t\022\031\n\021key_rot" + + "ation_time\030\r \001(\004\022\031\n\004tags\030\020 \003(\0132\013.wallet." + + "Tag\";\n\016EncryptionType\022\017\n\013UNENCRYPTED\020\001\022\030" + + "\n\024ENCRYPTED_SCRYPT_AES\020\002\"R\n\014ExchangeRate" + + "\022\022\n\ncoin_value\030\001 \002(\003\022\022\n\nfiat_value\030\002 \002(\003" + + "\022\032\n\022fiat_currency_code\030\003 \002(\tB\035\n\023org.bitc" + + "oinj.walletB\006Protos" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { @@ -19378,20 +18231,14 @@ public final class Protos { com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_wallet_Tag_descriptor, new java.lang.String[] { "Tag", "Data", }); - internal_static_wallet_TransactionSigner_descriptor = - getDescriptor().getMessageTypes().get(12); - internal_static_wallet_TransactionSigner_fieldAccessorTable = new - com.google.protobuf.GeneratedMessage.FieldAccessorTable( - internal_static_wallet_TransactionSigner_descriptor, - new java.lang.String[] { "ClassName", "Data", }); internal_static_wallet_Wallet_descriptor = - getDescriptor().getMessageTypes().get(13); + getDescriptor().getMessageTypes().get(12); internal_static_wallet_Wallet_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_wallet_Wallet_descriptor, - new java.lang.String[] { "NetworkIdentifier", "LastSeenBlockHash", "LastSeenBlockHeight", "LastSeenBlockTimeSecs", "Key", "Transaction", "WatchedScript", "EncryptionType", "EncryptionParameters", "Version", "Extension", "Description", "KeyRotationTime", "Tags", "TransactionSigners", }); + new java.lang.String[] { "NetworkIdentifier", "LastSeenBlockHash", "LastSeenBlockHeight", "LastSeenBlockTimeSecs", "Key", "Transaction", "WatchedScript", "EncryptionType", "EncryptionParameters", "Version", "Extension", "Description", "KeyRotationTime", "Tags", }); internal_static_wallet_ExchangeRate_descriptor = - getDescriptor().getMessageTypes().get(14); + getDescriptor().getMessageTypes().get(13); internal_static_wallet_ExchangeRate_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_wallet_ExchangeRate_descriptor, diff --git a/core/src/main/java/org/bitcoinj/wallet/Wallet.java b/core/src/main/java/org/bitcoinj/wallet/Wallet.java index 49eb2a24..26dd6850 100644 --- a/core/src/main/java/org/bitcoinj/wallet/Wallet.java +++ b/core/src/main/java/org/bitcoinj/wallet/Wallet.java @@ -241,7 +241,7 @@ public class Wallet extends BaseTaggableObject private final HashMap extensions; // Objects that perform transaction signing. Applied subsequently one after another - @GuardedBy("lock") private List signers; + @GuardedBy("lock") private volatile List signers; // If this is set then the wallet selects spendable candidate outputs from a UTXO provider. @Nullable private volatile UTXOProvider vUTXOProvider; diff --git a/core/src/main/java/org/bitcoinj/wallet/WalletProtobufSerializer.java b/core/src/main/java/org/bitcoinj/wallet/WalletProtobufSerializer.java index f5e5e303..3d1ab6e6 100644 --- a/core/src/main/java/org/bitcoinj/wallet/WalletProtobufSerializer.java +++ b/core/src/main/java/org/bitcoinj/wallet/WalletProtobufSerializer.java @@ -32,8 +32,6 @@ import org.bitcoinj.crypto.KeyCrypter; import org.bitcoinj.crypto.KeyCrypterScrypt; import org.bitcoinj.script.Script; import org.bitcoinj.script.ScriptException; -import org.bitcoinj.signers.LocalTransactionSigner; -import org.bitcoinj.signers.TransactionSigner; import org.bitcoinj.utils.ExchangeRate; import org.bitcoinj.utils.Fiat; import org.bitcoinj.wallet.Protos.Wallet.EncryptionType; @@ -235,16 +233,6 @@ public class WalletProtobufSerializer { walletBuilder.addTags(tag); } - for (TransactionSigner signer : wallet.getTransactionSigners()) { - // do not serialize LocalTransactionSigner as it's being added implicitly - if (signer instanceof LocalTransactionSigner) - continue; - Protos.TransactionSigner.Builder protoSigner = Protos.TransactionSigner.newBuilder(); - protoSigner.setClassName(signer.getClass().getName()); - protoSigner.setData(ByteString.copyFrom(signer.serialize())); - walletBuilder.addTransactionSigners(protoSigner); - } - // Populate the wallet version. walletBuilder.setVersion(wallet.getVersion()); @@ -567,18 +555,6 @@ public class WalletProtobufSerializer { wallet.setTag(tag.getTag(), tag.getData()); } - for (Protos.TransactionSigner signerProto : walletProto.getTransactionSignersList()) { - try { - Class signerClass = Class.forName(signerProto.getClassName()); - TransactionSigner signer = (TransactionSigner)signerClass.newInstance(); - signer.deserialize(signerProto.getData().toByteArray()); - wallet.addTransactionSigner(signer); - } catch (Exception e) { - throw new UnreadableWalletException("Unable to deserialize TransactionSigner instance: " + - signerProto.getClassName(), e); - } - } - if (walletProto.hasVersion()) { wallet.setVersion(walletProto.getVersion()); } diff --git a/core/src/main/proto/wallet.proto b/core/src/main/proto/wallet.proto index ac925b10..68df4550 100644 --- a/core/src/main/proto/wallet.proto +++ b/core/src/main/proto/wallet.proto @@ -332,16 +332,6 @@ message Tag { required bytes data = 2; } -/** - * Data required to reconstruct TransactionSigner. - */ -message TransactionSigner { - // fully qualified class name of TransactionSigner implementation - required string class_name = 1; - // arbitrary data required for signer to function - optional bytes data = 2; -} - /** A bitcoin wallet */ message Wallet { /** @@ -395,8 +385,7 @@ message Wallet { repeated Tag tags = 16; - // transaction signers added to the wallet - repeated TransactionSigner transaction_signers = 17; + // (field number 17 was used by transaction_signers) // Next tag: 18 } diff --git a/core/src/test/java/org/bitcoinj/testing/NopTransactionSigner.java b/core/src/test/java/org/bitcoinj/testing/NopTransactionSigner.java index e5d016dd..0ea6bb39 100644 --- a/core/src/test/java/org/bitcoinj/testing/NopTransactionSigner.java +++ b/core/src/test/java/org/bitcoinj/testing/NopTransactionSigner.java @@ -34,17 +34,6 @@ public class NopTransactionSigner implements TransactionSigner { return isReady; } - @Override - public byte[] serialize() { - return isReady ? new byte[]{1} : new byte[]{0}; - } - - @Override - public void deserialize(byte[] data) { - if (data.length > 0) - isReady = data[0] == 1; - } - @Override public boolean signInputs(ProposedTransaction t, KeyBag keyBag) { return false; diff --git a/core/src/test/java/org/bitcoinj/wallet/WalletTest.java b/core/src/test/java/org/bitcoinj/wallet/WalletTest.java index 1b27fa17..c21c1503 100644 --- a/core/src/test/java/org/bitcoinj/wallet/WalletTest.java +++ b/core/src/test/java/org/bitcoinj/wallet/WalletTest.java @@ -42,7 +42,6 @@ import org.bitcoinj.script.Script; import org.bitcoinj.script.ScriptBuilder; import org.bitcoinj.script.ScriptChunk; import org.bitcoinj.script.ScriptPattern; -import org.bitcoinj.signers.StatelessTransactionSigner; import org.bitcoinj.signers.TransactionSigner; import org.bitcoinj.store.BlockStoreException; import org.bitcoinj.store.MemoryBlockStore; @@ -3319,16 +3318,6 @@ public class WalletTest extends TestWithWallet { wallet.addTransactionSigner(new NopTransactionSigner(false)); } - @Test - public void transactionSignersShouldBeSerializedAlongWithWallet() throws Exception { - TransactionSigner signer = new NopTransactionSigner(true); - wallet.addTransactionSigner(signer); - assertEquals(2, wallet.getTransactionSigners().size()); - wallet = roundTrip(wallet); - assertEquals(2, wallet.getTransactionSigners().size()); - assertTrue(wallet.getTransactionSigners().get(1).isReady()); - } - @Test public void watchingMarriedWallet() throws Exception { DeterministicKey watchKey = wallet.getWatchingKey(); @@ -3340,7 +3329,7 @@ public class WalletTest extends TestWithWallet { final DeterministicKeyChain keyChain = new DeterministicKeyChain(new SecureRandom()); DeterministicKey partnerKey = DeterministicKey.deserializeB58(null, keyChain.getWatchingKey().serializePubB58(UNITTEST), UNITTEST); - TransactionSigner signer = new StatelessTransactionSigner() { + TransactionSigner signer = new TransactionSigner() { @Override public boolean isReady() { return true;