Commit graph

2921 commits

Author SHA1 Message Date
Sean Gilligan
71c0e627d8 Utils: Remove unused mock sleep support. 2020-08-25 10:02:39 +02:00
Sean Gilligan
316096e83d Tests: Use @BeforeClass initializer for Utils.resetMocking(). 2020-08-25 09:39:18 +02:00
Andreas Schildbach
7c31dcbf99 Transaction, LocalTransactionSigner: Fix P2WPKH signing.
In commit bc46e8518d, those two occurences of scriptCode building have been missed.
2020-07-02 11:43:05 +02:00
Andreas Schildbach
ed845fd22b HDPath: Fix parsePath() not parsing private paths. 2020-06-30 16:17:37 +02:00
Andreas Schildbach
7a1ad0fac0 HDPath: Use Splitter in parsePath(). 2020-06-30 15:54:26 +02:00
Sean Gilligan
8b502dffa2 Coin: Improvements to three static method JavaDoc comments. 2020-06-28 11:54:43 +02:00
Andreas Schildbach
3df2e70653 Replace semi-deprecated Guava Sets.newHashSet() with Sets.newHashSet(). 2020-05-31 11:17:01 +02:00
Sean Gilligan
47d59cae89 Networks: Improve JavaDocs. 2020-05-28 12:25:50 +02:00
Sean Gilligan
7d83f23a84 Networks: Remove use of bounded wildcard in Networks.networks
The use of a bounded wildcard type in Networks.networks is
unnecessary and not a best practice.
2020-05-28 12:18:47 +02:00
Andreas Schildbach
dbc4cb1d4c Make all Loggers final. 2020-05-17 14:48:44 +02:00
Andreas Schildbach
f04401461b AbstractBitcoinNetParams: Move getBlockInflation() utility method from Block to here.
This also adds a test.
2020-05-17 14:44:38 +02:00
Andreas Schildbach
a981cdd0e9 NetworkParameters: Make reference to genesis block final. 2020-05-12 12:15:43 +02:00
Andreas Schildbach
3db1b651c9 AbstractBitcoinNetParams: Move assignment of interval and subsidyDecreaseBlockCount to here.
This also adds a test of isDifficultyTransitionPoint().
2020-05-12 12:11:37 +02:00
Andreas Schildbach
0fe5f99798 AbstractBitcoinNetParamsTest: Add test for isRewardHalvingPoint(). 2020-05-12 11:48:56 +02:00
Andreas Schildbach
142efee42f AbstractBitcoinNetParams: Rename parameter of isRewardHalvingPoint() and isDifficultyTransitionPoint() to make unexpected API more obvious. 2020-05-12 11:43:39 +02:00
Andreas Schildbach
fa16458c2f build.gradle: Update OkHttp to 3.12.11. 2020-05-09 22:54:55 +02:00
Bartosz Milczarek
f76e13c495 HDKeyDerivation: Fix incorrect HDPath for private key created by createMasterPrivateKey().
This also removes the static contructor variant with a path. Master private keys always have the same path.
2020-05-03 20:28:41 +02:00
Andreas Schildbach
e218cbb3f2 ChildKeyDerivationTest: Remove commented-out test for child numbers marger than max int. 2020-05-03 20:26:55 +02:00
Sean Gilligan
8dbe23c9db build.gradle: Properly declare API dependencies in bitcoinj-core
Properly declare Bouncy Castle, protobuf-java, and OkHttp as Gradle `api`
dependencies.
2020-04-23 00:07:38 +02:00
Mike Mancini
f48a8e1eff PostgresFullPrunedBlockStore: Enquote 'index' column name to make it compatible with CockroachDB. 2020-04-16 17:33:01 +02:00
Andreas Schildbach
1ce45ef679 Update Guava to 29.0-android. 2020-04-16 17:28:30 +02:00
Andreas Schildbach
f925c6313c Update BouncyCastle to 1.65. 2020-04-13 10:23:54 +02:00
Andreas Schildbach
80cd521cc3 PeerGroup: Increase precision of download speed calculation by a bit. 2020-04-08 18:24:01 +02:00
Andreas Schildbach
1bfd5a5b60 Wallet: Demote log level of script cannot be parsed in markKeysAsUsed(). 2020-03-13 21:17:11 +01:00
Andreas Schildbach
67034e68aa Transaction: Fix missing newline in toString(). 2020-03-13 21:11:20 +01:00
Andreas Schildbach
8018cb2786 Transaction: In toString() print outputs of coinbase. 2020-03-13 21:10:40 +01:00
Andreas Schildbach
0b7bdff6de Script: Make a ScriptException message more elaborate. 2020-03-13 18:40:05 +01:00
John L. Jegutanis
c6a096678d Transaction: Make zero inputs/outputs transactions parsable.
Switch to the bitcoin core reference segwit parsing algorithm because
some no-segwit transactions with no inputs are incorrectly parsed as
segwit.

