Commit Graph

4634 Commits

Author SHA1 Message Date
Sean Gilligan
dc5dbc1db7 BitcoinNetwork: remove ID_UNITTESTNET
It is no longer used in the unit tests.
2023-04-13 16:49:32 +02:00
Sean Gilligan
134202c63f BitcoinNetwork: improve JavaDoc
Make sure the string values are easily found in JavaDoc and in IDEs
that display JavaDoc.
2023-04-13 16:46:52 +02:00
Andreas Schildbach
6b7fe58955 ListMessage: fix number of inventory items read as long 2023-04-13 12:03:18 +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
2c62951a31 PeerAddress: divorce from Message
It is never sent on its own, so it doesn't need to be a `Message`.

* Static constructor `read(protocolVariant)` replaces the native constructor that deserialized
  from a payload.
* `write()` helper replaces `bitcoinSerializeToStream()`.
* `serialize()` and `getMessageSize()` helpers replace `bitcoinSerialize()`.
2023-04-13 00:19:40 +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
Andreas Schildbach
cc5d735eb4 VersionMessage: for field receivingAddress don't use PeerAddress
Rather, use `InetSocketAddress` and `Services`.

This makes `time` in `PeerAddress` a required field. It also drops
support for TORv2 addresses in `VersionMessage` (if that was ever
a thing).
2023-04-11 13:52:16 +02:00
Andreas Schildbach
7383a32e2a VersionMessage: remove field fromAddr
The field is unused by the Bitcoin protocol. Bitcoin Core fills it up
with zeros. From now on, we'll do the same.
2023-04-11 13:44:16 +02:00
Andreas Schildbach
d4f8058164 Wallet: in signTransaction() don't care about the witness being empty
It does not matter for the data being signed.

This removes `Script.createEmptyWitness()` as it's unnecessary as well.
2023-04-11 13:21:22 +02:00
Sean Gilligan
ce07733bbf Wallet: constructor use Network rather than NetworkParameters
With deprecation.
2023-04-11 13:02:11 +02:00
Sean Gilligan
f41336657d LocalTransactionSigner: make key local var effectively final 2023-04-11 12:47:01 +02:00
Sean Gilligan
e94d5a4b49 GenerateLowSTests: remove unused NetworkParameters 2023-04-10 01:49:15 +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
Andreas Schildbach
414bcf8b6c MessageSerializer: remove variant makeTransaction(payload, hash) 2023-04-10 01:18:30 +02:00
Andreas Schildbach
1346504fb0 Transaction, TransactionInput, TransactionOutput: remove unCache() 2023-04-10 01:18:30 +02:00
Andreas Schildbach
b8d3c4a641 Transaction: remove fields cachedTxId and cachedWTxId
Transaction IDs seem to be quick enough to calculate.
2023-04-10 01:18:30 +02:00
Sean Gilligan
c4439db699 FakeTxBuilder: use Network not NetworkParameters 2023-04-09 10:33:15 +02:00
Sean Gilligan
c6ef0b69b1 Transaction: use Network not NetworkParameters in verify() 2023-04-09 10:27:21 +02:00
Andreas Schildbach
4e75444644 TransactionOutPointTest: add test deprecatedMembers()
The idea is any change in method signatures will be more visible in diffs.
2023-04-08 21:53:04 +02:00
Andreas Schildbach
9a34ab2a28 TransactionOutPoint: make field fromTx immutable 2023-04-08 21:50:02 +02:00
Andreas Schildbach
a7d2e9ee18 TransactionOutPoint: make field connectedOutput immutable 2023-04-08 21:34:14 +02:00
Andreas Schildbach
e89ccb9f2e TransactionOutPoint: don't use accessors in equals() and hashCode() 2023-04-08 21:31:50 +02:00
Andreas Schildbach
622989f62d Transaction: introduce helper getOutput(outpoint) to get an output by outpoint 2023-04-08 21:28:13 +02:00
Andreas Schildbach
e2107a0e6e Script: make field creationTime immutable 2023-04-08 21:17:30 +02:00
Andreas Schildbach
d55f179047 Script: make field program immutable
Also rename the accessor to `program()`. Caching of programs is removed,
except for the case where an instance is constructed with one.
2023-04-08 21:17:30 +02:00
Andreas Schildbach
131b37f5d2 Script: make field chunks immutable
Also rename the accessor to `chunks()`.
2023-04-08 21:17:30 +02:00
Andreas Schildbach
2444fad85b Script: migrate a native constructor that wraps chunks to of() static constructor 2023-04-08 21:17:30 +02:00
Andreas Schildbach
28af827c0e Script: migrate two native constructors into a parse() static constructor 2023-04-08 21:15:32 +02:00
Andreas Schildbach
87bf6c0266 Transaction: make more use of getInput(index) 2023-04-08 16:33:41 +02:00
Andreas Schildbach
054defe54c Transaction: make more use of getOutput(index) 2023-04-08 16:33:36 +02:00
Andreas Schildbach
3e67ef679c FullBlockTestGenerator: rename argument outputIndex 2023-04-08 16:14:08 +02:00
Andreas Schildbach
a1237a636b ScriptBuilder: extract private helper p2whOutputScript() 2023-04-06 18:40:33 +02:00
Andreas Schildbach
15ee38aae0 ScriptBuilder: add ability to build scripts with creationTime 2023-04-06 18:37:42 +02:00
Andreas Schildbach
6d00650efa TransactionOutput: 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 replaces `bitcoinSerializeToStream()`.
* A `serialize()` helper replaces `bitcoinSerialize()`.

This comes with tests.
2023-04-06 18:14:47 +02:00
Andreas Schildbach
7da2820fa0 TransactionInput: check range of value
The value can't be negative. This also adds a test.
2023-04-06 17:59:47 +02:00
Andreas Schildbach
d880570d54 TransactionWitness: add copyright line 2023-04-06 17:58:32 +02:00
Andreas Schildbach
2b2bc0ce17 TransactionWitness: require non-null pushes 2023-04-06 17:56:16 +02:00
Andreas Schildbach
ae22162de5 TransactionWitness: make immutable
Except for the pushes themselves.
2023-04-06 17:54:13 +02:00
Andreas Schildbach
2699ea1708 TransactionWitness: add read and write helpers
* A static constructur `read()` deserializes from a payload.
* A `write()` helper replaces `bitcoinSerializeToStream()`.
* A `serialize()` helper gets the serialized bytes.

This comes with a test.
2023-04-06 17:52:25 +02:00
Andreas Schildbach
41f684523d Peer: log a bit of statistics about incoming inv messages 2023-04-04 15:32:41 +02:00
Andreas Schildbach
86e0980d19 TransactionInput: fix toString() throws on unparseable script 2023-04-04 11:08:02 +02:00
Andreas Schildbach
37fbe5ed7d TransactionOutput: fix toString() throws on unparseable script 2023-04-04 10:51:57 +02:00
Sean Gilligan
5f510d777b TransactionInput, TransactionOutput: compare parent tx using equals() not object reference 2023-04-04 10:17:25 +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
90be667779 TransactionInput: 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 replaces `bitcoinSerializeToStream()`.
* A `serialize()` helper replaces `bitcoinSerialize()`.

This comes with a test.
2023-04-03 23:58:14 +02:00
Andreas Schildbach
06070eeaf2 Buffers: add write helpers writeLengthPrefixedBytes() and writeLengthPrefixedString()
Includes a test.
2023-04-03 23:55:11 +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