Sean Gilligan
52b2f63d70
VarIntTest: use JUnitParamsRunner
...
* Parameterize the existing tests
* Test more functionality
* Test more data variations
2023-03-21 23:15:34 +01:00
Andreas Schildbach
58500cfb46
VarInt: add reading from and writing into ByteBuffer
2023-03-21 23:04:35 +01:00
Andreas Schildbach
0da35c6a0c
VarInt: migrate native constructors to static constructors
...
The old native constructors have been deprecated.
2023-03-21 23:02:41 +01:00
Andreas Schildbach
abdba75019
Block: simplify parse()
-parseTransactions()
interaction
2023-03-21 22:54:44 +01:00
Andreas Schildbach
9d9cadd59c
Message: in constructors wrap payload bytes and offset into a ByteBuffer
...
This reduces arguments of constructors and does away with
a couple of constructor variants.
2023-03-21 17:55:32 +01:00
Andreas Schildbach
7303043f37
ByteUtils: rename read helpers that read from streams
2023-03-21 17:46:26 +01:00
Andreas Schildbach
d89718aaf6
ByteUtils: add reading from and writing to ByteBuffer
...
This gets rid of a lot of manual bit shuffling.
2023-03-21 17:32:05 +01:00
Andreas Schildbach
c372a87ea4
ByteUtils: properly document all read and write helpers
2023-03-21 17:18:51 +01:00
Andreas Schildbach
371025f604
ByteUtils: rename helpers that write to byte arrays or streams to write*()
...
Note the read helpers already follow the `read*()` pattern.
2023-03-21 17:10:17 +01:00
Andreas Schildbach
34d8948be9
Message: do away with retaining of original message payload
...
This removes all caching of original message payload and "retain mode" in message serializers.
There is some effect on tests. Asserts on the cache status have been removed, rendering some
tests almost pointless. Rather than removing them, comments have been added to explain the
history of these tests. An assert on a large binary blob of a block was dependent on retain mode, likely
due to non-optimal encoding. It had to be disabled.
Note: Some classes still cache individual values, like hashes.
2023-03-20 16:55:29 +01:00
Andreas Schildbach
f516c25524
HexFormat: small performance enhancement for formatHex()
2023-03-20 16:01:29 +01:00
Sean Gilligan
466444ebf7
Peer: calculate lastPing
and averagePing
when Pong is received
...
This eliminates the need for locking in the getters.
The fields are marked as volatile so that when written, they will be
flushed to "main memory".
2023-03-20 00:34:00 +01:00
Andreas Schildbach
aab3e32624
Message: remove length
arguments from constructors of the hierarchy
...
There was never a case where `length` wasn't equal to `payload.length`,
which is supplied by the same constructors. This also does away with
a couple of constructor variants.
2023-03-19 23:58:06 +01:00
Andreas Schildbach
8faf61ae0c
Peer: fix JavaDoc about number of buckets
2023-03-19 23:17:00 +01:00
Sean Gilligan
78cc85dc1e
Peer: replace pingIntervals
array with Deque
2023-03-19 22:57:01 +01:00
Sean Gilligan
98c3a14a54
Peer: reimplement getPingTime()
and getLastPingTime()
in a functional way
2023-03-19 22:51:15 +01:00
Andreas Schildbach
04c72ce003
Peer: migrate pingIntervals
field to java.time
API
2023-03-19 20:15:00 +01:00
Andreas Schildbach
dce930f487
Message: get rid of the readVarInt(offset)
variant
...
None of the other helpers have this.
2023-03-19 19:09:17 +01:00
Andreas Schildbach
d222efd6de
ParseByteCacheTest: rewrite arrayContains()
helper
...
The previous implementation was based on hex strings and was prone
to raising a false positive when matching at an uneven hex position.
This also adds a test.
2023-03-19 18:23:58 +01:00
Andreas Schildbach
979490ad97
UnsafeByteArrayOutputStream: remove this performance optimisation
...
Migrate all usages of `UnsafeByteArrayOutputStream` to `ByteArrayOutputStream`.
2023-03-19 17:55:05 +01:00
Andreas Schildbach
e37b2ad78c
Preconditions: replace Guava checkArgument()
and checkState()
for the entire codebase
...
This also fixes many precondition messages, and rewrites two cases
of `checkPositionIndex()` and `checkElementIndex()`.
2023-03-19 17:48:27 +01:00
Andreas Schildbach
12b78a6d9b
ParseByteCacheTest: parse test data using parseHex()
...
Gets rid of Guava BaseEncoding.
2023-03-19 16:59:59 +01:00
Andreas Schildbach
91c706ca33
TransactionTest: make testOptimalEncodingMessageSize()
a more meaningful
2023-03-19 16:44:01 +01:00
Andreas Schildbach
d3ba6c03ec
Message: check that payload is retained in retain mode
2023-03-19 14:36:40 +01:00
Andreas Schildbach
43123396c0
ParseByteCacheTest: rename variable serializer
from bs
...
The previous name was just too confusing in company with "bos"
and the like.
2023-03-19 11:19:32 +01:00
Sean Gilligan
0f216d328f
Block, BitcoinNetwork, BitcoinNetworkParams, KeyChainGroupTest: use _000
in constants to improve readability
2023-03-18 21:00:18 +01:00
Andreas Schildbach
2061555afa
WatchMempool: migrate class to java.time
API
2023-03-18 20:57:44 +01:00
Andreas Schildbach
06e031a51e
LockTime: make native constructors private
2023-03-18 20:33:38 +01:00
Andreas Schildbach
e11fa0686f
Transaction: rename estimateUnlockTime()
method from estimateLockTimeInstant()
2023-03-18 11:36:47 +01:00
Andreas Schildbach
178fc0ab8f
Script: rename creationTime()
method from getCreationTime()
2023-03-18 11:29:07 +01:00
Andreas Schildbach
b309308076
EncryptableItem: rename creationTime()
method from getCreationTime()
2023-03-18 11:23:05 +01:00
Andreas Schildbach
45f87d8339
PeerGroup: rename fastCatchupTime()
method from getFastCatchupTime()
2023-03-18 11:16:31 +01:00
Andreas Schildbach
c2cabead9a
TransactionConfidence: rename lastBroadcastTime()
method from getLastBroadcastTime()
2023-03-18 11:11:05 +01:00
Andreas Schildbach
7090c6a152
PaymentSession: rename time()
method from getTime()
2023-03-18 11:06:17 +01:00
Andreas Schildbach
5ae145e6b4
PaymentSession: rename expires()
method from getExpiresInstant()
2023-03-18 11:03:17 +01:00
Andreas Schildbach
f583cea035
Wallet: rename keyRotationTime()
method from getKeyRotationTimeInstant()
2023-03-18 10:58:43 +01:00
Andreas Schildbach
a68f7f958c
KeyChainGroup: rename earliestKeyCreationTime()
method from getEarliestKeyCreationTimeInstant()
2023-03-18 10:54:42 +01:00
Andreas Schildbach
5db4e1eadd
PeerFilterProvider: rename earliestKeyCreationTime()
method from getEarliestKeyCreationTimeInstant()
2023-03-18 10:47:41 +01:00
Andreas Schildbach
ed716bc4ba
KeyChain: rename earliestKeyCreationTime()
method from getEarliestKeyCreationTimeInstant()
2023-03-18 10:43:59 +01:00
Andreas Schildbach
b644886545
PeerAddress: rename time()
method from getTimeInstant()
2023-03-18 10:38:51 +01:00
Andreas Schildbach
c0072ccb01
Transaction: rename updateTime()
method from getUpdateTimeInstant()
2023-03-18 10:35:27 +01:00
Andreas Schildbach
06f2367069
ExponentialBackoff: rename retryTime()
method from getRetryInstant()
2023-03-18 10:31:54 +01:00
Andreas Schildbach
516acd51c6
Wallet: rename lastBlockSeenTime()
method from getLastBlockSeenTimeInstant()
2023-03-18 10:27:12 +01:00
Andreas Schildbach
e6e4745e1a
Block: rename time()
method from getTimeInstant()
2023-03-18 10:22:26 +01:00
Andreas Schildbach
31123bea3d
Preconditions: add generic check()
that allows to supply a custom exception
...
Also adds tests.
2023-03-18 00:15:13 +01:00
Andreas Schildbach
80178c011c
MonetaryFormat: use BigDecimal
for converting satishos to number and decimals
...
This gets rid of Guava `LongMath`. It also adds comments to the individual
conversion steps.
2023-03-17 18:30:13 +01:00
Andreas Schildbach
9606900551
MonetaryFormat: rename variable and argument decimalShift
from potentialDecimals
...
This also adds documentation about what this number means.
2023-03-17 15:40:06 +01:00
Andreas Schildbach
09d6973b46
MonetaryFormat: rename variable and argument maxVisibleDecimals
from maxDecimals
...
This also adds documentation about what this number means.
2023-03-17 15:09:27 +01:00
Sean Gilligan
48746364fc
MonetaryFormat: encapsulate decimal conversion in private satoshisToDecimal()
...
This is a reasonable standalone refactoring, and is
being made in preparation for migration away from a
dependency on Guava's LongMath.
2023-03-16 22:18:28 +01:00
Sean Gilligan
b73730a1af
TimeLock: introduce HeightLock
and TimeLock
subtypes
...
This is to support pattern-matching in JDK 16 and later.
2023-03-16 21:59:05 +01:00