Commit Graph

3018 Commits

Author SHA1 Message Date
Sean Gilligan
ea12fe1a0d PaymentSessionTest.MockPaymentSession: don’t return a null Future
Use `ListenableCompletableFuture(null)` instead.
2022-03-26 10:59:00 +01:00
Sean Gilligan
091fdd9791 PaymentSession: proper future-style error handling for sendPayment()
This is a breaking change, but the existing code is not using futures properly and
fixing this is worth the breakage.

* Instead of returning `null`, return a failed future
* Instead of throwing errors, return failed futures
2022-03-25 19:33:08 +01:00
Sean Gilligan
8f3ac79030 Wallet: remove deprecated methods
Remove all deprecated methods except one deprecated constructor that is
used in a unit test and marked as @VisibleForTesting.
2022-03-25 11:11:52 +01:00
Andreas Schildbach
4e8a19997d KeyChainGroup: remove upgrade path from basic to deterministic 2022-03-24 13:13:08 +01:00
Sean Gilligan
20aee84773 PaymentSession: properly document return value of getPayment() 2022-03-23 00:14:52 +01:00
Sean Gilligan
26da62e5c6 Peer.GetDataRequest: use CompletableFuture internally 2022-03-22 17:42:13 +01:00
Sean Gilligan
39c3b3f2f5 Wallet: use CompletableFuture internally 2022-03-22 17:38:31 +01:00
Andreas Schildbach
94451e6984 PeerGroupTest: migrate from ListenableFuture to CompletableFuture 2022-03-22 16:01:56 +01:00
Sean Gilligan
48907ed532 PeerTest: migrate from ListenableFuture to CompletableFuture 2022-03-22 15:58:38 +01:00
Sean Gilligan
79b75663cc Peer: migrate to CompletableFuture 2022-03-22 13:14:21 +01:00
Sean Gilligan
2d60caeadf bitcoinj/net: migrate from ListenableFuture to CompletableFuture 2022-03-22 13:07:58 +01:00
Sean Gilligan
d212eb7185 PeerTest, PeerGroupTest: migrate from SettableFuture to CompletableFuture 2022-03-21 18:28:28 +01:00
Sean Gilligan
c236ecb6ec Peer: convert downloadDependencies() to CompletableFuture 2022-03-21 13:31:50 +01:00
Sean Gilligan
f75d45bcde Peer: make downloadDependenciesInternal() "functional"
* Returns async Future<List<Transaction>> result
* Makes all parameters read-only
* Simplifies the non-recursive downloadDependencies()
* Uses streams to make internal lists, etc. more immutable
* Improves JavaDoc comments
2022-03-19 16:25:10 +01:00
Sean Gilligan
8347ef8fb6 Peer: reorder downloadDependenciesInternal() parameters so the transaction is first
This more closely matches downloadDependencies and makes it easier
to spot which parameters were added to the “internal” version.
2022-03-19 16:05:43 +01:00
Sean Gilligan
24011abd64 Peer: eliminate marker in downloadDependenciesInternal()
Eliminate `marker` object and simply return `null` (`Void`).
2022-03-19 15:56:48 +01:00
Andreas Schildbach
b7bd0e05c3 BasicKeyChainTest: fix spontaneous failure of bloom() because of false positive 2022-03-15 17:00:30 +01:00
Andreas Schildbach
cbfbdafaff Threading: optimize imports 2022-03-14 16:46:14 +01:00
Sean Gilligan
4bbdd9da55 Threading: make tasks queue final 2022-03-14 16:45:25 +01:00
Sean Gilligan
e07efde0c0 Threading: replace lambda with method reference 2022-03-14 16:42:54 +01:00
Sean Gilligan
7b935a0152 DeterministicKeyChainTest: use JDK8 in readResourceFile()
This replaces “Beta” classes in Guava with JDK 8 classes/methods.
2022-03-09 19:26:14 +01:00
Sean Gilligan
b54205a235 Peer: Simplify needToRequest set of hashes
* Make “more immutable” by using stream/toSet
* Eliminate unnecessary use of CopyOnWriteArraySet
2022-03-09 10:48:17 +01:00
Andreas Schildbach
dd855f0bcc Wallet: organize imports 2022-03-08 10:44:06 +01:00
Sean Gilligan
0b183d9040 ECKeyTest: migrate from ListenableFuture to CompletableFuture 2022-03-08 10:39:09 +01:00
Sean Gilligan
79c961a25b PaymentSession: migrate from ListenableFuture to ListenableCompletableFuture 2022-03-07 23:22:06 +01:00
Sean Gilligan
7befc583bc WalletTest: migrate from ListenableFuture to CompletableFuture 2022-03-07 22:36:31 +01:00
Sean Gilligan
658514986f TestWithNetworkConnections, InboundMessageQueuer: migrate from SettableFuture to CompletableFuture 2022-03-07 22:31:13 +01:00
Sean Gilligan
da9c12312f BitcoindComparisonTool: migrate from SettableFuture to CompletableFuture 2022-03-07 22:24:33 +01:00
Sean Gilligan
8ec6c05c6b Threading: replace CountdownLatch with CompletableFuture 2022-03-07 13:59:57 +01:00
Sean Gilligan
11d676d103 DeterministicKeyChainTest: refactor checkSerialization
Move file/string reading/serializing logic to dedicated methods.
2022-03-07 12:42:08 +01:00
Andreas Schildbach
7aa54583b7 build.gradle: update protobuf-javalite to 3.19.4 2022-03-07 11:33:40 +01:00
Sean Gilligan
5f69f769d6 DownloadProgressTracker: convert to CompletableFuture 2022-03-04 22:15:09 +01:00
Sean Gilligan
eb56d71f8f TransactionConfidence: Convert to CompletableFuture 2022-03-04 13:04:41 -08:00
Andreas Schildbach
52babf52b0 LevelDBBlockStore, LevelDBFullPrunedBlockStore: remove LevelDB-based block stores 2022-03-04 18:27:40 +01:00
Sean Gilligan
96db76da83 PeerGroup: replace SettableFuture with CompletableFuture
There are several places where futures are created with SettableFuture.create().
This updates those to use new `ListenableCompletableFuture()` instead.
2022-02-24 20:56:59 +01:00
Sean Gilligan
9db8b49c50 Convert TransactionBroadcast, Wallet.doMaintenance() to CompletableFuture
* Use ListenableCompletableFuture on all public APIs
* Use CompletableFuture internally, in example, and in tests
* Add new FutureUtils class
* Add 2 new static methods to ListenableCompletableFuture
2022-02-24 20:48:54 +01:00
Sean Gilligan
7caa1aee9a TransactionTest: Use CompletableFuture in testHashForSignatureThreadSafety() 2022-02-24 19:39:16 +01:00
Sean Gilligan
d3e7f854b9 PeerGroup: migrate start/stop to CompletableFuture
This will need to be rebased, paying special attention to merging
ListenableCompletableFuture.of()
2022-02-24 15:58:00 +01:00
Sean Gilligan
974086636c Wallet: Use CompletableFuture for BalanceFutureRequest
Also simplify checkBalanceFuturesLocked()
2022-02-23 11:29:27 -08:00
Andreas Schildbach
f411dcd634 remove redundant private modifier from various enum constructors 2022-02-23 16:00:22 +01:00
Andreas Schildbach
011d42c475 SPVBlockStore: use a StandardCharsets constant 2022-02-23 15:56:42 +01:00
Andreas Schildbach
784118d1de SPVBlockStore: remove final from static method 2022-02-23 15:54:11 +01:00
Sean Gilligan
3758213100 core/build.gradle: Commented out option for max javadoc warnings 2022-02-23 12:46:02 +01:00
Sean Gilligan
06d212ef02 AbstractBlockChain: migrate to CompletableFuture 2022-02-23 12:16:54 +01:00
Sean Gilligan
1616b6f02f Wallet: Make BalanceFutureRequest less mutable 2022-02-22 15:21:59 -08:00
Andreas Schildbach
4bb592aee6 TransactionTest: rewrite testHashForSignatureThreadSafety() to use an executor
This will actually fail the test if an assert in the worker threads fails.
Previously, it was just printing the exception to standard output.
2022-02-18 19:59:48 +01:00
Andreas Schildbach
d07e75e2a8 GetUTXOsMessage, UTXOsMessage: remove support for querying Bitcoin XT nodes for UTXOs 2022-02-18 19:38:18 +01:00
Andreas Schildbach
044daafc84 TransactionTest: rename the two recently added addSignedInput() tests 2022-02-18 18:10:07 +01:00
Andreas Schildbach
d3f3548a57 TransactionTest: verify the signature in the two recently added addSignedInput() tests 2022-02-18 18:09:11 +01:00
Sean Gilligan
1959dab5e4 Transaction: support segwit in addSignedInput() methods
Add addSignedInput() variants to Transaction that provide input value,
deprecate non-value methods, add checks and logs.
Add simple transaction building tests to TransactionTest.
This also updates some tests to not use the deprecated methods.
2022-02-18 11:00:34 +01:00