Sean Gilligan
c7cd7200fb
.gitlab-ci.yml: print sha256sum of build artifacts
...
Add printing of `sha256sum` for core and wallet-tool binaries. Do this
for the reference build and the three CI builds.
2023-09-25 14:05:12 +02:00
Andreas Schildbach
dc7e488819
.gitlab-ci.yml: test ability to publish core into a maven repository
...
Add it to all three CI build jobs.
2023-09-21 23:52:12 +02:00
Sean Gilligan
7988870f8a
.gitlab-ci.yml: test ability to create the wallet-tool distribution too
...
Add it to all three CI build jobs.
2023-09-21 22:14:48 +02:00
Andreas Schildbach
73690baa71
.gitlab-ci.yml: add our reference build
2023-09-21 20:36:39 +02:00
Sean Gilligan
64b5e02a5c
graalvm.yml: add JDK 21 to the matrix
...
This also requires updating to the latest Gradle GraalVM Plugin,
which requires Gradle 7.4 or later.
Recent Gradle GraalVM Plugins don't require the `javaLauncher` setting (which
we had hardcoded to use JDK 17) so that setting is removed.
2023-09-21 19:38:43 +02:00
Sean Gilligan
1952d1cc7f
graalvm.yml: remove unneeded declaration of native-image component
...
This is not needed with GraalVM 17 and will cause an error with GraalVM 21.
2023-09-21 19:33:53 +02:00
Andreas Schildbach
bb95ea18d1
build.Containerfile: update reference build to use JDK 17
...
Also updates the container to Debian Bookworm, because we need
its specific (patched for JDK 17) Gradle version.
Note this change makes the JavaDoc build artifact reproducible.
2023-09-21 19:12:45 +02:00
Andreas Schildbach
b6b29a659b
build.Containerfile: reproducible reference build via containerization
...
Currently, buildah, Podman and Docker are supported.
The goals of the reference build are:
- Make our release process more transparent
- Improve reproducibility by shielding our build from the hosts
environment
- Reduce the trust necessary for running our build by shielding
the hosts environment from possible side effects of our build
Note both the signing and the uploading of release artifacts are out
of scope for the reference build.
2023-09-21 11:46:34 +02:00
Sean Gilligan
56658e44de
build.gradle: normalize file/directory permissions within JARs
...
This aims to make our build reprodicible.
2023-09-19 14:00:38 +02:00
Andreas Schildbach
f41b495610
build.gradle: strip timestamps from JavaDoc HTMLs
...
This aims to make our build reprodicible.
2023-09-16 22:09:51 +02:00
Andreas Schildbach
7605fa9535
build.gradle: strip timestamps from JARs
...
This aims to make our build reprodicible.
2023-09-16 22:08:45 +02:00
Andreas Schildbach
b8d2521c12
README: add JDK 21 to list of tested builds
2023-09-16 13:50:41 +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
Sean Gilligan
ee23c2d6ff
PBKDF2SHA512: don't allow negative count or dkLen
2023-09-14 22:37:09 +02:00
Sean Gilligan
140deb0669
PBKDF2SHA512: move dkLen check out of try/catch
...
It throws an exception so doesn't need an if/else
and it also doesn't need to be in the try.
2023-09-14 22:34:12 +02:00
Sean Gilligan
4e039df446
PBKDF2SHA512: make hLen a constant
2023-09-14 18:25:31 +02:00
Sean Gilligan
c830107bce
PBKDF2SHA512: set hLen to correct value of 64
...
This is a bugfix to the API, but since `MnemonicCode` always
passes `dkLen` of 64 and the `System.arraycopy()` on line 66 truncates
`baos.toByteArray()` to `dkLen` length, the call to `derive()` works
correctly for our use-case.
2023-09-14 18:21:53 +02:00
Andreas Schildbach
4b987cb172
PBKDF2SHA512: remove comment about SHA-1 test vectors
...
They won't pass against our SHA-512 based code, and we have
our tests now.
2023-09-14 17:07:23 +02:00
Andreas Schildbach
040e2f4b3e
PBKDF2SHA512Test: tests for PBKDF2SHA512.derive()
2023-09-14 08:17:53 +02:00
Sean Gilligan
b90af12aea
PBKDF2SHA512: update URLs in JavaDoc
...
The IETF `https:` URLs are what the previous `http:` URLs redirect to.
The Cryptofreak URL is the same but with `https:`.
2023-09-12 22:18:19 +02:00
Sean Gilligan
f7d2b38aae
PBKDF2SHA512: properly format JavaDoc
2023-09-12 22:16:48 +02:00
Sean Gilligan
bce7bc195f
WalletTool: eliminate reassignment of feePerVkb
2023-09-12 21:51:31 +02:00
Sean Gilligan
983febfad0
WalletTool: eliminate reassignment of coinSelector
2023-09-12 21:49:40 +02:00
Sean Gilligan
e186ef9c84
WalletTool: simplify coinSelector lambdas
2023-09-12 21:47:20 +02:00
Sean Gilligan
853aeebd81
WalletTool: use CoinSelector.fromPredicate()
...
Simplify creation of CoinSelectors by using `CoinSelector.fromPredicate()`.
2023-09-12 21:44:32 +02:00
Sean Gilligan
7af3124f65
FilteringCoinSelector: use stream in select()
...
Note: this also prevents mutation of the candidate list which isn't
a problem as used within bitcoinj, but could be a problem if used
externally.
2023-09-12 19:01:41 +02:00
Sean Gilligan
0597c3383f
CoinSelector: mark as functional interface
...
The `@FunctionalInterface` annotation doesn't change behavior of `CoinSelector`
in any way. It just declares our intention that it be used as a functional
interface and will generate compiler errors if someone changes the code so that
it is no longer a SAM type.
2023-09-12 18:46:18 +02:00
Sean Gilligan
bd52545fb7
DefaultCoinSelector: use List.sort()
instead of Collections.sort()
2023-09-12 18:36:24 +02:00
Sean Gilligan
2be7ee33f8
DefaultCoinSelector: extract compareByDepth()
comparator
2023-09-12 18:34:24 +02:00
Sean Gilligan
9eaff37897
FilteringCoinSelector: make immutable
...
This is an API-breaking change because it requires a list of
`TransactionOutPoint` to be passed to the constructor and remove the
`excludesOutputsSpentBy(tx)` method.
`Wallet` is updated to use the new constructor.
2023-09-12 18:30:30 +02:00
Sean Gilligan
82feb7b831
CoinSelection: add defensive copy in constructor
2023-09-12 18:22:34 +02:00
Sean Gilligan
e8491bbd88
KeyTimeCoinSelector: use a stream in select()
...
Note that this removes the warning about exceeding the limit.
2023-09-12 18:19:14 +02:00
Sean Gilligan
339e0d0450
KeyTimeCoinSelector: factor out method isKeyBeforeCutoff()
2023-09-12 18:12:56 +02:00
Sean Gilligan
0c7e1aec3b
KeyTimeCoinSelector: use Wallet.getConfidence(parent)
in isConfirmed()
...
Also make `Wallet.getConfidence(parent)` package-private.
2023-09-12 18:09:06 +02:00
Sean Gilligan
bbe7f088ca
KeyTimeCoinSelector: check for parent is non-null in isConfirmed()
2023-09-12 18:05:07 +02:00
Sean Gilligan
af7c903df7
GuiUtils: use UI_ANIMATION_TIME
consistently, deprecate UI_ANIMATION_TIME_MSEC
2023-09-12 18:01:40 +02:00
Sean Gilligan
b83c0b96e6
WalletApplication: remove unreachable default case in suffixFromNetwork()
2023-09-12 17:59:43 +02:00
Sean Gilligan
b5d3c07612
WalletApplication: use switch expression in suffixFromNetwork()
2023-09-12 17:56:45 +02:00
Sean Gilligan
6fc1087aba
wallettemplate: mark fields as final
...
This commit fixes every IntelliJ warning about fields being final for
the wallettemplate module.
2023-09-12 17:54:46 +02:00
Sean Gilligan
7a1135246c
EasingInterpolator: remove redundant default clause from switch expression
2023-09-12 17:52:04 +02:00
Sean Gilligan
7a30041578
EasingInterpolator: use switch expression
2023-09-12 17:43:31 +02:00
Sean Gilligan
9e9d3afd6a
WTUtils: fix warning about raw generic
2023-09-12 17:40:33 +02:00
Sean Gilligan
110da96911
Wallet: use getAbsoluteFile()
when checking if parent directory exists
...
This fixes a NPE when using wallet-tool to create a new wallet on a path
without directory, e.g. `wallet-tool create --wallet=test.wallet`.
2023-09-07 17:44:04 +02:00