This change is to be 100% compatible with the reference implementation
and to be compatible with the PSBT implementation.
2020-03-13 09:44:41 +01:00
Craig Raw
bc46e8518d Transaction: Use VarInt not opcode for script length in hashForWitnessSignature(). 2020-03-08 22:43:56 +01:00
Andreas Schildbach
049c2f177d PeerGroup: Add a method for gracefully dropping all connected peers. 2020-03-08 00:20:01 +01:00
Andreas Schildbach
b86f3e70ae PeerGroup: Only drop peers after broadcast if the transaction has no broadcast confirmations.
Otherwise, peers might be continuously dropped when transactions are re-sent.
2020-03-08 00:20:01 +01:00
Andreas Schildbach
a4f241ef29 TransactionBroadcast: Don't complete the broadcast future early in the single peer case.
If you want to rely on the future it's better to drop peers after broadcast.
2020-03-08 00:20:01 +01:00
Andreas Schildbach
a867a80b76 TransactionBroadcast: Add a short delay before broadcast peers are dropped. 2020-03-08 00:19:07 +01:00
Andreas Schildbach
3bab49d4b1 PeerGroup: Introduce a priority for connecting and being picked as a download peer. 2020-03-05 10:24:33 +01:00
Andreas Schildbach
70559a3140 DnsDiscovery: Implement service bit filtering. 2020-03-05 01:14:06 +01:00
Andreas Schildbach
7d9f109ee1 Peer: Deprecate a redundant constructor. 2020-03-04 17:34:11 +01:00
Andreas Schildbach
57f53f038c Peer: Prevent connecting to remote peers if required services are not supported. 2020-03-04 17:34:11 +01:00
Andreas Schildbach
c967fda4d6 HttpDiscovery: Improve logging in getPeers(). 2020-03-04 15:53:45 +01:00
Andreas Schildbach
e8adb94a95 VersionMessage: In toString(), print services in textual form too. 2020-03-04 15:18:53 +01:00
Andreas Schildbach
b4bd43d428 VersionMessage: Move toStringServices() from Peer to here. 2020-03-04 15:14:03 +01:00
Andreas Schildbach
16fda8ffcb TestNet3Params: Add testnet.httpseed.bitcoin.schildbach.de HTTP seed. 2020-03-04 14:47:04 +01:00
Andreas Schildbach
06bd0a841e PeerDiscovery: Change getPeers() return type from array to list.
This gets rid of a lot of array/list conversions.
2020-03-04 12:35:02 +01:00
Andreas Schildbach
a165fb1834 MultiplexingDiscovery: Allow serially queried seeds, too. 2020-03-04 11:49:11 +01:00
Andreas Schildbach
4e41a51657 MultiplexingDiscovery: Make shuffling of queried peers optional. 2020-03-04 11:26:07 +01:00
Sean Gilligan
e4c6b98536 Make Guava an api dependency using java-library
Use the Gradle java-library plugin to make Guava an `api`
dependency since Guava types are used in the bitcoinj public API.

This allows us to remove explicit dependencies on
Guava in the other modules.
2020-02-29 15:28:09 -08:00
Sean Gilligan
5ade97b5b3 build.gradle: Make the 'core' submodule use the 'java-library' plugin, rather than 'java'. 2020-02-29 21:01:13 +01:00
Andreas Schildbach
65c1b8ca25 DefaultCoinSelector: Require only one broadcast confirmation when spending our own change.
This will improve the user experience when connected to only one peer (e.g. a trusted peer).
2020-02-28 15:59:37 +01:00
Andreas Schildbach
fb2d983b54 PeerGroup, TransactionBroadcast: Drop any peer a transaction has been broadcast to.
These peers will not send us back useful broadcast confirmations.
2020-02-28 15:59:37 +01:00
Andreas Schildbach
afb376fc07 MessageWriteTarget: Return a future from writeBytes() that completes when all bytes have been written to the OS network buffer. 2020-02-28 15:59:37 +01:00
Andreas Schildbach
0a085fde6d Peer: If a bloom filter is set on a peer that doesn't support filtering, disconnect. 2020-02-27 23:32:50 +01:00