Sean Gilligan
76d3dfa8c4
FutureUtils: fix a JavaDoc warning
2022-04-02 11:09:11 +02:00
Sean Gilligan
3c6e7e0b37
WalletAppKit: make walletFactory @Nonnull
...
This is a minor breaking change. If anyone is calling `setWalletFactory(null)` they
will need to replace it with `setWalletFactory(WalletProtobufSerializer.WalletFactory.DEFAULT)`.
A `checkNotNull` makes sure anyone doing this should discover the problem as early
as possible.
2022-04-01 17:55:40 +02:00
Andreas Schildbach
04a9834e0a
WalletProtobufSerializer: declare WalletFactory a @FunctionalInterface
2022-04-01 17:19:11 +02:00
Sean Gilligan
1bfcb827e1
WalletProtobufSerializer: extract wallet constructor reference to WalletFactory::DEFAULT
...
This makes the default implementation more obvious and easier to
reference. It will also will help us make the WalletFactory member
of WalletAppKit `@Nonnull` in a dependent PR.
2022-04-01 17:06:37 +02:00
Andreas Schildbach
7a5fb9c01d
apply "Replace lambda with method reference" refactoring
2022-04-01 16:09:30 +02:00
Sean Gilligan
a2ee754e3a
Peer: produce futures
via a Stream function chain in downloadDependenciesInternal()
2022-03-31 23:43:00 +02:00
Andreas Schildbach
58e725b969
Peer: make GetDataRequest a subclass of CompletableFuture to simplify
2022-03-31 23:38:56 +02:00
Sean Gilligan
e86a77c557
Peer: construct getdata a little bit more functionally and atomically in downloadDependencies()
...
Build GetDataMessage in a private method.
2022-03-31 19:29:06 +02:00
Andreas Schildbach
4a6219bf57
X509Utils: handle CertificateParsingException in getDisplayNameFromCertificate() if certificate has no SubjectAltName extension
...
This fix makes the method compatible with JDK 18. Previously, it relied
on the method returning `null` if the extension is not present.
2022-03-31 12:17:00 +02:00
Sean Gilligan
4be4a3f9f8
WalletProtobufSerializer: update obsolete comment
...
writeWallet and readWallet must have been static methods at one time,
but they are instance methods now. Update this misleading comment.
2022-03-30 23:12:28 +02:00
Sean Gilligan
32cf0004fd
ListenableCompletableFuture: fix error in comment, rename lambda parameter
...
* Fix a comment that said `not-null` where it should have said `null`
* Further clarify that same comment
* Rename lambda parameter from `val` to `value`
2022-03-30 22:45:31 +02:00
Sean Gilligan
9e53b621a1
Peer: rename needToRequest
to txIdsToRequest
...
This Set is used to filter out duplicate transactions from the rootTx
inputs and desperately needs a better name.
2022-03-30 22:38:38 +02:00
Sean Gilligan
64e07b6b9d
convert ImmutableMap to unmodifiable map
...
This converts all remaining instances of ImmutableMap to JDK unmodifiable map.
2022-03-30 17:15:21 +02:00
Sean Gilligan
fb9b6f16b3
convert ImmutableSet to unmodifiable set
...
This converts all remaining instances of ImmutableSet to JDK unmodifiable set.
2022-03-30 16:46:26 +02:00
Sean Gilligan
1343776286
convert ImmutableList to unmodifiable list
...
This converts all remaining instances of ImmutableList (except those
in core tests) to JDK unmodifiable list.
2022-03-30 16:33:22 +02:00
Sean Gilligan
6d7dd7919f
Peer: convert getDataFutures() to concurrent queue
...
* Convert the declared type of `getDataFutures` to `Queue` - we do not
need random access, so `Queue` is better interface to use for this data structure.
* Convert the implementing class to `ConcurrentLinkedQueue` this provides
the concurrency we need and is theoretically/likely more efficient than
`CopyOnWriteArrayList`.
2022-03-30 16:19:12 +02:00
Sean Gilligan
ae71aeb6ea
DownloadProgressTracker: use CompletableFuture internally
2022-03-30 14:18:23 +02:00
Sean Gilligan
061dfd45a1
FutureUtils: move ThrowingSupplier from ListenableCompletableFuture to here
2022-03-30 12:15:38 +02:00
Sean Gilligan
d0db98a462
ListenableCompletableFuture: remove supplyAsync()
2022-03-30 12:09:21 +02:00
Sean Gilligan
63d9b07c80
PaymentSession: use CompletableFuture internally
2022-03-30 12:05:53 +02:00
Andreas Schildbach
037ade176f
BtcFormat: fix several string comparisons
2022-03-26 12:08:44 +01:00
Andreas Schildbach
7f38154244
apply "make inner classes static" refactoring
2022-03-26 11:32:49 +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
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
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
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
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
79c961a25b
PaymentSession: migrate from ListenableFuture to ListenableCompletableFuture
2022-03-07 23:22:06 +01:00
Sean Gilligan
8ec6c05c6b
Threading: replace CountdownLatch with CompletableFuture
2022-03-07 13:59:57 +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
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