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
Sean Gilligan
e650f0f160
build.gradle: update Jackson to 2.15.3
2023-10-24 11:52:39 +02:00
Sean Gilligan
b8b64a339a
build.gradle: update SLF4J to 2.0.9
2023-10-24 11:48:23 +02:00
Sean Gilligan
1b16d0b87f
build.gradle: update Guava to 32.1.3-android
2023-10-24 11:46:11 +02:00
Sean Gilligan
ac9967b1d9
.gitlab-ci.yml: enable Gradle Build Scan
2023-10-24 11:44:20 +02:00
Sean Gilligan
474d8d91f7
gradle.yml, graalvm.yml: enable Gradle Build Scan
...
Adds a Gradle initialization script to non-interactively agree to the
Gradle Build Scan terms of service. Provided by Stefan Wolf via GitHub
Issues, see
https://github.com/gradle/gradle/issues/26316#issuecomment-1739245349
Tested with Gradle 4.4 to Gradle 8.4.
2023-10-15 14:11:08 +02:00
Sean Gilligan
bfae3a8913
gradle.yml: update JDK to 21 in the build matrix
2023-10-13 00:48:14 +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
531ba5cfd5
gradle.yml, graalvm.yml: update Gradle to 8.4
2023-10-05 10:48:58 +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
b959b7bdfb
KeyDerivationTasks: use Thread.sleep()
instead of Guava Uninterrruptables
...
We don't really need to sleep uninterrruptibly here. The code is only displaying
a progress indicator and the `call()` method is already throwing `Exception`.
2023-10-02 21:47:43 +02:00