Commit Graph

4331 Commits

Author SHA1 Message Date
Andreas Schildbach
dca54e0621 Preconditions: replace Guava checkArgument() and checkState() in base with own implementation
This has the added benefit of exception messages only being evaluated on demand.
2023-03-16 21:42:46 +01:00
Sean Gilligan
9ab5653fcf Script: use LockTime.THRESHOLD instead of deprecated Transaction.LOCKTIME_THRESHOLD 2023-03-16 21:38:52 +01:00
Andreas Schildbach
9ec245c259 Objects: migrate entire codebase to requireNonNull() from Guava Precondition.checkNotNull()
This has the added benefit of exception messages being evaluated on demand.
2023-03-16 20:12:28 +01:00
Andreas Schildbach
36c82a3cfb SegwitAddressTest: replace Guava ToStringHelper with custom string building 2023-03-16 17:10:48 +01:00
Andreas Schildbach
202bb1f8fb LockTime: wrap lock time values
This improves readability and type safety.
2023-03-15 21:45:09 +01:00
Andreas Schildbach
3b7c35f4cb Script: minor spelling fix for "lock time" 2023-03-15 16:44:33 +01:00
Andreas Schildbach
4d70b690d7 .gitlab-ci.yml: add a job for building with OpenJDK 17 under Debian Bookworm 2023-03-15 13:27:21 +01:00
Andreas Schildbach
1efd60ca26 .gitlab-ci.yml: don't upgrade packages before build
We don't need the absolute latest versions. The Docker images are
updated regularly anyway.
2023-03-15 13:15:05 +01:00
Andreas Schildbach
5aa2c2e065 Block: wrap hashes with Sha256Hash in buildMerkleTree() 2023-03-15 02:25:11 +01:00
Andreas Schildbach
1e883a6423 ListMessage: move arrayLen field to local variable 2023-03-15 01:32:38 +01:00
Andreas Schildbach
35b7532e11 BlockChainTest: use DateTimeFormatter.ISO_INSTANT to parse an instant 2023-03-14 10:12:13 +01:00
Andreas Schildbach
2cf4f17458 PaymentProtocolTool: use TimeUtils.dateTimeFormat() to dump expiry time 2023-03-14 10:00:49 +01:00
Andreas Schildbach
0e871e9af4 Block: use Date.from() to convert from Instant 2023-03-14 09:55:25 +01:00
Andreas Schildbach
de9c39b35a TimeUtils: migrate currentTime() method to java.time API 2023-03-14 02:56:52 +01:00
Andreas Schildbach
bb81790824 WalletTool: migrate date option to java.time API 2023-03-14 02:51:43 +01:00
Andreas Schildbach
1835370e04 VersionMessage: migrate time field to java.time API 2023-03-14 02:13:45 +01:00
Andreas Schildbach
7788f6cfaf TestNet3Params: migrate testnetDiffDate constant to java.time API 2023-03-14 02:07:10 +01:00
Andreas Schildbach
79477ff04a FakeTxBuilder: migrate createFakeBlock()' methods to java.time` API 2023-03-14 01:56:26 +01:00
Andreas Schildbach
168ff75bd1 TimeUtils: migrate dateTimeFormat() method to java.time API 2023-03-14 01:32:59 +01:00
Andreas Schildbach
4ae610f9cd BuildCheckpoints: migrate to java.time API 2023-03-13 22:12:18 +01:00
Andreas Schildbach
9eef9094b5 BriefLogFormatter: migrate timestamp formatting to java.time API
This also changes the time zone of timestamps to UTC and adds a test.
2023-03-13 22:05:27 +01:00
Andreas Schildbach
65afcf076d Transaction: migrate estimateLockTime() method to java.time API 2023-03-13 22:00:47 +01:00
Andreas Schildbach
f7fffc6af2 BlockingClient, ConnectionHandler, NioClientManager, NioServer: properly import Logger 2023-03-13 17:56:16 +01:00
Andreas Schildbach
01821f2ba5 Transaction: add and extend comments for the predefined comparators 2023-03-11 12:14:13 +01:00
Andreas Schildbach
006c00ac35 TestWithNetworkConnections: pick random TCP bind ports for each test instance
This will hopefully reduce spurious test failures due to already bound ports.
2023-03-10 23:43:14 +01:00
Andreas Schildbach
d25c77cf24 Peer, NioClient, BlockingClientManager: fix some JavaDoc errors 2023-03-10 22:52:43 +01:00
Andreas Schildbach
7e70541658 PeerGroup: migrate vConnectTimeout field to java.time API 2023-03-10 22:32:47 +01:00
Andreas Schildbach
034277fae0 Transaction: reimplement SORT_TX_BY_UPDATE_TIME and SORT_TX_BY_HEIGHT comparators in a functional way 2023-03-10 22:12:29 +01:00
Andreas Schildbach
95549b4754 Wallet: migrate updateTime field to java.time API 2023-03-10 17:21:53 +01:00
Andreas Schildbach
85cc162642 PeerGroup: migrate connection retry logic to java.time API 2023-03-10 17:19:25 +01:00
Andreas Schildbach
da8b9ce434 Wallet: migrate lastBlockSeenTime field to java.time API 2023-03-10 16:47:38 +01:00
Andreas Schildbach
be0b2b46b8 PaymentSession: migrate getters to java.time API 2023-03-10 16:43:09 +01:00
Andreas Schildbach
95776f28e3 gradle.yml: set log level to info for the Java CI build
This causes standard output to grow to about 50.000 lines.
2023-03-10 16:07:31 +01:00
Andreas Schildbach
9081d0fd2d WalletTest: reduce false positive rate in marriedKeychainBloomFilter()
This will hopefully reduce spurious test failures.
2023-03-10 15:21:40 +01:00
Andreas Schildbach
63ed4275ac SPVBlockStoreTest: increase threshold for performanceTest() to 5 seconds
This will hopefully reduce spurious test failures.
2023-03-10 14:50:03 +01:00
Andreas Schildbach
c205c67127 KeyChainGroupTest: fix spurious test failure of bloomFilterForMarriedChains()
This was caused by expected bloom filter false positives.
2023-03-10 14:06:19 +01:00
Andreas Schildbach
fb2dad432b WalletTest: fix spurious test failure of witnessTransactionGetFeeTest()
This was caused by a shorter than expected signature encoding, which
can happen in rare cases.
2023-03-10 13:55:30 +01:00
Andreas Schildbach
1484ff595a DefaultRiskAnalysis: don't try to risk-analyze if wallet has not seen any blocks 2023-03-10 10:27:19 +01:00
Andreas Schildbach
54754e14e9 EncryptableItem, ECKey, DeterministicKey, DeterministicSeed: migrate creationTime field to java.time API 2023-03-10 09:28:27 +01:00
Sean Gilligan
3023947df8 ByteUtils: move to o.b.base.internal
We don't consider ByteUtils to be part of our external API.
2023-03-10 01:28:23 +01:00
Sean Gilligan
ec8622e393 gradle.yml, graalvm.yml: update Gradle to 7.6.1 2023-03-10 01:14:28 +01:00
Andreas Schildbach
92ee36848c DeterministicSeed: introduce static constructors meant for external consumers
* native constructors that were meant to be called by consumers now have static equivalents
* all native constructors are discouraged from being used by a JavaDoc comment
* one constructor that wasn't meant to be used by consumers is switched to private access
* tests and tools that resemble consumers are updated to use the new API

