Commit Graph

108 Commits

Author SHA1 Message Date
Andreas Schildbach
e7017bfc2f KeyChainGroup: migrate to Network from NetworkParameters 2023-04-19 22:58:52 +02:00
Sean Gilligan
9291841f8d Wallet: use Network in static factory methods
* Adds new methods taking `Network` rather than `NetworkParameters`
* Deprecates all converted methods
* Updates tests, examples, and tools that use these calls
2023-04-18 12:47:09 +02:00
Sean Gilligan
5eb67285db Message: rename methods serialize() and messageSize()
Provide deprecated implementations of `bitcoinSerialize()`
and `getMessageSize()`.
2023-04-16 18:49:32 +02:00
Andreas Schildbach
c3d20cb9b4 Ping, Pong: make immutable 2023-04-16 10:32:54 +02:00
Andreas Schildbach
92355b1c32 BloomFilter: move parse() to static constructor read() 2023-04-16 08:26:02 +02:00
Andreas Schildbach
eac2c1fee3 FilteredBlock: move parse() to static constructor read() 2023-04-16 08:07:56 +02:00
Andreas Schildbach
838d14d027 PeerAddress: make immutable
* Static constructors `simple()` and `inet()` that replace the native constructors.
2023-04-13 00:21:36 +02:00
Andreas Schildbach
0401a0cde2 PartialMerkleTree: make immutable 2023-04-13 00:16:16 +02:00
Andreas Schildbach
cd75c6ab6b PartialMerkleTree: divorce from Message
It is never sent on its own, so it doesn't need to be a `Message`.

* Static constructor `read()` replaces the native constructor that deserialized
  from a payload.
* `write()` helper replaces `bitcoinSerializeToStream()`.
* `serialize()` and `getMessageSize()` helpers replace `bitcoinSerialize()`.

Includes a test.
2023-04-13 00:13:24 +02:00
Sean Gilligan
ce07733bbf Wallet: constructor use Network rather than NetworkParameters
With deprecation.
2023-04-11 13:02:11 +02:00
Sean Gilligan
4b9981015c ProtocolVersion: move to top-level class from NetworkParameters
* Rename `getBitcoinProtocolVersion()` to `intValue()`
* Deprecate `NetworkParameters.getProtocolVersionNum()`. This eliminates
  what seems to be an unnecessary level of indirection.
* Add tests.

This will also help eliminate a dependency on `NetworkParameters` in some places.
2023-04-10 01:35:20 +02:00
Sean Gilligan
c4439db699 FakeTxBuilder: use Network not NetworkParameters 2023-04-09 10:33:15 +02:00
Sean Gilligan
7ef88e709e TransactionOutPoint: make hash and index immutable
* Make the two fields `final`
* Rename accessors to `hash()` and `index()`
* Provide deprecated stubs for the old "get" methods
2023-04-04 00:06:47 +02:00
Andreas Schildbach
fbc5185b5a TransactionOutPoint: divorce from Message
It is never sent on its own, so it doesn't need to be a `Message`.

* A static constructur `read()` replaces the native constructor that deserialized
  from a payload.
* A `write()` helper replace `bitcoinSerializeToStream()`.
* A `serialize()` helper replace `bitcoinSerialize()`.
* A `BYTES` constant replaces `getMessageSize()`.

