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
Andreas Schildbach
c2cabead9a
TransactionConfidence: rename lastBroadcastTime()
method from getLastBroadcastTime()
2023-03-18 11:11:05 +01:00
Andreas Schildbach
9ec245c259
Objects: migrate entire codebase to requireNonNull()
from Guava Precondition.checkNotNull()
...
This has the added benefit of exception messages being evaluated on demand.
2023-03-16 20:12:28 +01:00
Andreas Schildbach
006c00ac35
TestWithNetworkConnections: pick random TCP bind ports for each test instance
...
This will hopefully reduce spurious test failures due to already bound ports.
2023-03-10 23:43:14 +01:00
Andreas Schildbach
7e70541658
PeerGroup: migrate vConnectTimeout
field to java.time
API
2023-03-10 22:32:47 +01:00
Andreas Schildbach
54754e14e9
EncryptableItem, ECKey, DeterministicKey, DeterministicSeed: migrate creationTime
field to java.time
API
2023-03-10 09:28:27 +01:00
Sean Gilligan
3023947df8
ByteUtils: move to o.b.base.internal
...
We don't consider ByteUtils to be part of our external API.
2023-03-10 01:28:23 +01:00
Andreas Schildbach
92ee36848c
DeterministicSeed: introduce static constructors meant for external consumers
...
* native constructors that were meant to be called by consumers now have static equivalents
* all native constructors are discouraged from being used by a JavaDoc comment
* one constructor that wasn't meant to be used by consumers is switched to private access
* tests and tools that resemble consumers are updated to use the new API
Note: although most native constructors are now deprecated, we're not using
annotations because we're still calling them.
2023-03-10 00:53:35 +01:00
Andreas Schildbach
46dcfc6bda
TestWithNetworkConnections: ask Wallet for an Address right away
...
Previously, it was asking for a key and converted manually.
2023-03-08 17:29:51 +01:00
Andreas Schildbach
16c90d2891
TimeUtils: migrate mock clock to java.time
API
...
* Migrate `setMockClock()` parameters to Instant
* Migrate `rollMockClock()` parameters to Duration
* Rename to `clearMockClock()` from `resetMocking()`
* Use `Clock` internally to provide the time
2023-03-08 16:20:48 +01:00
Andreas Schildbach
6eed19d449
PeerTest, TransactionBroadcastTest: clear the mock clock after some tests that use it
2023-03-07 16:08:40 +01:00
Andreas Schildbach
d1e2e71bb5
TransactionConfidence: migrate lastBroadcastedAt
field to java.time
API
2023-03-07 00:41:55 +01:00
Andreas Schildbach
310b93be4e
Peer, PeerGroup: migrate fastCatchupTime
field to java.time
API
2023-03-06 09:50:07 +01:00
Andreas Schildbach
913f5ac8c6
PeerDiscovery: migrate getPeers() to java.time
API
2023-03-03 00:10:35 +01:00
Andreas Schildbach
d1aa4de677
Block: migrate time
field to java.time
API
...
The precision of Bitcoin time is only a second, so we need to
truncate any surplus precision to avoid rounding errors in the
PoW verification.
2023-03-02 23:32:45 +01:00
Sean Gilligan
17abffa04b
Peer: deprecate ping() and replace with sendPing()
...
1. Returns Duration rather than long
2. Uses CompletableFuture rather than ListenableCompletableFuture
I've also changed the error-handling a little. Instead of throwing
a ProtocolException (RuntimeException) if PingPong isn't supported
the exception is set in the CompletableFuture. We don't have anything
catching this exception, so wrapping it in the CompletableFuture seems
like a safe move.
2023-03-02 18:50:16 +01:00
Sean Gilligan
916989a7cd
ByteUtils: replace HEX (Guava BaseEncoding) with with own implementation
...
* Deprecate ByteUtils.HEX
* Migrate usages to new ByteUtils.formatHex() and ByteUtils.parseHex()
* Direct use of Guava BaseEncoding in tests that use some specific
features of BaseEncoding that aren't provided by new methods.
2023-03-02 15:16:06 +01:00
Andreas Schildbach
2eb7278d04
core, integration-test: migrate usage of Guava Stopwatch
to java.time
API
2023-03-01 13:21:30 +01:00
Sean Gilligan
d86406ab2e
TimeUtils: move (mock) time utils from o.b.core.Utils to new class
2023-02-27 19:32:50 +01:00
Sean Gilligan
484b7185d4
VarInt: move to o.b.base package
2023-02-24 11:24:58 +01:00
Sean Gilligan
1b0ac02eed
ECKey, DumpedPrivateKey, EncodedPrivateKey: move to o.b.crypto package
...
Also move associated tests and test resources.
2023-02-24 10:49:35 +01:00
Sean Gilligan
d354bc13ce
Address, LegacyAddress, SegwitAddress, AddressParser: move to o.b.base
...
* Move related tests too
* Update imports in referencing classes
2023-02-16 22:50:02 +01:00
Andreas Schildbach
a480bc3281
TransactionBroadcastTest: always compare txId with a txId
2023-02-09 14:39:34 +01:00
Andreas Schildbach
27cc40a301
build.gradle: update EasyMock to 5.1.0
2023-01-29 21:52:41 +01:00
Andreas Schildbach
5a43d69775
build.gradle: update equalsverifier to 3.11
2022-11-14 08:24:23 +01:00
Andreas Schildbach
a9fcec648d
build.gradle: update EasyMock to 5.0.1
2022-11-14 08:24:23 +01:00
Sean Gilligan
9dcebb1975
ForwardingServiceTest: new test for starting up and shutting down ForwardingService
...
Because the tests can use the network, the tests are @Disabled by default.
2022-08-14 11:43:59 +02:00
Sean Gilligan
f59dc54ac8
Address: construct with and store Network, rather than NetworkParametesr
...
LegacyAddress, SegwitAddress: replace static factories that take NetworkParameters
* Add static factory methods that take `Network`
* Deprecate static factory methods that take `NetworkParameters`
* Add `Networks` support to `NetworkParameters.of(Network)`
* Update all usages to use the new methods
2022-08-11 02:40:33 +02:00
Andreas Schildbach
55d1919227
Address, LegacyAddress, SegwitAddress: migrate all usages of deprecated fromKey() to ECKey.toAddress()
2022-08-11 01:49:10 +02:00
Andreas Schildbach
d0420cbcd0
PeerTest: use TestNet3Params, rather than UnitTestParams
2022-08-02 15:46:25 +02:00
Andreas Schildbach
4d1e8d659e
TransactionBroadcastTest: use TestNet3Params, rather than UnitTestParams
2022-08-02 15:16:57 +02:00
Andreas Schildbach
1f10855462
FilteredBlockAndPartialMerkleTreeTest: use TestNet3Params, rather than UnitTestParams
2022-08-02 15:14:35 +02:00
Andreas Schildbach
c56fab863b
Context: introduce relaxProofOfWork
property
...
This allows unit-tests to disable enforcement of proof of work, so that fake blocks
can be created and solved in short time.
2022-08-01 19:07:07 +02:00
Andreas Schildbach
2e651c35b7
FilteredBlockAndPartialMerkleTreeTest: simplify test wallet creation
2022-08-01 14:24:17 +02:00
Andreas Schildbach
ae63dfb561
FilteredBlockAndPartialMerkleTreeTest: rewrite most assertTrue() as assertEquals()
2022-08-01 14:08:23 +02:00
Sean Gilligan
295ce50782
TransactionBroadcast: add broadcastOnly(), broadcastAndAwaitRelay() deprecate broadcast()
2022-07-31 12:28:18 +02:00
Sean Gilligan
900af2bde9
build.gradle: update JUnit 5 to 5.9.0
2022-07-28 20:50:06 +02:00
Andreas Schildbach
e12ad507ba
WalletAppKitTest: fix using wrong annotation for disabling tests
2022-07-28 20:01:02 +02:00
Sean Gilligan
6b131a7780
WalletAppKitTest: new integration-test for WalletAppKit
2022-07-28 19:34:35 +02:00
Andreas Schildbach
fb90c4458d
Context: remove network parameters
...
This is the first step in the goal of making Context optional again,
using it only for configuration of a test environment.
2022-07-14 01:59:49 +02:00
Andreas Schildbach
50ccb6b8fc
Network: rename MAIN to MAINNET and TEST to TESTNET
...
The old, shorter names can be used as an alternate name so they will still be accepted for user-facing input.
2022-07-13 22:04:31 +02:00
Sean Gilligan
b8729f2fbd
Network: rename to BitcoinNetwork
...
This is done in preparation for introducing a `Network` interface as a parent,
coming in a future commit.
2022-06-27 12:11:25 +02:00
Sean Gilligan
bfa6536942
org.bitcoinj.base: move Network to base
2022-06-26 20:05:09 +02:00
Andreas Schildbach
76c8d71e44
Context: fix implicit context propagation by constructor
...
We used to do this a long time ago, but switched the codebase to explicit propagation.
Generally, constructors should not have any side-effects.
2022-06-26 17:09:15 +02:00
Andreas Schildbach
05394641ce
TestWithNetworkConnections: remove unused context
field
2022-06-26 17:05:47 +02:00
Sean Gilligan
a0b0392093
NetworkParameters: depend on Network enum, rather the reverse
...
This change makes NetworkParameters use and depend upon Network instead
of the reverse. This will allow Network to be moved to `base`.
Define `UnitTestParams` as being on the `TEST` network. We must choose
a `Network` property for `UnitTestParams` and I have learned through trial-and-error
that `TEST` is the correct choice.
2022-06-24 12:30:40 +02:00
Sean Gilligan
0645a835de
org.bitcoinj.base: move Script.ScriptType to a top level type in base
2022-06-22 18:13:34 +02:00
Sean Gilligan
93cc0ac9c5
org.bitcoinj.base: move Sha256Hash and byte/math Utils members to base
...
* move o.b.core.Sha256Hash to o.b.base.Sha256Hash
* move byte and math utility methods from o.b.core.Utils to a new
o.b.base.ByteUtils class
2022-06-22 17:40:50 +02:00
Sean Gilligan
84e737acdf
org.bitcoinj.base: introduce new package that provides fundamental types with minimal dependencies
...
This also moves Coin, Fiat, its parent Monetary and the related MonetaryFormat into the new base package.
See the provided package-info.java for details.
2022-06-21 19:25:47 +02:00
Sean Gilligan
6d70c60bca
PeerTest: static import of FakeTxBuilder methods
2022-05-31 14:01:42 +02:00
Sean Gilligan
8800840e7e
integration-test: move tests derived from TestWithNetworkConnections to integration-test submodule
2022-05-31 13:56:38 +02:00
Sean Gilligan
6bd2785b64
integration-test: add support for "Vintage" tests
2022-05-24 18:22:28 +02:00
Sean Gilligan
c5fd900346
WalletAccountPathTest: use Wallet.fromSeed() to simplify private createWallet()
2022-05-03 20:37:56 +02:00
Sean Gilligan
3a0060461f
KeyChainGroupStructure: Deprecate DEFAULT structure
...
Deprecates DEFAULT and uses BIP32 internally where DEFAULT
had been used before.
This makes the code more clear. I think it makes sense to be
explicit when specifying a KeyChainGroupStructure and not have
a DEFAULT symbol (which implies the default might change.)
2022-05-01 22:05:47 +02:00
Sean Gilligan
8ade47d97a
WalletAccountPathTest: create wallets in temp dir and verify account paths
2022-04-29 21:08:45 +02:00
Sean Gilligan
756e502580
WalletLoadTest: add an assert for accountPath
2022-04-29 00:14:18 +02:00
Sean Gilligan
a6e5c88ce8
build.gradle: add detailed deprecation warnings to all modules
2022-04-19 10:07:55 +02:00
Sean Gilligan
b0a5662719
WalletLoadTest: add as a first integration test
2022-04-13 20:22:37 +02:00
Sean Gilligan
6ea02d1569
Add integration tests subproject: integration-test
...
* JUnit 5 (API & Engine)
* Tests compile/run as JDK 11+
* Tests require Gradle 4.6+
2022-04-12 15:19:34 -07:00