Commit Graph

5087 Commits

Author SHA1 Message Date
hanmz
1f591df71c Buffers: fix typo in JavaDoc comment 2024-04-23 10:55:57 +02:00
Sean Gilligan
cff6459b4e ForwardingService: let main() throw InterruptedException
This simplifies main() and increases readability.
2024-04-23 10:53:46 +02:00
Sean Gilligan
a224bbed81 README: fix the label "bitcoinj-users" in the Matrix badge
We were incorrectly (and mostly unnoticed) displaying a space where we should
be displaying a single-dash.

See: https://shields.io/badges
2024-04-21 16:27:29 +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
itorod
c006e5edfe README: update jitpack dependency to 0.16 2024-04-07 13:51:16 +02:00
Sean Gilligan
72f5e03902 modular-architecture.md: Update for secp256k1-jdk
This just updates the proposed 0.19 release to use `secp256k1-jdk` instead
of a more generically defined crypto provider API.

We may want to consider doing this in the 0.18 release or moving
some ECKey definitions into `o.b.base` but this change does not
address either of those proposals.
2024-03-15 19:27:22 +01:00
Andreas Schildbach
1b4eafb7d6 build.gradle: update Guava to 33.1.0-android 2024-03-14 11:40:59 +01: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
5046ad3a49 build.gradle: update SLF4J to 2.0.12 2024-02-09 19:16:44 +01:00
Sean Gilligan
c52db25737 gradle.yml, graalvm.yml: update Gradle to 8.6 2024-02-07 22:35:31 +01:00
Sean Gilligan
1abecf97d2 gradle.yml, graalvm.yml: update upload-artifact to v4
Also adjust artifact name as v4 rejects uploads with duplicate names.
2024-01-31 18:10:55 +01:00
Sean Gilligan
97a4754dc7 gradle.yml: update setup-java to v4 2024-01-31 17:58:47 +01:00
Sean Gilligan
7ed5234af7 gradle.yml, graalvm.yml: update checkout to v4 2024-01-31 17:46:02 +01:00
Sean Gilligan
2c8b80d8f3 gradle.yml, graalvm.yml: update gradle-build-action to setup-gradle@v3 2024-01-31 17:39:22 +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
Andreas Schildbach
4cf9fc5450 build.gradle: update Guava to 33.0.0-android 2023-12-19 15:49:20 +01:00
Sean Gilligan
927c51698f gradle.yml, graalvm.yml: update Gradle to 8.5 2023-12-19 00:01:19 +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
539d25b35a KeyDerivationTasks: replace wildcard import
Replace import of `jakarta.annotation.*` with `jakarta.annotation.Nullable`.
2023-11-21 21:48:12 +01:00
Andreas Schildbach
89e190614a build.gradle: drop the Eclipse plugin
We assume that these days the plugin isn't needed to set up bitcoinj within
Eclipse.
2023-11-19 23:12:10 +01:00
Sean Gilligan
69366caa9d wallettemplate: migrate to Jakarta Annotations
Migrate `@Nullable` from JSR 250 (Common Annotations) to Jakarta
Annotations.

Jakarta Annotations supports Java modules, so this is necessary
to migrate to running `wallettemplate` on the module path.
2023-11-19 23:08:50 +01:00
Sean Gilligan
f298a49162 build.gradle: update Jackson to 2.16.0 2023-11-19 23:00:09 +01:00
Andreas Schildbach
fe6382d850 build.gradle: update protobuf-javalite to 3.22.5 2023-11-16 15:47:29 +01:00
Sean Gilligan
7b6f48a739 build.gradle: update Bouncy Castle to 1.77 2023-11-16 15:31:20 +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
Sean Gilligan
5d3cd2c115 TestWithNetworkConnections: make peerServers final 2023-11-10 12:37:47 +01:00
Andreas Schildbach
02ef9d50c3 WalletTool: new option for setting the type of filter for syncing
Currently, only server-side (bloom) filtering is supported.
2023-10-24 23:50:30 +02:00
Andreas Schildbach
c210fe7ba2 WalletTool: remove validation mode option
Keep only "simply payment verification" (SPV). Full validation is
utterly broken in bitcoinj, not tested, not maintained and as of
today nobody cares.
2023-10-24 23:46:29 +02: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
6219c56138 BlockFileLoaderBitcoindTest: add test streamEntireBitcoindBlockchainAsBlocks()
This test is useful for performance comparisons with
`streamEntireBitcoindBlockchainAsBuffers()`.

With adding to the `TxConfidenceTable` removed from `Block.read()` and
on a fast, modern laptop, `streamEntireBitcoindBlockchainAsBuffers()`
currently takes under 2 minutes while `streamEntireBitcoindBlockchainAsBlocks()`
takes over 5 minutes.
2023-10-24 12:21:22 +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
Sean Gilligan
712d8aac10 build.gradle: update JavaFX to 21.0.1 2023-10-24 12:07:04 +02:00
Sean Gilligan
dfe8d3866c build.gradle: updade picocli to 4.7.5 2023-10-24 12:00:11 +02:00
Sean Gilligan
03d6d4cf87 build.gradle: update equalsverifier to 3.15.2 2023-10-24 11:57:41 +02:00