Note: although most native constructors are now deprecated, we're not using
annotations because we're still calling them.
2023-03-10 00:53:35 +01:00
Andreas Schildbach
2c28cadda5 MnemonicCode: in toMnemonic() throw unchecked rather than checked exception
When converting from entropy to mnemonic with `toMnemonic()`, a `MnemonicLengthException`
was thrown for entropies with invalid length. This is bad for two reasons:

- it is a checked exception, and the method will not be called with user input
- misleading exception name, the error is about the entropy length not the mnemonic

We now throw a `RuntimeException` instead. The resulting simplification of
calling code can be witnessed in `DeterministicSeed`.
2023-03-09 21:44:31 +01:00
Andreas Schildbach
566cd102b2 ScriptPatternTest: move p2shScriptHashFromKeys() from LegacyAddressTest 2023-03-09 20:51:26 +01:00
Andreas Schildbach
04d4443d08 LegacyAddressTest: separate test into p2shScriptHashFromKeys() and p2shAddressFromScriptHash() 2023-03-09 20:51:26 +01:00
Andreas Schildbach
a61da4fff6 Script: migrate creationTime field to java.time API 2023-03-09 15:09:07 +01:00
Andreas Schildbach
9ba34fc2ed DeterministicKeyChain: convert if-else in getEarliestKeyCreationTimeInstant() to terniary operator 2023-03-08 20:41:51 +01:00
Andreas Schildbach
2cd239eee0 KeyChainGroup: convert if-else in getEarliestChainsCreationTime() to terniary operator 2023-03-08 20:41:51 +01:00
Andreas Schildbach
18898f4fc5 Wallet, KeyChain, KeyChainGroup, PeerFilterProvider: migrate getEarliestKeyCreationTime() methods to java.time API 2023-03-08 20:41:46 +01:00
Sean Gilligan
c41128b4df AesKey: replace o.bouncycastle.c.p.KeyParameter
We were using KeyParameter as a wrapper for a byte[] containing an
AES Key and passing it around our API. This introduced an unnecessary
API dependency on Bouncy Castle. This PR adds an AesKey class
for the same purpose to replace it.

This is a breaking change, but one that should be easy to accommodate.
2023-03-08 18:13:21 +01:00