Mike Hearn
42bfbb9b1c
Add some Javadocs and clean up the watching key API a tiny bit. Default creation time is now BIP32 standardisation time.
2014-05-29 20:11:17 +02:00
Harald Hoyer
9ff7a91c8c
HD Wallets: let you specify the creation time for a WatchingKey
...
If the creation time for a WatchingKey is known, it should be taken into
account and stored.
Signed-off-by: Harald Hoyer <harald@harald-hoyer.de>
2014-05-29 20:11:17 +02:00
Mike Hearn
960b9d686e
KeyChainGroup: defensive copy of the chains list in the c'tor
2014-05-29 20:11:16 +02:00
Mike Hearn
1628bf6329
WalletAppKit: set max connections to size of set peer addresses so localhost broadcast works.
2014-05-29 20:11:16 +02:00
Mike Hearn
e4af9a673f
Tweaks to allow wallet subclasses to add their own extensions in their c'tors.
2014-05-29 20:11:16 +02:00
Mike Hearn
748ff6fc8e
WalletAppKit: allow control of wallet construction.
2014-05-29 20:11:16 +02:00
Mike Hearn
4504633fd5
ECKey.recoverFromSignature: respect the compressed flag again.
2014-05-29 20:11:16 +02:00
Mike Hearn
d2837e8ea9
Wallet: allow customization of the wallet type that is deserialized. Makes subclassing Wallet more useful.
2014-05-29 20:11:16 +02:00
Mike Hearn
b374ba5108
HDW: Fix a decryption bug where we were (again) accidentally relying on padding checks to detect wrong passwords. Check the watching key derives correctly to fix.
2014-05-29 20:11:16 +02:00
Mike Hearn
24e41f01c6
Refactorings.
...
Make a convenience ECKey.decrypt(KeyParameter) that doesn't require the keycrypter to be manually specified, as often (always?) the key knows it already.
Introduce a KeyBag interface that just contains findKeyBy* methods, then make Wallet implement it and change Transaction.signInputs to use it. Take out the encrypted-key specific stuff here: Transaction now requires unencrypted keys. Create a DecryptingKeyBag class that just forwards calls to Wallet and decrypts the returned keys. This decouples the signing code from Wallet a bit.
Should be all API compatible.
2014-05-29 20:11:16 +02:00
Mike Hearn
9ca891c709
Wallet: restrict visibility of the transactions map a bit and tag the others as visible for testing. This should get fixed up in a future refactor.
2014-05-29 20:11:16 +02:00
Mike Hearn
1e4f930b70
Wallet: set lookahead size to 5 when using unit test params instead of scattering calls all over the test code.
2014-05-29 20:11:15 +02:00
Mike Hearn
2be8bc1901
ECKey: make compress/decompressPoint use non-deprecated methods and add a note that BC's tracking of compression state is going to go away.
2014-05-29 20:11:15 +02:00
Mike Hearn
a807994b9a
Bump wallet version and add missing check (!) to detect wallets from the future. The absence/incompleteness of this feature had not been noticed before, and it means that old apps will fail to read HD wallets due to the new key enum value rather than a more sensible error (but there's still no chance of an old app accepting an HD wallet, so it should still be safe).
2014-05-29 20:11:15 +02:00
Mike Hearn
c8850c94ae
Bugfix: don't throw away deserialized wallet in WalletAppKit
2014-05-29 20:11:15 +02:00
Mike Hearn
ef95eb3b79
Bugfix: don't crash if getEarliestKeyTime is called on a DKC that wasn't initialized with a seed (i.e. a watching chain)
2014-05-29 20:11:15 +02:00
Mike Hearn
704339fdfb
Bugfix: copy event listeners to new HD chains when created.
2014-05-29 20:11:15 +02:00
Mike Hearn
2ce5c16815
Switch TestWithWallet to be using an HD key by default.
2014-05-29 20:11:15 +02:00
Mike Hearn
d9fa9e4b68
Fix a casting bug in WalletAppKit. Thanks to Kalpesh Parmar.
2014-05-29 20:11:14 +02:00
Mike Hearn
4df59adeb9
Use setMockClock instead of rollMockClock(0) to resolve flaky tests.
2014-05-29 20:11:14 +02:00
Mike Hearn
51b71a4363
HD Wallets: support watching wallets in Wallet and wallet-tool.
...
Also, respect includePrivateKeys flag for the seed in wallet.toString again.
2014-05-29 20:11:14 +02:00
Mike Hearn
c7f7fd29e0
HD Wallets: add a REFUND key purpose and map it to the same branch as RECEIVE_FUNDS for now.
2014-05-29 20:11:14 +02:00
Mike Hearn
dbf504faa0
HD Wallets: add getImportedKeys() method that returns just the basic key chain.
2014-05-29 20:11:14 +02:00
Mike Hearn
534252de49
HD Wallets: bugfix, ensure we don't store private keys that can be rederived.
2014-05-29 20:11:14 +02:00
Mike Hearn
3f9791d86a
HD Wallets: print seed birthday in wallet dump too
2014-05-29 20:11:14 +02:00
Mike Hearn
a1fcca3883
WalletTool: allow creation of a wallet from a given [word] seed.
2014-05-29 20:11:14 +02:00
Mike Hearn
1ff5d05200
HD wallets: add a Wallet.getKeyChainSeed method.
2014-05-29 20:11:13 +02:00
Mike Hearn
5638387d3a
HD wallets alpha preview
2014-05-29 20:11:13 +02:00
Andreas Schildbach
780be05260
Save value of inputs when completing transactions and persist it to the wallet protobuf. Determine the fee of a transaction in case we have all the values.
2014-05-29 20:06:22 +02:00
Andreas Schildbach
03e8934576
Update note about regenerating protobuf bindings.
2014-05-29 20:06:22 +02:00
Mike Hearn
b36bb5bff0
Bloom: don't requery mempool if the filter is only being refreshed to force down FP rate.
2014-05-28 23:09:40 +02:00
Mike Hearn
ecbaaf01d6
Fix scrypt library hash.
2014-05-28 19:19:32 +02:00
Mike Hearn
e95fef3504
Bloom bugfix: track false positives in blocks including when the tx was broadcast within the session, and don't print an error from the wallet in this case. Should have no impact beyond more accurate FP rate calculations.
2014-05-28 18:44:43 +02:00
Andreas Schildbach
344be21821
Fix 'shortest possible pushdata' logic for transaction inputs. Also add a testcase.
2014-05-28 15:43:52 +02:00
Andreas Schildbach
8ca8075a7b
Convenience ScriptBuilder.addChunk() method can add arbitrary script chunks.
2014-05-28 15:36:53 +02:00
Andreas Schildbach
9fe8e8ee2b
Teach TransactionOutput.toString() to print send-to-pubkey and send-to-multisig types.
2014-05-27 14:50:31 +02:00
Jiri Peinlich
c37423a737
renaming to nonexisting file on Windows
...
The method fails in case the file does not exists before renaming. canonical.delete() returns false in that case and the method throws an exception.
2014-05-27 13:19:16 +02:00
Andreas Schildbach
ccc3dbd339
Implement standard checks for BIP62 shortest possible data push rules. Also fix ScriptBuilder so it doesn't build longer than necessary data pushes any more.
2014-05-27 11:49:14 +02:00
Andreas Schildbach
7b24a72e45
Implement ScriptChunk.toString() by extracting relevant parts from Script.toString().
2014-05-27 10:03:56 +02:00
Piotr Włodarek
9c8d2cc600
Renamed proofOfWorkLimit to maxTarget along with get/set and minor refactorings.
...
* proofOfWorkLimit renamed to maxTarget to get it more inline with commonly used terminology (wiki, etc.)
* some misleading local variables renamed from 'difficulty' to 'target'
2014-05-25 11:44:52 +02:00
Piotr Włodarek
c08c68fc5e
Dealt with several compiler notices by verifying and then fixing or suppressing. Reduces compilation output noise.
2014-05-25 11:43:36 +02:00
Piotr Włodarek
cc6090af88
Fixed type references in javadoc to avoid IntelliJ error reports on rebuild.
2014-05-25 11:43:01 +02:00
Piotr Włodarek
b32d0cce17
Improved consistency and formal correctness of all existing .equals methods to meet IntelliJ's convention.
...
* added null handling so equals methods return false for null argument
* replaced instanceof with getClass to force strict type equality
* added @Override for equals and hashCode where missing
* minor refactorings in equals methods to simplify and improve consistency
* added missing hashCode for ListMessage based on equals definition
Things that HAVE NOT changed:
* set of attributes used for equality checking
* hashCode calculation (except for added hashCode in ListMessage)
* correlation between equals and hashCode
* no new equals methods added
2014-05-22 20:50:42 +02:00
Andreas Schildbach
ff8d76cf7e
Include PUSHDATA opcode in Script.toString(). Also, smallNums are printed in their decoded form.
2014-05-22 13:03:32 +02:00
Andreas Schildbach
c236ae418f
Keep opcode in ScriptChunk representation of scripts. The goal is to know how data was pushed and be able to apply malleability rules. All unit-tests pass.
2014-05-22 13:03:32 +02:00
Mike Hearn
b47995ed97
Wallet: throw more appropriate exception types during completion.
...
Resolves issue 560.
2014-05-21 19:38:12 +02:00
Mike Hearn
028a1cca69
Upgrade scrypt library.
2014-05-21 19:25:38 +02:00
Mike Hearn
a07a810ed8
Don't crash if there's no logging handler installed.
2014-05-21 19:25:29 +02:00
Mike Hearn
467124a2b3
Wallet: keep risk dropped txns around in RAM and don't miss them when a Bloom filtered block includes them. Resolves issue 545.
2014-05-21 16:50:17 +02:00
Mike Hearn
ed2948cef1
Correctness fix: compare nBits directly not in BigInteger form as nBits has multiple non-canonical encodings.
2014-05-21 15:09:52 +02:00