Commit Graph

1346 Commits

Author SHA1 Message Date
Mike Hearn
7ec75b3483 Fix typo in comment. 2014-08-13 16:11:13 +02:00
Mike Hearn
014438b456 Take out the redundant SigHashType parameter to wallet.signTransaction.
In the end the API evolved in such a way that changing this param isn't that useful. To do contracts you tend to work with transactions directly, and a Wallet subclass that needs to do special signing by default can override the signing engine used.
2014-08-13 14:57:43 +02:00
Mike Hearn
c1e79b442c Fix some thread safety issues with Bloom filtering.
This hasn't shown up in any bug reports, I just spotted them through reading the code.
2014-08-13 14:55:54 +02:00
Mike Hearn
e1f270f726 Revert "PeerFilterProvider methods are called with the lock already held, so just assert on that instead of locking again."
This reverts commit e888807dfd.
2014-08-13 14:47:15 +02:00
Kosta Korenkov
1ba5909687 Add method to derive new keys when queried by path
Added DeterministicKeyChain.getKeyByPath(List, boolean) allowing to
specify whether to create non-existing key or not
2014-08-13 11:09:36 +02:00
Mike Hearn
e888807dfd PeerFilterProvider methods are called with the lock already held, so just assert on that instead of locking again. 2014-08-12 18:32:51 +02:00
Kosta Korenkov
f6b2fa5a2b Pluggable signers: simple local KeyBag signer
Introduced pluggable signers notion. Instances of
TransactionSigner could be added into the wallet, so that they subsequently
applied to transaction to complete it.
Existing signing code (Transaction.signInputs) was refactored into
LocalTransactionSigner, which is always implicitly added to any wallet.

Related pull request: #157
2014-08-12 17:58:29 +02:00
Mike Hearn
4a9295ccde Fix duplicateDetached 2014-08-12 16:32:52 +02:00
Mike Hearn
a30cdfed0c Eliminate the duplicated parentTransaction field from TransactionInput/Output. 2014-08-12 15:44:59 +02:00
Matt Corallo
20447bc340 Fix error when using Block.verify() after the Block constructor
...which takes all the elements of the block as paramters.
2014-08-11 15:27:48 -07:00
Mike Hearn
5220fb5141 Hide some fields in PartialMerkleTree 2014-08-11 19:21:25 +02:00
Andreas Schildbach
19b73600c8 Remove comment. I could not find any divergence in the getResourceAsStream error handling. 2014-08-11 18:45:35 +02:00
ollekullberg
fe91dc9110 Payment channel extension should be able to be initialized in two steps:
* A constructor that only takes the wallet as an argument

* A setTransactionBroadcaster() which should be called when the Bitcoin network is ready

