Commit graph

3741 commits

Author SHA1 Message Date
Sean Gilligan
8dd7b3e0b8 BitcoinNetwork: add strings() method to list names of all values
This simplifies code that needs a list of all the values.
2024-04-23 17:06:56 +02:00
Sean Gilligan
298a75808e BitcoinNetwork: private static stream() method
Create a private method to stream the `values()` array, as it is used in
multiple places.
2024-04-23 16:58:39 +02:00
hanmz
ead69daae6 ByteUtils: fix typos in JavaDoc comments 2024-04-23 10:58:17 +02:00
hanmz
1f591df71c Buffers: fix typo in JavaDoc comment 2024-04-23 10:55:57 +02:00
Johannes Zweng
fb6aa09081 ECKey: add comments better explaining the meaning of recId 2024-04-10 15:55:58 +02:00
avoidaway
ece3943bab LegacyAddress, BitcoinSerializer, MessageSerializer, TransactionReceivedInBlockListener, ECKey, ChildKeyDerivationTest: fix repetitive words in comments 2024-04-07 13:55:38 +02:00
snoppy
6cf2cb4211 Wallet, KeyChainGroup: fix typos in JavaDoc 2024-04-07 13:53:47 +02:00
Sean Gilligan
9dee165fec ECKey: Make HALF_CURVE_ORDER package private 2024-03-11 10:08:00 +01:00
Sean Gilligan
e3f0f23ff9 ECKey: make CURVE package private, provide accessor
* Make the static field ECKey.CURVE (which is a Bouncy Castle
  type) package private and provide the ecDomainParameters() accessor
  for those who really need it.

* Use the accessor in DefaultRiskAnalysisTest

* We will not update code within the `o.b.crytpo` package
  to use the accessor, since we intend to migrate all/most
  of those usages to the `java.security` types.
2024-03-11 10:06:02 +01:00
Sean Gilligan
3a28fb0274 LazyECPoint: make private curve member static
We do not need to specify the curve for each instance as
bitcoinj uses SECP256K1 curve exclusively.

This change reduces per instance memory usage, simplifies the API,
and reduces public API dependence on Bouncy Castle.

One two-arg constructor is deprecated and replaced with a single-arg
constructor that no longer requires the curve parameter.

Just to be extra safe, in the deprecated method we validate the curve
argument and make sure it is the P256K1 curve.

Also correctly mark private `bits` field as @Nullable, and improve
JavaDoc and other comments.
2024-03-10 21:13:27 +01:00
Andreas Schildbach
155b404063 always use dots in "e.g." 2024-02-24 23:48:49 +01:00
Andreas Schildbach
e3ca33469f Services: add NODE_P2P_V2 service bit 2024-01-16 20:19:25 +01:00
Andreas Schildbach
a0724fcbb2 Services: add NODE_COMPACT_FILTERS service bit 2024-01-16 20:19:25 +01:00
Andreas Schildbach
2c9cdb77cc checkpoints.txt: refresh bundled checkpoints 2024-01-10 23:05:59 +01:00
Andreas Schildbach
1c27229a93 Prepare 0.17-SNAPSHOT 2023-12-20 17:47:41 +01:00
Andreas Schildbach
be826ce9b0 Tag 0.17-alpha3 2023-12-20 17:47:26 +01:00
Andreas Schildbach
0e8a51123b Transaction: add back a constructor as deprecated
Problem: At the moment, we don't have a replacement.
2023-12-20 02:10:10 +01:00
Andreas Schildbach
7230fbf7e5 KeyChainGroup: reword two comments about fallback chains being skipped in future 2023-12-19 17:47:17 +01:00
Sean Gilligan
51266b6bbc Wallet: fix incorrect constructor JavaDoc
The (canonical) constructor does not create a wallet with a random seed.
2023-12-18 20:30:30 +01:00
Sean Gilligan
1f7ed7f94b Wallet: improve JavaDoc for fromMasterKey()
The JavaDoc was incorrect/incomplete. The changes add `@param`/`@return` items,
fix errors, add important details.
2023-12-18 18:38:26 +01:00
Sean Gilligan
74153c321f Context, HDKeyDerivation, KeyChainGroupStructure: fix punctuation regarding 'e.g.' in comments 2023-12-18 18:24:27 +01:00
Peter Todd
e03c6a500b MainNetParams, TestNet3Params: update petertodd DNS seed
Moved to `.net` from `.org`.
2023-12-08 12:28:25 +01:00
Sean Gilligan
7e073f1793 Bech32: refactor, support arbitrary byte[] encodings
* Move/refactor utility methods from `SegwitAddress` to `Bech32`
* Add `Bech32.Bech32Bytes` class for wrapping `Bech32` 5-bit byte arrays
* Have existing `Bech32.Bech32Data` class extend `Bech32.Bech32Bytes`
* Add `encodeBytes` and `decodeBytes` to `Bech32` for encoding/decoding arbitrary `byte[]`
* Add tests for Nostr NIP-19 test vectors
2023-12-05 16:40:36 +01:00
Sean Gilligan
8566f8a21c Block: use stream in readTransactions()
* Use `IntStream` to build the list
* Return an unmodifiable list
2023-11-10 12:45:30 +01:00
Andreas Schildbach
d8e864fb24 TransactionConfidence: check for mutation of an already set source 2023-10-24 13:29:25 +02:00
Sean Gilligan
e0b46d7c64 Block, Peer: set TransactionConfidence source more selectively
* Don't set it in `Block.readTransactions()` (this is a performance and
  a layering issue)
