Add a method to deserialize a DeterministicKey from a byte-array rather than from the base-58 encoding thereof.
Tests for new `DeterministicKey.deserialize()` method.
Remove undocumented and unused Transaction constructor. I found it misleading because it allows you to pass in a hash, but the hash can be changed without notice.
Fix Wallet.isTransactionRelevant() JavaDoc. There is no "includeDoubleSpending".
Fix Wallet.checkForDoubleSpendAgainstPending() JavaDoc. It returns a boolean.
Fix link in Wallet.notifyTransactionIsInBlock() JavaDoc.
Copy @throws from the JavaDoc of Wallet.completeTx() to all calling methods.
Remove unused CouldNotAdjustDownwards. Move JavaDoc to the real one.
Allow zero repetitions for CoinFormat.repeatOptionalDecimals(). Also add tests.
Fixed bitcoinj DoS. It could have been crashed by a malicious message.

Bitcoinj can be crashed with OutOfMemory by sending a message with
a large claimed var_str length or bytes array length.

The actual message size does not matter, it's the claimed length that matters.

This affects all bitcoinj-based apps that receive messages including Multibit, Android Bitcoin Wallet, Mycelium and Hive.

The fix limits accepted length to max message size (32 MB).

Signed-off-by: Mike Hearn <mike@plan99.net>
HD wallet: currentKey is now stable after serialization roundtrip

At the moment currentKeys map of KeyChainGroup is not restored after
deserialization and subsequent call to currentKey produces different
key then expected.
Proposed solution reconstructs currentKey map on deserialization using
stored numbers of issues keys. It is
not future-proof as it assumes only RECEIVE and CHANGE keys are being
used.
Fixed indentation in `DeterministicKey.java`.
Fixed a mis-indented line.
Replaced tab characters with spaces.
Add a method to deserialize a DeterministicKey from a byte-array rather than from the base-58 encoding thereof.
Update AUTHORS file with recent contributors
Add a missing lock on BasicKeyChain.getBloomFilter
Changed tabs to spaces -- for customary consistency with existing code
Fix failing deserialization of wallet with an empty HD chain

Error occurred when deserializing wallet if either internal or external
zero account key chain of this wallet has no keys issued
Fix failing WalletProtobufSerializerTest