Mike Hearn
0f124b9ef4
Add some javadocs for Wallet.fromWatchingKey
2014-07-30 12:06:16 +02:00
eleetas
914752623d
close connection regardless of autocommit status and set conn to null
2014-07-30 11:25:55 +02:00
Mike Hearn
d681c72b30
Fix typo
2014-07-30 11:09:56 +02:00
Carlos Lopez-Camey
12e1c3f6bd
Improve javadocs, revert unnecessary unmodifiable list
2014-07-29 12:31:08 -06:00
Carlos Lopez-Camey
ce7520b0c8
Merge branch 'master' of https://github.com/bitcoinj/bitcoinj
2014-07-29 12:23:42 -06:00
Mike Hearn
6679f42f4a
Use a local Bitcoin node if one is detected instead of the p2p network. This allows any user of a bitcoinj based app to upgrade from SPV to full mode security by just installing and running Core on the same machine. Can be controlled with a new property on PeerGroup.
2014-07-29 18:13:52 +02:00
Mike Hearn
812a4f59c4
Re-allow Android devs to override the mnemonic code instance.
2014-07-28 16:13:12 +02:00
Carlos Lopez-Camey
40709495fc
Merge branch 'master' of github.com:kmels/bitcoinj
2014-07-27 13:19:06 -06:00
Carlos Lopez-Camey
e208430ab6
adds helper methods Transaction.getWalletOutputs, TransactionOutput.getAddressFromPubKey and TransactionOutput.getAddressFromScript.
2014-07-27 13:15:20 -06:00
Mike Hearn
539037ec0e
Switch to accelerated secp256k1: huge speed improvements.
2014-07-26 14:56:34 +02:00
Mike Hearn
6ae4662f93
Upgrade to Bouncy/Spongy Castle 1.51
2014-07-26 14:48:51 +02:00
Kosta Korenkov
55803b15ac
Fix Script.getNumberOfBytesRequiredToSpend for P2SH
...
It is a size of redeem script that should be taken into account, not a
size of scriptPubKey
2014-07-26 01:05:22 +04:00
freak
b2efb0ddc2
Close connections in PostgresFullPrunedBlockStore. same as: b6f61e8850
2014-07-23 16:10:45 +02:00
Jiri Peinlich
cb0d052e08
use List interface instead of LinkedList implementation
2014-07-23 16:08:36 +02:00
Andreas Schildbach
c6659bcf5f
BIP38: Fix test using supplementary characters in the passphrase.
2014-07-23 16:07:26 +02:00
Mike Hearn
4a45d4a27f
Print full backtrace when a wallet extension fails to load.
2014-07-23 15:40:14 +02:00
Mike Hearn
afb732c528
Restore new tx purposes correctly.
2014-07-22 16:11:29 +02:00
Mike Hearn
626117bc29
Add logging for output disconnection and reconnection.
2014-07-22 16:04:26 +02:00
Mike Hearn
92544e9d47
Add ASSURANCE_CONTRACT_CLAIM/PLEDGE/STUB to the purpose field.
2014-07-21 16:42:20 +02:00
Mike Hearn
a5e4d046df
Adjust the behaviour of the current key mechanism to be more like what gui wallets really need.
2014-07-15 20:55:23 +02:00
Mike Hearn
96ee76e506
Update bip38 test3 ignore message again now the problem is better understood.
2014-07-15 20:52:08 +02:00
Mike Hearn
e143b2b4cb
Re-organise the layout of the Wallet file and introduce IntelliJ compatible editor regions, so parts of the code can be folded by feature area. This also makes it easier to understand what exactly the wallet does and why it's so huge.
2014-07-15 17:14:59 +02:00
Mike Hearn
b6c1e385c0
Update wallet todo list.
2014-07-15 16:31:03 +02:00
Giannis Dzegoutanis
5e1942f3f0
Made some methods public in BasicKeyChain. Fixes in deterministic key generation
2014-07-15 16:24:53 +02:00
Andreas Schildbach
72b7929523
Getter for addresses watched by wallet.
2014-07-15 14:42:20 +02:00
Andreas Schildbach
15060572a9
Fix some exception messages in BIP38PrivateKey.
2014-07-15 14:06:25 +02:00
Mike Hearn
0addfd63ec
Fix reason why BIP38 test vector is failing, Java strings can contain null characters just fine.
2014-07-15 14:05:04 +02:00
Mike Hearn
bab16650f9
HD Wallets: fix key lookahead and auto-advance so it works as intended.
...
Previously the codepath that was supposed to mark keys as used didn't work, and the lookahead calculation wasn't quite right. Now the current key advances correctly when an inbound tx is found that spends to it, including pending transactions. Additionally the lookahead zone now has the threshold zone after it, not inside it, meaning that if you request a lookahead size of 100 keys you'll actually always have at least 100 keys, never less.
2014-07-15 13:41:45 +02:00
Aaron Voisine
89b4b78dc4
fixed MAX_STANDARD_TX_SIZE to match bitcoin core
...
in bitcoin core MAX_STANDARD_TX_SIZE is 100000, not 102400
https://github.com/bitcoin/bitcoin/blob/master/src/main.h#L43
2014-07-14 16:19:53 -07:00
Andreas Schildbach
8068230042
Remove superfluous AddressFormatException from BIP38PrivateKey.decrypt().
2014-07-13 22:10:28 +02:00
Andreas Schildbach
aaf349ea6a
Fix Java7'ism.
2014-07-13 22:10:11 +02:00
Mike Hearn
78383f98f4
WalletAppKit: support for restoring a wallet from a seed. The old wallet is moved out of the way.
2014-07-11 00:26:37 +02:00
Mike Hearn
68bb476430
Clear an NPE in wallet printing that could occur when printing a wallet with private keys included.
2014-07-10 21:58:27 +02:00
Mike Hearn
8e6e2256bc
WalletAppKit/Template: Cleaner way to check if the app is already running. Backport from Lighthouse.
2014-07-10 21:44:38 +02:00
Mike Hearn
13b2f2104c
Less debug spam when sending bloom filters to keep FP rate low.
2014-07-10 21:38:32 +02:00
Mike Hearn
46d4c3487e
Generalise the crypto DRM workaround and use from the BIP38 codepath too.
2014-07-10 15:33:47 +02:00
Mike Hearn
682bd035fc
Fix a couple of static method via instance warnings.
2014-07-10 15:33:10 +02:00
Andreas Schildbach
a750a14edd
Implement BIP38 password encrypted private keys, decryption only. Contains all the test vectors from the spec minus one that is incompatible to Java.
2014-07-10 14:57:25 +02:00
Justas
03652298e1
Dead transaction does not contain confidence depth and should not fail when sorting.
2014-07-10 14:56:47 +02:00
Giannis Dzegoutanis
9446b1b625
added test for HDUtils.formatPath and changed HDUtils.parsePath to handle paths that start with the letter M
2014-07-10 14:56:10 +02:00
Devrandom
fec6cbc7df
Remove support for mnemonic-less keychains
2014-07-10 14:53:42 +02:00
Devrandom
2fae12064c
Fix BIP39 implementation
2014-07-10 14:53:42 +02:00
Devrandom
3420bdf8ac
Add cobertura support
2014-07-10 14:53:42 +02:00
Mike Hearn
483fd8a908
Expose TransactionBroadcast.random
2014-07-09 13:07:56 +02:00
Andreas Schildbach
c7fe06d4c7
Fix java package of ExponentialBackoffTest.
2014-07-08 13:54:05 +02:00
Mike Hearn
f7070df152
Allow TestWithNetworkConnections subclasses to override the wallet with their own.
2014-07-07 16:18:51 +02:00
Andreas Schildbach
afcc7e3f13
Coin.toFriendlyFormat() includes denomination (BTC). This saves a lot of string concatenation code.
2014-07-05 21:03:51 +02:00
Andreas Schildbach
794263436f
Add ability to prefix or postfix currency codes when formatting coins. Defaults are BTC, mBTC and µBTC.
2014-07-05 21:03:51 +02:00
Andreas Schildbach
d22ee01f8a
Fix ECKey.equals() and toString() to also include encryptedPrivateKey. Convert to Guava and consolidate at bottom of class.
2014-07-05 18:14:16 +02:00
Mike Hearn
bb40036453
Fix a payment protocol unit test that had a forgotten @Test annotation and thus didn't actually work.
2014-07-05 17:27:22 +02:00
Andreas Schildbach
5580fd9d92
Make DumpedPrivateKey serializable, so that it can be used to pass around keys between loosely coupled application components.
2014-07-05 15:14:22 +02:00
Andreas Schildbach
48d748d2be
Auto-upgrade to HD when fetching a change address.
2014-07-04 16:24:23 +02:00
Devrandom
bbe983f38a
relax assumption that HD seeds are 128 bits
...
cleanup
2014-07-03 14:07:05 -07:00
Devrandom
39d8da6764
relax assumption that HD seeds are 128 bits
2014-07-02 14:39:32 -07:00
Mike Hearn
009b04551a
Update the documentation for Transaction.hashForSignature to note a quirk of P2SH outputs.
2014-06-28 19:01:29 +02:00
Oscar Guindzberg
1d5058626a
Peer.blockChainDownloadLocked() - fix getblocks message documentation
2014-06-28 14:55:21 +02:00
Oscar Guindzberg
d1c3be126d
PeerGroup.startBlockChainDownload(): add the supplied listener to the
...
downloadingPeer
2014-06-28 14:49:21 +02:00
Kosta Korenkov
12bfa5f5ee
Married wallets: extending fee calculation
2014-06-28 14:36:05 +02:00
Giannis Dzegoutanis
fd0c6a27f4
added a helper function to parse human readable deterministic paths
2014-06-28 14:35:48 +02:00
Mike Hearn
dbd6004f1b
HD Wallets: redo key rotation, it's no longer automatic and expects the wallet app to poll for maintenance transactions. Deterministic keys now inherit the creation time of their parent.
2014-06-26 16:21:23 +02:00
Ximo Guanter
b6f61e8850
Close connections in H2FullPrunedBlockStore
2014-06-26 15:25:47 +02:00
troggy
736c4c9907
Married HD wallets: Bloom filter adjustments
...
Pull request: #115
Based on design notes:
https://groups.google.com/forum/#!msg/bitcoinj/Uxl-z40OLuQ/e2m4mEWR6gMJ
2014-06-26 14:45:03 +02:00
Kosta Korenkov
2edf978af4
Rename addFollowingAccounts -> addFollowingAccountKeys
2014-06-25 01:18:53 +04:00
Mike Hearn
32360fea8d
Give regtest mode its own ID so wallets don't get mixed up between regtest and testnet.
2014-06-24 18:37:19 +02:00
Mike Hearn
09286a932c
Remove some superfluous new String() calls around HEX.encode, now it has a sane API.
2014-06-24 14:11:09 +02:00
Mike Hearn
704575df1c
Add a forgotten @Test annotation and fix the expected exception type.
2014-06-23 16:18:46 +02:00
Mike Hearn
11d8d57a1a
Wallet: remove a few dead stores identified via static analysis.
2014-06-23 15:39:33 +02:00
Mike Hearn
f2f64d1e80
Wallet: move setTag to the extensions section of the file.
2014-06-23 15:37:52 +02:00
Andreas Schildbach
e9c777c9a6
Explain why a transaction output value is kept as a long rather than Coin.
2014-06-23 15:23:08 +02:00
troggy
e192f9030c
Prevent marriage of used keychain
...
addFollowingAccounts method now has the check that active keychain has no keys in use. This would prevent divergence of derivation paths for followed and following keys. In future this behaviour should be replaced with some sort of key rotation.
2014-06-23 14:53:09 +02:00
troggy
9dbc507fca
Improvement of getFollowingKeys
...
First of all, freshAddress was actually asking for a fresh key twice for non-married keychain. That was fixed by moving first call (needed only for married chain) inside the getFollowingKeys. As the latter now started to return all keys in a marriage and not only following ones, it was renamed to freshMarriedKeys.
Having all the keys in one block allows to do simple derivation path check to make sure keychains are in sync (as per @devrandom suggestion)
2014-06-23 14:53:09 +02:00
troggy
06755aefde
Married HD wallets: introduce shadow keychain notion
...
Pull request: #99
Based on design notes:
https://groups.google.com/d/msg/bitcoinj/Uxl-z40OLuQ/e2m4mEWR6gMJ
2014-06-23 14:53:09 +02:00
Adam Mackler
b7cb4d8c47
TransactionOutput
class private value
member changed to type long
from Coin
.
2014-06-23 13:49:08 +02:00
Adam Mackler
e8048cb672
Changes to the Coin
class: some convenience comparison operators;
...
`parseCoin()` now accepts negative values; the check for an excessive
value is moved to the constructor from `parseCoin()` and uses
`checkArgument()`; some `Coin`-type constants broken out into one
`long` one `Coin` in order to be usable in the constructor.
Corresponding tests included. The `BitcoinURI` class constructor
throws exception on parsing a negative amount, which is needed now
that `Coin` class accepts negative amounts.
2014-06-23 13:49:08 +02:00
Devrandom
e2ebe69aae
Fix key derivation
2014-06-22 12:47:27 -07:00
Piotr Włodarek
3dfaf54e28
Fixed VarInt serialization bug for the 0xffffffff number. Fixed VarInt sizeOf bug for the 0xffffffff number and added tests for VarInt edge cases.
...
The 4294967295 number (0xffffffff) was incorrectly serialized because the UnsignedInteger.MAX_VALUE.longValue() helper returned 4294967295 instead of expected 4294967296.
The VarInt.sizeOf() incorrectly returned 9 instead of 5 for the 4294967295 (0xffffffff) number.
See https://en.bitcoin.it/wiki/Protocol_specification#Variable_length_integer
2014-06-20 16:35:33 +02:00
Andreas Schildbach
ae3acdfefd
Remove undefined arithmetics method.
2014-06-20 14:57:55 +02:00
Mike Hearn
292a180926
Full mode test generator: use OP_NOP in inputs instead of OP_TRUE to avoid unclean stacks after execution. Additionally, reduce the verbosity of the code somewhat. There's still plenty that could be done to make the code cleaner but .... not today.
2014-06-18 12:21:54 +02:00
Mike Hearn
523b3018cb
HD Wallets: do auto upgrade when possible on all inbound codepaths, and make DeterministicUpgradeRequiresPassword extend RuntimeException.
2014-06-17 16:20:38 +02:00
Andreas Schildbach
7f68c3472f
Add SendRequest.toString().
2014-06-17 12:47:34 +02:00
Andreas Schildbach
f86463bab3
Harmonize how BTC values are printed to the log by Wallet.completeTx(). Also, print the value that is emptied.
2014-06-17 12:47:34 +02:00
Andreas Schildbach
f4d24bffb1
Add SendRequest.signInputs flag to allow skipping the signing. It takes a long time and is not needed for when you only want to determine the fee.
2014-06-17 12:47:34 +02:00
Andreas Schildbach
9d1b15612a
Fix a bug because the SendRequest.fee field is written to 0 when SendRequest.emptyWallet is used. Missing tests for this case are added.
...
Use SendRequest.tx.getFee() to get the fee, rather than reading SendRequest.fee.
2014-06-17 12:47:34 +02:00
Mike Hearn
443d556909
HD Wallets: implement auto upgrade behaviour and refresh the design doc.
2014-06-13 14:11:51 +02:00
Mike Hearn
57105f52e6
Fix redundant expression in MnemonicCode.
2014-06-12 20:26:30 +02:00
Andreas Schildbach
7a689fce3d
Add Alexykot's test net DNS seed. Tested using Bitcoin Wallet, works fine.
2014-06-12 12:36:34 +02:00
Oscar Guindzberg
bd2536048a
Make Transaction comparators compatible with equals
2014-06-12 12:17:24 +02:00
troggy
b40b3a5f9d
Fix failing WalletProtobufSerializerTest
2014-06-12 11:25:53 +02:00
troggy
5840c8a66a
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
2014-06-12 11:23:17 +02:00
Mike Hearn
b5911c1ee4
Add a missing lock on BasicKeyChain.getBloomFilter
2014-06-11 16:49:35 +02:00
Adam Mackler
40bc6f4c46
Add a method to deserialize a DeterministicKey from a byte-array rather than from the base-58 encoding thereof.
2014-06-11 16:20:26 +02:00
troggy
2a8454a85c
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.
2014-06-11 11:45:15 +02:00
Piotr Włodarek
9f25af54ab
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>
2014-06-10 18:50:19 +02:00
Andreas Schildbach
9befd32200
Allow zero repetitions for CoinFormat.repeatOptionalDecimals(). Also add tests.
2014-06-10 16:04:45 +02:00
Andreas Schildbach
fc923f8473
Remove unused CouldNotAdjustDownwards. Move JavaDoc to the real one.
2014-06-10 12:06:02 +02:00
Andreas Schildbach
fb4aab3edc
Copy @throws from the JavaDoc of Wallet.completeTx() to all calling methods.
2014-06-10 12:06:02 +02:00
Andreas Schildbach
70ce114d8e
Fix link in Wallet.notifyTransactionIsInBlock() JavaDoc.
2014-06-10 12:04:20 +02:00
Andreas Schildbach
b9dd0a5417
Fix Wallet.checkForDoubleSpendAgainstPending() JavaDoc. It returns a boolean.
2014-06-10 12:04:20 +02:00
Andreas Schildbach
ffaf18fa94
Fix Wallet.isTransactionRelevant() JavaDoc. There is no "includeDoubleSpending".
2014-06-10 12:04:20 +02:00
Andreas Schildbach
8fde2de992
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.
2014-06-09 12:59:51 +02:00