Commit graph

5129 commits

Author SHA1 Message Date
Sean Gilligan
9e1dd68a70 gradle.yml, graalvm.yml: update gradle-build-action to setup-gradle@v4
See https://github.com/gradle/actions/releases for changes.
2025-02-19 12:47:32 +01:00
Andreas Schildbach
3ebb1714de build.Containerfile: use cache for Gradle/Maven build artifacts 2025-02-10 21:39:49 +01:00
Andreas Schildbach
1d4fb63a60 build.Containerfile: use cache for Debian packages 2025-02-10 21:38:14 +01:00
Andreas Schildbach
80bdbbf86c build.Containerfile: only install Debian packages that are strictly necessary 2025-02-10 21:23:38 +01:00
Andreas Schildbach
92a4feb8d6 MainNetParams, TestNet3Params, SigNetParams: update DNS seeds from Bitcoin Core 28.1 2025-02-10 21:09:03 +01:00
Andreas Schildbach
85d9d3e881 Transaction: cache transaction IDs
Without caching, transactions are serialized way too often.

This effectively reverts b8d3c4a641, but
invalidation is slightly different.
2025-02-10 19:19:34 +01:00
Andreas Schildbach
179fb049fa TransactionWitness: add missing class and method JavaDoc 2025-02-10 18:09:33 +01:00
Andreas Schildbach
7efdd39bc1 TransactionInput: make field scriptBytes immutable
Because tweaking is necessary for transaction signing, these usages
have been changed to produce new inputs instead and replace them in
transactions as needed.
2025-02-10 01:05:35 +01:00
Andreas Schildbach
fbf836d2ca TransactionInput: make field witness immutable
Because tweaking is necessary for transaction signing, these usages
have been changed to produce new inputs instead and replace them in
transactions as needed.
2025-02-10 00:59:40 +01:00
Andreas Schildbach
60f949aa17 TransactionInput: make field sequence immutable
Because tweaking is necessary in cases like unit tests, these usages
have been changed to produce new inputs instead and replace them in
transactions as needed.
2025-02-10 00:46:23 +01:00
Andreas Schildbach
9daf18eb0f TransactionOutput: make field value immutable
Because tweaking is necessary for fee calculation logic, these usages
have been changed to produce new TransactionOutputs instead and
replace them in transactions as needed.
2025-02-09 01:47:53 +01:00
Andreas Schildbach
3f3b73fc09 TransactionOutput: make field scriptBytes immutable 2025-02-08 10:33:12 +01:00
Andreas Schildbach
4e88ff284d ScriptBuilder: if pushing an empty data, use data() not smallNum()
Pushing an empty data is *not* a no-op: an item is added to the
stack. So that empty array should be represented in the data
part of the script chunk.

This makes behaviour consistent with script parsing, and input
signing expects the empty array as a placeholder for a missing
signature.

This reverts 07682145e3 from 2015!

Also adds a test.
2025-02-08 02:19:59 +01:00
Andreas Schildbach
c35f320e89 TransactionInput, TransactionOutPoint: in write(), prefer calling write() over serialize()
The reason is `write()` re-uses the `ByteBuffer`, whereas `serialize()` allocates
an intermediate byte array.
2025-02-05 13:57:09 +01:00
Sean Gilligan
31be6f5d33 wallettemplate: modular build using jlink plugin
* add module-info.java
* wallettemplate/build.gradle: add jlink plugin and mainModule
* gradle.yml: add bitcoinj-wallettemplate:jlink Gradle target
* add instructions to the README
2025-01-30 14:15:04 +01:00
Sean Gilligan
b363afbc98 gradle.yml, README.adoc: add wallettemplate installDist target
Now that this target is working correctly, we can include it in the
GitHub Actions builds. We can also add instructions
for how to build to the README.

The GitLab CI is currently using Debian Gradle 4.4.1 and
DO NOT build wallettemplate, so they remain unchanged.
2025-01-30 10:36:34 +01:00
Sean Gilligan
d1b1a5cf26 build.gradle: more precise SLF4J dependency declaration
There is a compile-time dependency on slf4j-api and a runtimeOnly
dependency on slf4j-jdk14. This commit updates Gradle to declare this
explicitly.
2025-01-30 10:29:09 +01:00
itorod
a07b23d0e5 bitcoin_address.fxml: remove icon text for copy and qrcode icons 2025-01-29 23:33:05 +01:00
itorod
85c7c78854 bitcoin_address.fxml: replace fontawesomefx icons by PNGs
The PNGs are sourced from https://pictogrammers.com