* When received from the network (or simulating network reception in a test)
  only set `source` to `NETWORK` if it was previously `UNKNOWN`.
2023-10-24 12:28:54 +02:00
Sean Gilligan
d347ef996e BlockFileLoader: stream() call streamBuffers()
`stream()` is `streamBuffers()` with a `map()` operation to
read a buffer into a Block. Make this more clear by removing
duplicated code.
2023-10-24 12:13:50 +02:00
Andreas Schildbach
d326fadda0 WalletTool, BitcoinURITest: update fictious example URLs
- Use a subdomain of `example.com`
- Use HTTPS, though not strictly necessary with BIP-70
- Strip the `.php` suffix
2023-10-11 10:35:32 +02:00
Andreas Schildbach
432fa51168 EncryptedData, KeyCrypter, KeyCrypterScrypt: update links to MIT license 2023-10-09 10:11:33 +02:00
Sean Gilligan
f190f589e6 TransactionBroadcast: allow interrupt in dropPeerAfterBroadcastHandler()
If an `InterruptedException` occurs while sleeping in `dropPeerAfterBroadcastHandler()`,
close the peer immediately instead of delaying the exception to preserve a full 1-second
delay.

Peers/PeerGroups can be shut down, and they should shut down as quickly as possible.
2023-10-03 23:03:02 +02:00
Sean Gilligan
5513f7dff0 InternalUtils: new helper getUninterruptibly() to replace Guava method
Update usages in `PeerGroup` and `PeerTest`.
2023-10-02 20:44:46 +02:00
Sean Gilligan
04a783282d FakeTxBuilder: make BlockPair fields immutable 2023-10-02 20:38:48 +02:00
Sean Gilligan
fea737b39b Address, AddressParser: improve JavaDoc regarding network normalization 2023-10-02 20:35:12 +02:00
Andreas Schildbach
a9b9af8102 PeerGroup: check required services on discovered addresses via addr/addrv2
If the discovered peer has the required services, mark it with a slightly
higher priority than peers discovered via `PeerDiscovery`.
2023-10-01 09:27:43 +02:00
Sean Gilligan
2526f5c78a BitcoinSerializer: use Network not NetworkParameters
Also deprecate (unused) method `getParameters()`.
2023-09-30 18:27:28 +02:00
Andreas Schildbach
8bf4f57888 BitcoinSerializer: remove a whitespace at EOL 2023-09-30 18:23:37 +02:00
Andreas Schildbach
6686782ffa ECKey: remove native interface to libsecp256k1
Of course, Bouncy Castle is still used.
2023-09-30 18:06:55 +02:00
Sean Gilligan
576adf229b PBKDF2SHA512: remove redundant Mac.reset() calls
Calls to `Mac.reset()` are not needed after `Mac.doFinal(input)`.
2023-09-25 15:21:13 +02:00
Sean Gilligan
3023188541 PBKDF2SHA512: simplify F() by using ByteUtils.concat() 2023-09-25 15:14:07 +02:00
Sean Gilligan
053cd60dc5 PBKDF2SHA512: chain methods in INT()
Simplify slightly by using a more functional-style approach.
2023-09-25 15:11:15 +02:00
Sean Gilligan
e67401d7a5 PBKDF2SHA512: add JavaDoc comment to derive() method 2023-09-25 15:08:00 +02:00
Andreas Schildbach
0d57e1ece1 MnemonicCode: fix comment about iteration count 2023-09-25 15:04:17 +02:00
Sean Gilligan
81b78292e2 PeerGroup, FilterMerger: deprecate setting false-positive rate
In the bitcoinj code itself, the false-positive rate is never changed
after constructing a `PeerGroup` or a `FilterMerger`.

* Deprecate methods for setting Bloom Filter FP rate in both methods
* Add constructor params to `PeerGroup` so they can be set at construction
  time, if non-default values are needed
2023-09-16 11:42:24 +02:00
Sean Gilligan
5955eee4c8 Wallet: replace Interables.concat() with Stream.concat() in getWatchedOutputs()
This simplifies the code and removes a Guava dependency.
2023-09-16 11:31:32 +02:00
Sean Gilligan
68e61d9507 Wallet: refactor getWatchedOutputs() to use streams
1. Get a spliterator from the concatenated iterator
2. Use streams instead of nested loops
3. Extract `isWatchedScriptPubKey()` helper function
2023-09-16 11:28:56 +02:00
Sean Gilligan
bce4475aaf replace Guava Bytes.concat() with own ByteUtils.concat() 2023-09-16 11:22:11 +02:00
Sean Gilligan
daa4da8d9f remove use of Guava @VisibleForTesting on all package-private members
From now on we will only use this annotation on `public` or `protected` members.
2023-09-16 11:13:22 +02:00
Sean Gilligan
57b3649e55 PBKDF2SHA512: replace unneeded check for max dkLen with comment
Since the check for `dkLen > (2^32 - 1) * H_LEN` is effectively a no-op,
replace it with a comment.
2023-09-16 09:07:50 +02:00
Sean Gilligan
b4f7deaba5 PBKDF2SHA512: calculate l with integer math 2023-09-14 22:46:25 +02:00
Sean Gilligan
5a11957eb3 PBKDF2SHA512: declare/catch specific exceptions
Make it more clear which exceptions are thrown by `F` and caught by
the `try` in `derive()`.
2023-09-14 22:39:58 +02:00