Commit Graph

4504 Commits

Author SHA1 Message Date
Andreas Schildbach
7879f24164 DefaultCoinSelector, AllowUnconfirmedCoinSelector: change return type of get() to CoinSelector 2023-04-02 00:27:36 +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
Andreas Schildbach
ff6499baab HugeDeclaredSizeTransaction: in constructor send to a throwaway keys rather than addresses
Addresses are expensive to create, as we need to know a network they are created for.
2023-04-01 23:25:59 +02:00
Andreas Schildbach
cd57fea864 DefaultCoinSelector, AllowUnconfirmedCoinSelector: remove singleton pattern
Instantiating these classes is cheap, as they're stateless. And we
only do that once per `Wallet` instance.
2023-04-01 22:56:42 +02:00
Andreas Schildbach
ac2e244bc8 Block: make verify*() static helper methods 2023-04-01 22:52:13 +02:00
Andreas Schildbach
cf8715eb4b Transaction: make verify() a static helper method 2023-04-01 22:52:13 +02:00
Andreas Schildbach
3ad4879e40 FakeTxBuilder: in createFakeCoinbaseTx() send to a throwaway key rather than address
Addresses are expensive to create, as we need to know a network they are created for.
2023-04-01 21:48:30 +02:00
Andreas Schildbach
582dd0797c FakeTxBuilder: deduplicate code in makeSolvedTestBlock() variants 2023-04-01 21:36:40 +02:00
Andreas Schildbach
e5fa63eda4 FakeTxBuilder: simplify roundTripTransaction() 2023-04-01 21:27:45 +02:00
Andreas Schildbach
b68f81f3b4 PaymentSession: don't validate the network of transactions in payment message
It's up to the caller to not mix networks.
2023-04-01 21:17:30 +02:00
Andreas Schildbach
cd781286e6 Wallet, SendRequest: get NetworkParameters from the wallet, not from a transaction 2023-04-01 21:09:15 +02:00
Andreas Schildbach
776dbc68f9 TimeUtilsTest: make sure the mock clock isn't set when entering the tests 2023-04-01 21:04:10 +02:00
Andreas Schildbach
124ddca53a TransactionTest: don't create global transaction object for each test
It makes tests more self-contained, and only about a third of
the tests use the global transaction.
2023-04-01 19:57:20 +02:00
Andreas Schildbach
e347ceba66 TransactionOutput: fix braces gone wrong 2023-04-01 19:47:15 +02:00
Andreas Schildbach
1c04dd94e7 TransactionOutput: fix NullPointerException in toString() 2023-04-01 19:41:11 +02:00
Andreas Schildbach
8b663363ef Transaction: move isMature() to Wallet.isTransactionMature()
That method is only needed in `Wallet`, so it's good to have it there.
On top of that, Wallet will be able to provide `NetworkParameters`
for a long time.
2023-04-01 17:14:39 +02:00
Andreas Schildbach
a61761c5ab BlockChainTest: use TestNet3Params exclusively, except two tests
`difficultyTransitions()` uses `UnitTestParams` only.
`estimatedBlockTime()` uses `MainNetParams` only.
2023-04-01 14:58:00 +02:00
Andreas Schildbach
47ea55e1a6 BlockChainTest: rewrite assertions in coinbaseTransactionAvailability() to not use coinbaseTransaction
Actually, get rid of global `coinbaseTransaction` entirely.
2023-04-01 14:29:26 +02:00
Andreas Schildbach
97e23f77ad BlockChainTest: rewrite assertions in duplicates() to not use block
Actually, get rid of global `block` entirely.
2023-04-01 13:53:09 +02:00
Andreas Schildbach
ed46622bbf BlockChainTest: rename unitTestChain and unitTestStore from generic names
This should make it more transparent which chain and store is used
in tests.
2023-04-01 12:57:35 +02:00
Andreas Schildbach
7687d37fcb BlockChainTest: inline a local variable 2023-04-01 12:41:48 +02:00
Andreas Schildbach
f891db1bda BlockChainTest: inline method resetBlockStore()
It is only used once.
2023-04-01 12:39:09 +02:00
Andreas Schildbach
770fcb0f03 BlockChainTest: use MainNetParams only in the one test that need it 2023-04-01 12:01:50 +02:00
Andreas Schildbach
c4afd902da BlockChainTest: use TweakableTestNet3Params only in the one test that need it 2023-04-01 11:52:39 +02:00
Andreas Schildbach
7b8b8650bc BlockChainTest, ChainSplitTest, ECKeyTest: use assertFalse(condition) rather than assertTrue(!condition) 2023-04-01 11:40:31 +02:00
Andreas Schildbach
4fb4fe2380 BlockChainTest: flip expected value to the front for assertEquals() 2023-04-01 11:35:58 +02:00
Andreas Schildbach
a2abdfa136 TransactionTest: migrate remaining assertTrue()/assertFalse() from assertEquals() 2023-04-01 10:48:29 +02:00
Andreas Schildbach
efdef581ee Transaction: make network in toString() an optional parameter
If it isn't provided, standard output scripts cannot be converted to
addresses.
2023-04-01 10:27:43 +02:00
Andreas Schildbach
44b0ddeb59 Transaction: remove toHexString()
This makes a scary assumption on the format being used (segwit or not).
2023-04-01 10:25:15 +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
0a5560dc4c Transaction: make allowWitness() static and let it decide on protocolVersion only
It doesn't need an entire `MessageSerializer`.
2023-03-31 22:07:15 +02:00
Andreas Schildbach
f4e7f03c0b Transaction: remove method calcLength()
It is not used any more.
2023-03-31 21:51:15 +02:00
Andreas Schildbach
880b4aff8e Transaction: use getMessageSize() to determine size in toString()
It's quicker, as for this class there is an optimization without
serializing the entire message.
2023-03-31 21:36:59 +02:00
Sean Gilligan
23d1ce97b5 WalletTool: use net over params where possible
Note that `params` is initialized from `net`.
2023-03-31 21:01:16 +02:00
Sean Gilligan
04ff5335cf WalletTool: separate try block for setup/peerGroup.start in send()
This makes it more clear which operations throw `BlockStoreException`
and which throw `ExecutionException` or `InterruptedException`.
2023-03-31 20:58:01 +02:00
Sean Gilligan
1e088596df WalletTool: remove nested try in send()
This makes the code much more readable as you can see which operations
throw which exceptions and how they are handled.
2023-03-31 20:56:03 +02:00
Sean Gilligan
f41e5f2e1e WalletTool: remove explicit handling of KeyCrypterException from send()
`KeyCrypterException` is a runtime exception so there is no need
to catch and rethrow wrapped as a `RuntimeException`.
2023-03-31 20:52:34 +02:00
Andreas Schildbach
f588b8e945 TransactionInput, TransactionOutput: make setParent() protected
Rather than using this method, we should prefer passing the parent
transaction via constructor.
2023-03-31 20:25: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
Sean Gilligan
820b671dbc StoredBlock: make deserializeCompact() use serializer
...not `params`.
2023-03-31 18:35:58 +02:00
Sean Gilligan
98d4df5fe5 BlockChainTest: reduce usage of UNITTEST
Use `TESTNET` or `BitcoinNetwork.TESTNET` for `Transaction`, `Address` and
`Wallet`.
2023-03-31 16:06:58 +02:00
Andreas Schildbach
a3f82d6bae TransactionInput: remove helper duplicateDetached()
It is only used from a test, and that test works just as well by
just copying the reference.
2023-03-31 15:58:23 +02:00
Andreas Schildbach
81adac9f1e Wallet: fix usage of wrong TransactionInput constructor 2023-03-31 14:21:57 +02:00
Sean Gilligan
cc901ee863 BlockStore: remove getParams() from the hierarchy
Nothing in bitcoinj is using this method and applications should not
be getting their `NetworkParameters` from their storage layer.
2023-03-31 09:57:29 +02:00
Sean Gilligan
99f6860ceb UTXOProvider: replace getParams() with network()
Since this only affects FullPrunedBlockStore, this change doesn't
need deprecation.
2023-03-31 09:54:59 +02:00
Andreas Schildbach
24e030ae74 Transaction, TransactionInput, TransactionOutput, PartialMerkleTree: use readLengthPrefixedBytes() where appropriate 2023-03-31 01:57:48 +02:00
Sean Gilligan
786a1e1953 Script: migrate to Network from NetworkParameters
Provide deprecated methods for compatibility.
2023-03-31 01:23:27 +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
5d466ea57c Peer: fix default of the minimum protocol version of remote peers
It should be `NetworkParameters.ProtocolVersion.MINIMUM` (currently 70000).
2023-03-30 23:41:06 +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