Commit graph

2649 commits

Author SHA1 Message Date
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
Andreas Schildbach
784118d1de SPVBlockStore: remove final from static method 2022-02-23 15:54:11 +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
d07e75e2a8 GetUTXOsMessage, UTXOsMessage: remove support for querying Bitcoin XT nodes for UTXOs 2022-02-18 19:38:18 +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
Andreas Schildbach
f3a314e2d9 global replace SegWit by segwit 2022-02-18 10:42:12 +01:00
Andreas Schildbach
a082709ff5 MultiplexingDiscovery: remove out-of-date comment on forServices() 2022-02-16 17:11:52 +01:00
Sean Gilligan
9c61d6b5fb TransactionOutPoint: deprecate setters
This required a little tweak to a @VisibleForTesting method in
Block.java to remove use of setHash().
2022-02-16 14:11:55 +01:00
wiz
20364cb7b2 MainNetParams: Add seed.bitcoin.wiz.biz to DNS seeds
DNS seed was added to Bitcoin Core in https://github.com/bitcoin/bitcoin/pull/19284

Documentation: https://wiz.biz/bitcoin/seed
2022-02-14 15:01:03 +01:00
Sean Gilligan
f3b4848b5c fix all empty JavaDoc <p> tag warnings in core 2022-02-12 18:14:31 +01:00
Andreas Schildbach
435e39a841 Utils: add bytesToBigInteger() helper and use it
This is the antagonist to Utils.bigIntegerToBytes().
2022-02-11 16:17:24 +01:00
Andreas Schildbach
6ad636ccec SigNetParams: support signet 2022-02-11 10:52:49 +01:00
Kasim G
5b1c8ef5f5 apply "Anonymous type has shorter lambda alternative" refactoring 2022-01-28 17:25:33 +01:00
Kasim G
a31cbe0470 apply "Anonmyous type can be replaced with lambda" refactoring 2022-01-28 17:18:42 +01:00
Sean Gilligan
fded97b07c Address: Improve comparison using JDK 8 Comparator function composition 2022-01-06 00:56:50 +01:00
Andreas Schildbach
18750ab5b2 Replace import com.google.common.util.concurrent.* with single class imports 2022-01-05 14:56:49 +01:00
Sean Gilligan
41f5518e6d RejectMessage: Simplify RejectCode.fromCode() using streams 2022-01-05 11:08:29 +01:00
Sean Gilligan
dda89aad57 Network: move class from tools subproject to core (o.b.utils) 2022-01-03 21:59:19 +01:00
Sean Gilligan
25454bd624 ECKey: Simplify comparators using JDK 8 methods 2022-01-03 00:33:40 +01:00
Andreas Schildbach
9641fde9e8 TransactionConfidence: make enum field final 2022-01-01 19:03:55 +01:00
Andreas Schildbach
bf76468242 RejectMessage: make enum field final 2022-01-01 19:03:55 +01:00
Sean Gilligan
3f25626837 ECKey: Remove deprecated methods/constructors 2021-12-31 10:01:15 +01:00
Sean Gilligan
3545e3ed02 ECKey: Remove unused FAKE_SIGNATURES static boolean 2021-12-30 18:28:38 -08:00
Andreas Schildbach
04378aa638 TransactionOutput: fix not resolving P2TR addresses in toString() 2021-11-22 12:16:15 +01:00
Andreas Schildbach
4ea8546cd3 Script: take into account the various witness length fields in getNumberOfBytesRequiredToSpend()
This (hopefully entirely) fixes the slight fee underspending for spends from P2WPKH.
2021-11-17 09:01:03 +01:00
Andreas Schildbach
26cc0db3e2 Wallet, Transaction: use Guava IntMath.divide() for the round-up divisions
The previous trick was confusing.
2021-11-17 08:51:21 +01:00
Marko Lazaric
964adb1e63 Script: add opcode name to disabled opcode exception message 2021-11-17 01:28:57 +01:00
Andreas Schildbach
3d5e9d6b70 org.bitcoin.production.checkpoints.txt: Refresh bundled checkpoints. 2021-10-24 21:02:09 +02:00
Andreas Schildbach
fd70fe2a0e 0.17-SNAPSHOT 2021-10-10 12:09:32 +02:00
Andreas Schildbach
4b243a615a Script, SegwitAddress: detect taproot scripts and decode them into addresses 2021-10-09 16:57:09 +02:00
Andreas Schildbach
05dfddc98c make sure to use position(int), flip() and rewind() only from Buffer rather than MappedByteBuffer
Without these casts, on some JDKs it links against overloaded methods in MappedByteBuffer and Andoid doesn't have them.
2021-10-06 18:49:36 +02:00