This comes with a test.
2023-04-03 22:17:31 +02:00
Andreas Schildbach
4248804f82 Sha256Hash: migrate to byte[] serialize() from byte[] getReversedBytes() 2023-04-03 22:12:51 +02:00
Andreas Schildbach
edf889306b VarInt: migrate to byte[] serialize() from byte[] encode() 2023-04-03 22:11:00 +02:00
Andreas Schildbach
fb9b578542 VersionMessage: move isBloomFilteringSupported() to Peer 2023-04-03 19:07:55 +02:00
Andreas Schildbach
f2fa39ef3e HeadersMessage: remove params from constructors 2023-04-03 19:05:45 +02:00
Andreas Schildbach
c613a7d98a Block, FilteredBlock: remove params from constructors 2023-04-03 19:04:23 +02:00
Andreas Schildbach
f174e2350e VersionMessage: inline helpers isWitnessSupported(), hasBlockChain() and hasLimitedBlockChain()
Our API is now fluent enough that we don't need them any more.
2023-04-03 17:53:49 +02:00
Andreas Schildbach
dedf478c66 Transaction: remove params from constructors 2023-04-03 16:23:13 +02:00
Andreas Schildbach
c309994e99 FakeTxBuilder: don't create unnecessary transaction in makeSolvedTestBlock() 2023-04-02 17:29:41 +02:00
Andreas Schildbach
116194f39e Stopwatch: introduce tool for measuring time mainly for log messages
The helpers from `TimeUtils` are affected by the mock clock, which
is not desired for debug output.
2023-04-01 23:34:09 +02:00
Sean Gilligan
772bccd5f8 MemoryBlockStore: construct with genesis block
It doesn't need an entire `NetworkParameters`.
2023-03-31 22:14:06 +02:00
Andreas Schildbach
81fb0c5acb Transaction, TransactionInput, TransactionOutPoint: add static constructors for the elements of a coinbase
This should reduce misuse of the standard constructors.
2023-03-31 19:28:11 +02:00
Andreas Schildbach
eb531166ee TransactionOutput: remove params from constructors
To make this possible, a check for maximum value is removed.
2023-03-30 23:43:17 +02:00
Andreas Schildbach
dd07d2cf62 NetworkParameters: fix protocol version for BIP37 bloom filters
According to BIP111, the protocol version must be greater than 70000.
Since we use "greater or equals", 70001 is the correct number.
2023-03-30 23:39:12 +02:00
Andreas Schildbach
8aeb5d3b1c TransactionInput: remove params from constructors 2023-03-30 23:00:04 +02:00
Andreas Schildbach
f2376e3ba3 PartialMerkleTree: remove params from constructors 2023-03-30 22:39:05 +02:00
Andreas Schildbach
773a9aeb4e PeerAddress: remove params from constructor
To make this possible, a port has to be specified in all cases.
2023-03-30 18:03:18 +02:00
Andreas Schildbach
57c9456ce8 TransactionOutPoint: remove params from constructors 2023-03-30 01:42:50 +02:00
Andreas Schildbach
32ee59f7bb BloomFilter: remove params from constructor 2023-03-30 00:31:02 +02:00
Andreas Schildbach
5ea7d64ee4 RejectMessage: remove params from constructors 2023-03-29 23:48:13 +02:00
Andreas Schildbach
dd2213c7e1 ListMessage: remove params and serializer from constructors in hierarchy 2023-03-29 23:37:17 +02:00
Andreas Schildbach
592f3c692d Services: wrapper for node services bitfield 2023-03-28 15:52:05 +02:00
Sean Gilligan
3b7c630eb4 ForwardingService: move args parsing to constructor
This simplifies the overall flow for tutorial purposes.
2023-03-27 23:23:44 +02:00
Sean Gilligan
65466f8908 ForwardingService: combine methods main() and forward() 2023-03-27 22:21:58 +02:00
Sean Gilligan
41ed5a984b Wallet: deprecate public fields in SendResult, replace with accessors
* Deprecate public fields in `SendResult`
* Make available equivalent accessors
* Update all usages

This prepares the way for replacing `SendResult` with `TransactionBroadcast`
in the future.
2023-03-27 20:22:35 +02:00
Andreas Schildbach
b528fb5180 build.gradle: update SLF4J to 2.0.7
Starting with SLF4J 2.0.0, we can use the fluent logger API.
2023-03-27 15:25:02 +02:00
Andreas Schildbach
150c911750 LegacyAddress: flip arguments of new static constructor fromBase58()
Otherwise the deprecation cycle won't be of much use for consumers who pass `null` for `params`.
2023-03-27 09:17:37 +02:00
Andreas Schildbach
47a5d73035 ByteUtils: rename all writeUInt*() helpers to writeInt*()
This creates overloads in some cases.
2023-03-24 19:34:06 +01:00
Andreas Schildbach
7fba2d8c6b Message: fold unsafeBitcoinSerialize() into bitcoinSerialize() 2023-03-22 02:21:21 +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
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
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
04c72ce003 Peer: migrate pingIntervals field to java.time API 2023-03-19 20:15:00 +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
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