Motivation: Some wallets (MultiBitHD) does not use WalletAppKit, and starts with reading the wallet before initializing the bitcoin network.
Now these wallets can create the wallet (and the wallet file is read), and call the setter after the bitcoin network is up.
2014-08-11 18:43:18 +02:00
Mike Hearn
90492b61f7 Change printed format of the wallet to be less verbose and make wallet-tool not dump privkeys by default. 2014-08-11 18:26:23 +02:00
Mike Hearn
e8ba287029 HD wallets: experimental change to not trigger full lookahead when deriving keys. This allows a savvy app to get keys/addresses at startup fast, if they do so before starting up the peergroup (which wants all keys in the zone so it can calculate a Bloom filter). May be reverted if it causes trouble. 2014-08-11 17:53:33 +02:00
Mike Hearn
d824666c2f HD Wallets: fix a lookahead bug.
We were not previously triggering lookahead before calculating a Bloom filter, which means we might have missed transactions in some edge cases. Add a test to catch this and then fix up various unit tests to have fewer magic numbers and be more robust to changes.
2014-08-11 16:37:31 +02:00
Mike Hearn
54a543bf77 HDW: Fix the case of wallet upgrades where the aesKey is provided. 2014-08-11 15:03:07 +02:00
Mike Hearn
00a276f906 HDW: Simplify an unusual for loop in DKC 2014-08-11 14:17:21 +02:00
Mike Hearn
53aa33c2e8 HDW: Clear some static analysis warnings from DKC. 2014-08-11 14:15:06 +02:00
Kosta Korenkov
0d2fb93536 Introduce MultisigKeyBag to expose P2SH redeem data
For married wallets KeyChainGroup now keeps redeem scripts together with keys
2014-08-11 11:34:20 +02:00
Devrandom
588e314b06 Fix failed precondition in maybeLookaheadScripts 2014-08-11 11:22:06 +02:00
Devrandom
2d3bfc07c7 Fix issue with deserialization and currentAddresses 2014-08-11 11:22:06 +02:00
Andreas Schildbach
a3ced5fe5d Consistently use version 2.8 of maven-dependency-plugin. 2014-08-11 11:18:09 +02:00
Andreas Schildbach
165b0cfbf7 Consistently use version 2.6 of cobertura-maven-plugin. 2014-08-11 11:18:09 +02:00
Andreas Schildbach
fd4ec21dcc Consistently use version 2.1.2 of maven-source-plugin. 2014-08-11 11:18:09 +02:00
Andreas Schildbach
415e43885c Consistently use version 2.3 of maven-shade-plugin. 2014-08-11 11:18:09 +02:00
Andreas Schildbach
8e24ee865f Update to and consistently use version 2.5 of maven-jar-plugin. 2014-08-11 11:18:09 +02:00
Andreas Schildbach
80e2d46ed0 Update to and consistently use version 2.5.1 of maven-install-plugin. 2014-08-11 11:18:08 +02:00
Andreas Schildbach
43a6a60bea Consistently use version 1.2 of maven-enforcer-plugin. 2014-08-11 11:18:08 +02:00
Andreas Schildbach
2324edd03e Consistently use version 3.1 of maven-compiler-plugin. 2014-08-11 11:18:08 +02:00
Andreas Schildbach
549f228d29 Assume wordlist will be 2048 words in size. 2014-08-06 19:10:14 +02:00
Andreas Schildbach
761b06fb8a Fix handling of mnemonic class resource not found. It was falsely assumed that Class.getResourceAsStream() would throw. 2014-08-06 19:10:14 +02:00
Mike Hearn
32a5ed3f21 Don't roll back progress measurement when download peer changes in DownloadListener. 2014-08-06 19:04:28 +02:00
Mike Hearn
249d547ee3 Check for loading wallet of wrong params in deserializer (in another way so people who use the API at a lower level also get checked) 2014-08-06 18:21:31 +02:00
Mike Hearn
925338b4fc Bump Tor timeout to 60 seconds. 2014-08-06 18:21:08 +02:00
Mike Hearn
4ae6349f35 Fix for Android ART vs Dalvik difference. 2014-08-06 16:40:13 +02:00
Mike Hearn
e41e0c4a1d Allow usage of signMessage for deterministic keys. 2014-08-06 16:26:48 +02:00
Mike Hearn
047c5ccd03 WalletAppKit: configure Orchid/Tor to use the same directory as bitcoinj uses. 2014-08-06 16:12:41 +02:00
Mike Hearn
96e4774e79 Add support for fetching UTXOs from a peer using the getutxo message. 2014-08-06 13:43:51 +02:00
Mike Hearn
bca2f2abac Make Wallet.queue* methods protected so subclasses can call them. 2014-08-06 13:43:31 +02:00
Kosta Korenkov
5cfdca1c98 Add ability to create scriptSigs with empty signatures
For partial scriptSig OP_0 is used as a signature placeholder:
Pay-to-address: OP_0 [pubkey]
Pay-to-pubkey: OP_0
P2SH with 2-of-3 CHECKMULTISIG: OP_0 OP_0 OP_0 [redeem script]
2014-08-05 20:49:40 +02:00
Martin Zachrison
bc97cf977f Handle creation of non existing parent directories. Improve exception message. 2014-08-05 17:36:04 +02:00
Mike Hearn
0a7fdf35ba Add some junk to the POM to create a dedicated bundled JAR for the pull tester. 2014-08-05 16:48:58 +02:00
Andreas Schildbach
918665a6e4 Work done can never be negative. Assert for that fact, because we've seen negative values in the wild. 2014-08-05 12:34:57 +02:00
Kosta Korenkov
fa3037a4b2 Fix KeyChainGroup.toString double keys output 2014-08-05 12:34:18 +02:00
Andreas Schildbach
299879c418 Allow fallback URLs for BIP72 payment request fetching. Adds unit tests. 2014-08-04 14:30:59 +02:00
Mike Hearn
e03f184a1f PaymentProtocol: fix seconds vs milliseconds confusion. Thanks to Adam Mackler for the bug report. 2014-08-03 21:06:15 +02:00
cyberzac
eff9ac2ecc Support for bundling an optional info Protobuf ByteString with a PaymentAck message 2014-08-03 21:02:40 +02:00
Mike Hearn
f1dd47443f More hashes for the dependency verifier, also request version divergence detection. Bump JSR350 jar version. 2014-08-03 20:52:22 +02:00
Mike Hearn
fe6f5aff01 Payment channels: ByteString.EMPTY -> null 2014-07-31 16:18:48 +02:00