This also gets rid of the dependency to fontawesomefx.
2025-01-29 22:18:23 +01:00
Sean Gilligan
d367fd2226 gradle.yml, graalvm.yml: update Gradle to 8.12.1 2025-01-27 11:00:29 -08:00
Andreas Schildbach
1152c3b751 SPVBlockStore: make sure to use position(int) only from Buffer rather than MappedByteBuffer
Without this cast, on some old JDKs it links against an overloaded method in MappedByteBuffer
and Android doesn't have it.
2025-01-27 16:08:19 +01:00
Omoniyi Ilesanmi
cd48efe15b Wallet: rename TransactionCompletionException from CompletionException
This avoids naming confusion with `java.util.concurrent.CompletionException`.
2025-01-23 10:28:51 +01:00
Andreas Schildbach
055f1362b3 build.gradle: update Kotlin to 2.0.21 2025-01-20 10:06:12 +01:00
Andreas Schildbach
4eb75d8d0b build.gradle: update Gradle plugin for GraalVM to 0.10.3 2025-01-20 09:29:56 +01:00
Andreas Schildbach
498240a897 gradle.yml, graalvm.yml: update Gradle to 8.12 2025-01-20 09:23:49 +01:00
Andreas Schildbach
4c70646ab7 checkpoints.txt: refresh bundled checkpoints 2025-01-19 23:42:07 +01:00
Andreas Schildbach
0ba1682a42 build.gradle: update protobuf-javalite to 4.29.3 2025-01-19 21:31:53 +01:00
Andreas Schildbach
04e400ea10 build.gradle: update equalsverifier to 3.18.1 2025-01-19 21:31:53 +01:00
Andreas Schildbach
e46100650f build.gradle: update Jackson to 2.18.2 2025-01-19 21:13:39 +01:00
Andreas Schildbach
bddcf9d2ca build.gradle: update EasyMock to 5.5.0 2025-01-19 21:07:58 +01:00
Andreas Schildbach
7ed3d327cd build.gradle: update JUnit 5 to 5.11.4 2025-01-19 21:03:28 +01:00
Andreas Schildbach
e229bb5e91 build.gradle: update Guava to 33.4.0-android 2025-01-19 20:58:20 +01:00
Andreas Schildbach
3956d6cf16 build.gradle: update Bouncy Castle to 1.80 2025-01-17 10:09:46 +01:00
Sean Gilligan
09defa6266 ECKey: add JavaDoc for toAddress() 2025-01-03 11:32:21 +01:00
Johannes Zweng
cd922bb839 SegwitAddress: allow instantiation of P2A (pay-to-anchor) address 2024-12-15 15:18:55 +01:00
Andreas Schildbach
25ff2243cd ScriptPattern: simplify isWitnessCommitment() and extractWitnessCommitmentHash()
It now operates on bytes, rather than chunks. This also adds a bit of JavaDoc
and a couple of tests.
2024-12-09 15:02:25 +01:00
Andreas Schildbach
be91b31440 Script, ScriptBuilder: don't use current time as a default for creationTime
Rather, leave it `null`.
2024-12-03 13:18:28 +01:00
Andreas Schildbach
7a32e7ad4d build.gradle: update equalsverifier to 3.17.3 2024-11-19 13:53:23 +01:00
Andreas Schildbach
14dfd3870c build.gradle: update protobuf-javalite to 4.28.3 2024-11-19 13:46:09 +01:00
Andreas Schildbach
c36a6ff51c build.gradle: update SLF4J to 2.0.16 2024-11-19 13:31:24 +01:00
Andreas Schildbach
50ebb54a8a build.gradle: update Guava to 33.3.1-android 2024-11-19 13:25:45 +01:00
Andreas Schildbach
5e29a9eba7 build.gradle: update Bouncy Castle to 1.79 2024-11-09 12:52:42 +01:00
Andreas Schildbach
24fb83c2fe Script, ScriptBuilder: clarify concept of creation time in the JavaDocs 2024-11-09 12:48:36 +01:00
Andrey
e0c20f2bb0 build.gradle, settings.gradle: simplify Gradle version comparisons 2024-10-18 10:08:48 +02:00
Andreas Schildbach
20b739c578 gradle.yml, graalvm.yml: update macOS to 13 2024-10-18 01:37:55 +02:00
Sean Gilligan
5d486b78d9 gradle.yml, graalvm.yml: update Gradle to 8.10.2 2024-10-18 00:59:43 +02:00
Sean Gilligan
87f4114774 ScriptChunk: deprecate write(OutputStream)
Deprecate write(OutputStream) and replace with existing
toByteArray() method. Internally implement a write(ByteBuffer) method.

Update Script to use chunk.toByteArray().
2024-09-27 15:19:43 +02:00
Sean Gilligan
40a7cefe82 Script: two private constructors for clarity
This also makes parameter validation more consistent.
2024-09-26 00:26:58 +02:00
Sean Gilligan
0cb413cc4f Script: functional-style parseIntoChunks(), parseIntoChunksPartial() 2024-09-25 15:25:46 +02:00
Sean Gilligan
c97c9f8f06 Script: annotate program as @Nullable
This reflects current design and behavior.
2024-09-25 15:21:53 +02:00