Commit Graph

4553 Commits

Author SHA1 Message Date
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
Andreas Schildbach
98d86375ae Services: migrate to byte[] serialize() from ByteBuffer buffer() 2023-04-03 22:09:06 +02:00
Andreas Schildbach
5ded7782be Message: remove params field and accessor 2023-04-03 20:24:55 +02:00
Andreas Schildbach
4f872b9dce VersionMessage: remove params from constructor 2023-04-03 20:22:16 +02:00
Andreas Schildbach
00c15e45c3 TransactionOutput: add a toString() variant that can print addresses 2023-04-03 19:23:27 +02:00
Andreas Schildbach
f385d27825 Block: remove deprecated method getBlockInflation()
Without `params` there is no way to keep this method.
2023-04-03 19:17:34 +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
6bd8e8e6bc AddressMessage: add/update class-level JavaDoc 2023-04-03 18:31:51 +02:00
Andreas Schildbach
e13e7db23c AddressEventListener, PeerGroup: add/update JavaDoc of onAddr() 2023-04-03 18:25:58 +02:00
Andreas Schildbach
5e1c556a15 Services: add anyOf() helper to check for at least one of the given node services 2023-04-03 17:54:26 +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
991d9ec0d9 Block: move difficulty target range check to AbstractBlockChain.add()
It doesn't make much sense in a getter. It should be checked when
adding a block to the chain, like all the other checks.
2023-04-03 17:46:13 +02:00
Andreas Schildbach
bfb840bbfd Block: remove obsolete constructor that takes a parent 2023-04-03 16:41:28 +02:00
Andreas Schildbach
dedf478c66 Transaction: remove params from constructors 2023-04-03 16:23:13 +02:00
Andreas Schildbach
6133dccc21 VersionMessage: deprecate isPingPongSupported() and ProtocolVersion.PONG
Our minimum version is at 70000 already.
2023-04-03 16:20:02 +02:00
Andreas Schildbach
fccb164c90 BlockChainTest: remove TWEAKABLE_TESTNET from badDifficulty()
The max target aspect is tested by the `difficultyTransitions*()` tests
already.
2023-04-03 15:54:12 +02:00
Andreas Schildbach
ce10061510 BlockChainTest: replace difficultyTransitions() by five individual tests
These tests use `MainNetParams` and `SigNetParams`, but not `UnitTestParams`.
2023-04-03 15:54:12 +02:00
Andreas Schildbach
c1e83e53c4 AbstractBlockChain: when cloning a transaction don't loop through MessageSerializer 2023-04-03 10:31:54 +02:00
Andreas Schildbach
a26216fb50 FakeTxBuilder: use roundTripTransaction() helper in createFakeDoubleSpendTxns() too 2023-04-03 10:24:23 +02:00
Andreas Schildbach
d1b96fbee4 FakeTxBuilder: fix accidental use of deprecated method 2023-04-03 10:18:32 +02:00
Sean Gilligan
eb8deb71da Wallet: calculate isTransactionMature() functionally
Also remove redundant check for `getConfidenceType() == BUILDING` and improve
the JavaDoc.
2023-04-03 08:29:52 +02:00
Andreas Schildbach
d684c2cfe3 FakeTxBuilder: use throwaway key rather than address in createFakeTx()
Addresses are expensive to create, as we need to know a network they are created for.
2023-04-02 17:59:27 +02:00
Andreas Schildbach
a2c242cbfe FakeTxBuilder: use throwaway key rather than address in createFakeDoubleSpendTxns()
Addresses are expensive to create, as we need to know a network they are created for.
2023-04-02 17:39:39 +02:00
Andreas Schildbach
8a047d48b9 FakeTxBuilder: don't create unnecessary transaction in createFakeBlock() 2023-04-02 17:36:26 +02:00
Andreas Schildbach
c309994e99 FakeTxBuilder: don't create unnecessary transaction in makeSolvedTestBlock() 2023-04-02 17:29:41 +02:00
Andreas Schildbach
16da4f8ccf Block: add rough JavaDoc to all createNextBlock() methods 2023-04-02 16:57:35 +02:00
Andreas Schildbach
318ead0a74 BitcoinNetworkParams: improve logging if max difficulty target has been hit 2023-04-02 12:55:07 +02:00
Andreas Schildbach
c60c612107 DefaultCoinSelector: require network for constructor
This is so that the special handling for regtest network can work in future.
2023-04-02 01:28:44 +02:00
Andreas Schildbach
472af481cc Block: log warning if solve() runs a bit long 2023-04-02 00:38:23 +02:00
Andreas Schildbach
7879f24164 DefaultCoinSelector, AllowUnconfirmedCoinSelector: change return type of get() to CoinSelector 2023-04-02 00:27:36 +02:00