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
abdba75019
Block: simplify parse()
-parseTransactions()
interaction
2023-03-21 22:54:44 +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
7303043f37
ByteUtils: rename read helpers that read from streams
2023-03-21 17:46:26 +01:00
Andreas Schildbach
d89718aaf6
ByteUtils: add reading from and writing to ByteBuffer
...
This gets rid of a lot of manual bit shuffling.
2023-03-21 17:32:05 +01:00
Andreas Schildbach
c372a87ea4
ByteUtils: properly document all read and write helpers
2023-03-21 17:18:51 +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
f516c25524
HexFormat: small performance enhancement for formatHex()
2023-03-20 16:01:29 +01:00
Sean Gilligan
466444ebf7
Peer: calculate lastPing
and averagePing
when Pong is received
...
This eliminates the need for locking in the getters.
The fields are marked as volatile so that when written, they will be
flushed to "main memory".
2023-03-20 00:34:00 +01:00
Andreas Schildbach
aab3e32624
Message: remove length
arguments from constructors of the hierarchy
...
There was never a case where `length` wasn't equal to `payload.length`,
which is supplied by the same constructors. This also does away with
a couple of constructor variants.
2023-03-19 23:58:06 +01:00
Andreas Schildbach
8faf61ae0c
Peer: fix JavaDoc about number of buckets
2023-03-19 23:17:00 +01:00
Sean Gilligan
78cc85dc1e
Peer: replace pingIntervals
array with Deque
2023-03-19 22:57:01 +01:00
Sean Gilligan
98c3a14a54
Peer: reimplement getPingTime()
and getLastPingTime()
in a functional way
2023-03-19 22:51:15 +01:00
Andreas Schildbach
04c72ce003
Peer: migrate pingIntervals
field to java.time
API
2023-03-19 20:15:00 +01:00
Andreas Schildbach
dce930f487
Message: get rid of the readVarInt(offset)
variant
...
None of the other helpers have this.
2023-03-19 19:09:17 +01:00
Andreas Schildbach
d222efd6de
ParseByteCacheTest: rewrite arrayContains()
helper
...
The previous implementation was based on hex strings and was prone
to raising a false positive when matching at an uneven hex position.
This also adds a test.
2023-03-19 18:23:58 +01:00
Andreas Schildbach
979490ad97
UnsafeByteArrayOutputStream: remove this performance optimisation
...
Migrate all usages of `UnsafeByteArrayOutputStream` to `ByteArrayOutputStream`.
2023-03-19 17:55:05 +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
12b78a6d9b
ParseByteCacheTest: parse test data using parseHex()
...
Gets rid of Guava BaseEncoding.
2023-03-19 16:59:59 +01:00
Andreas Schildbach
91c706ca33
TransactionTest: make testOptimalEncodingMessageSize()
a more meaningful
2023-03-19 16:44:01 +01:00
Andreas Schildbach
d3ba6c03ec
Message: check that payload is retained in retain mode
2023-03-19 14:36:40 +01:00
Andreas Schildbach
43123396c0
ParseByteCacheTest: rename variable serializer
from bs
...
The previous name was just too confusing in company with "bos"
and the like.
2023-03-19 11:19:32 +01:00
Sean Gilligan
0f216d328f
Block, BitcoinNetwork, BitcoinNetworkParams, KeyChainGroupTest: use _000
in constants to improve readability
2023-03-18 21:00:18 +01:00
Andreas Schildbach
06e031a51e
LockTime: make native constructors private
2023-03-18 20:33:38 +01:00
Andreas Schildbach
e11fa0686f
Transaction: rename estimateUnlockTime()
method from estimateLockTimeInstant()
2023-03-18 11:36:47 +01:00
Andreas Schildbach
178fc0ab8f
Script: rename creationTime()
method from getCreationTime()
2023-03-18 11:29:07 +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
7090c6a152
PaymentSession: rename time()
method from getTime()
2023-03-18 11:06:17 +01:00
Andreas Schildbach
5ae145e6b4
PaymentSession: rename expires()
method from getExpiresInstant()
2023-03-18 11:03:17 +01:00
Andreas Schildbach
f583cea035
Wallet: rename keyRotationTime()
method from getKeyRotationTimeInstant()
2023-03-18 10:58:43 +01:00
Andreas Schildbach
a68f7f958c
KeyChainGroup: rename earliestKeyCreationTime()
method from getEarliestKeyCreationTimeInstant()
2023-03-18 10:54:42 +01:00
Andreas Schildbach
5db4e1eadd
PeerFilterProvider: rename earliestKeyCreationTime()
method from getEarliestKeyCreationTimeInstant()
2023-03-18 10:47:41 +01:00
Andreas Schildbach
ed716bc4ba
KeyChain: rename earliestKeyCreationTime()
method from getEarliestKeyCreationTimeInstant()
2023-03-18 10:43:59 +01:00
Andreas Schildbach
b644886545
PeerAddress: rename time()
method from getTimeInstant()
2023-03-18 10:38:51 +01:00
Andreas Schildbach
c0072ccb01
Transaction: rename updateTime()
method from getUpdateTimeInstant()
2023-03-18 10:35:27 +01:00
Andreas Schildbach
06f2367069
ExponentialBackoff: rename retryTime()
method from getRetryInstant()
2023-03-18 10:31:54 +01:00
Andreas Schildbach
516acd51c6
Wallet: rename lastBlockSeenTime()
method from getLastBlockSeenTimeInstant()
2023-03-18 10:27:12 +01:00
Andreas Schildbach
e6e4745e1a
Block: rename time()
method from getTimeInstant()
2023-03-18 10:22:26 +01:00
Andreas Schildbach
31123bea3d
Preconditions: add generic check()
that allows to supply a custom exception
...
Also adds tests.
2023-03-18 00:15:13 +01:00
Andreas Schildbach
80178c011c
MonetaryFormat: use BigDecimal
for converting satishos to number and decimals
...
This gets rid of Guava `LongMath`. It also adds comments to the individual
conversion steps.
2023-03-17 18:30:13 +01:00
Andreas Schildbach
9606900551
MonetaryFormat: rename variable and argument decimalShift
from potentialDecimals
...
This also adds documentation about what this number means.
2023-03-17 15:40:06 +01:00
Andreas Schildbach
09d6973b46
MonetaryFormat: rename variable and argument maxVisibleDecimals
from maxDecimals
...
This also adds documentation about what this number means.
2023-03-17 15:09:27 +01:00
Sean Gilligan
48746364fc
MonetaryFormat: encapsulate decimal conversion in private satoshisToDecimal()
...
This is a reasonable standalone refactoring, and is
being made in preparation for migration away from a
dependency on Guava's LongMath.
2023-03-16 22:18:28 +01:00
Sean Gilligan
b73730a1af
TimeLock: introduce HeightLock
and TimeLock
subtypes
...
This is to support pattern-matching in JDK 16 and later.
2023-03-16 21:59:05 +01:00
Andreas Schildbach
dca54e0621
Preconditions: replace Guava checkArgument()
and checkState()
in base
with own implementation
...
This has the added benefit of exception messages only being evaluated on demand.
2023-03-16 21:42:46 +01:00
Sean Gilligan
9ab5653fcf
Script: use LockTime.THRESHOLD
instead of deprecated Transaction.LOCKTIME_THRESHOLD
2023-03-16 21:38:52 +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
36c82a3cfb
SegwitAddressTest: replace Guava ToStringHelper with custom string building
2023-03-16 17:10:48 +01:00
Andreas Schildbach
202bb1f8fb
LockTime: wrap lock time values
...
This improves readability and type safety.
2023-03-15 21:45:09 +01:00
Andreas Schildbach
3b7c35f4cb
Script: minor spelling fix for "lock time"
2023-03-15 16:44:33 +01:00
Andreas Schildbach
5aa2c2e065
Block: wrap hashes with Sha256Hash
in buildMerkleTree()
2023-03-15 02:25:11 +01:00
Andreas Schildbach
1e883a6423
ListMessage: move arrayLen
field to local variable
2023-03-15 01:32:38 +01:00
Andreas Schildbach
35b7532e11
BlockChainTest: use DateTimeFormatter.ISO_INSTANT
to parse an instant
2023-03-14 10:12:13 +01:00
Andreas Schildbach
0e871e9af4
Block: use Date.from()
to convert from Instant
2023-03-14 09:55:25 +01:00
Andreas Schildbach
de9c39b35a
TimeUtils: migrate currentTime()
method to java.time
API
2023-03-14 02:56:52 +01:00
Andreas Schildbach
1835370e04
VersionMessage: migrate time
field to java.time
API
2023-03-14 02:13:45 +01:00
Andreas Schildbach
7788f6cfaf
TestNet3Params: migrate testnetDiffDate
constant to java.time
API
2023-03-14 02:07:10 +01:00
Andreas Schildbach
79477ff04a
FakeTxBuilder: migrate createFakeBlock()' methods to
java.time` API
2023-03-14 01:56:26 +01:00
Andreas Schildbach
168ff75bd1
TimeUtils: migrate dateTimeFormat()
method to java.time
API
2023-03-14 01:32:59 +01:00
Andreas Schildbach
9eef9094b5
BriefLogFormatter: migrate timestamp formatting to java.time
API
...
This also changes the time zone of timestamps to UTC and adds a test.
2023-03-13 22:05:27 +01:00
Andreas Schildbach
65afcf076d
Transaction: migrate estimateLockTime()
method to java.time
API
2023-03-13 22:00:47 +01:00
Andreas Schildbach
f7fffc6af2
BlockingClient, ConnectionHandler, NioClientManager, NioServer: properly import Logger
2023-03-13 17:56:16 +01:00
Andreas Schildbach
01821f2ba5
Transaction: add and extend comments for the predefined comparators
2023-03-11 12:14:13 +01:00
Andreas Schildbach
d25c77cf24
Peer, NioClient, BlockingClientManager: fix some JavaDoc errors
2023-03-10 22:52:43 +01:00
Andreas Schildbach
7e70541658
PeerGroup: migrate vConnectTimeout
field to java.time
API
2023-03-10 22:32:47 +01:00
Andreas Schildbach
034277fae0
Transaction: reimplement SORT_TX_BY_UPDATE_TIME
and SORT_TX_BY_HEIGHT
comparators in a functional way
2023-03-10 22:12:29 +01:00
Andreas Schildbach
95549b4754
Wallet: migrate updateTime
field to java.time
API
2023-03-10 17:21:53 +01:00
Andreas Schildbach
85cc162642
PeerGroup: migrate connection retry logic to java.time
API
2023-03-10 17:19:25 +01:00
Andreas Schildbach
da8b9ce434
Wallet: migrate lastBlockSeenTime
field to java.time
API
2023-03-10 16:47:38 +01:00
Andreas Schildbach
be0b2b46b8
PaymentSession: migrate getters to java.time
API
2023-03-10 16:43:09 +01:00
Andreas Schildbach
9081d0fd2d
WalletTest: reduce false positive rate in marriedKeychainBloomFilter()
...
This will hopefully reduce spurious test failures.
2023-03-10 15:21:40 +01:00
Andreas Schildbach
63ed4275ac
SPVBlockStoreTest: increase threshold for performanceTest() to 5 seconds
...
This will hopefully reduce spurious test failures.
2023-03-10 14:50:03 +01:00
Andreas Schildbach
c205c67127
KeyChainGroupTest: fix spurious test failure of bloomFilterForMarriedChains()
...
This was caused by expected bloom filter false positives.
2023-03-10 14:06:19 +01:00
Andreas Schildbach
fb2dad432b
WalletTest: fix spurious test failure of witnessTransactionGetFeeTest()
...
This was caused by a shorter than expected signature encoding, which
can happen in rare cases.
2023-03-10 13:55:30 +01:00
Andreas Schildbach
1484ff595a
DefaultRiskAnalysis: don't try to risk-analyze if wallet has not seen any blocks
2023-03-10 10:27:19 +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
2c28cadda5
MnemonicCode: in toMnemonic()
throw unchecked rather than checked exception
...
When converting from entropy to mnemonic with `toMnemonic()`, a `MnemonicLengthException`
was thrown for entropies with invalid length. This is bad for two reasons:
- it is a checked exception, and the method will not be called with user input
- misleading exception name, the error is about the entropy length not the mnemonic
We now throw a `RuntimeException` instead. The resulting simplification of
calling code can be witnessed in `DeterministicSeed`.
2023-03-09 21:44:31 +01:00
Andreas Schildbach
566cd102b2
ScriptPatternTest: move p2shScriptHashFromKeys() from LegacyAddressTest
2023-03-09 20:51:26 +01:00
Andreas Schildbach
04d4443d08
LegacyAddressTest: separate test into p2shScriptHashFromKeys()
and p2shAddressFromScriptHash()
2023-03-09 20:51:26 +01:00
Andreas Schildbach
a61da4fff6
Script: migrate creationTime
field to java.time
API
2023-03-09 15:09:07 +01:00
Andreas Schildbach
9ba34fc2ed
DeterministicKeyChain: convert if-else in getEarliestKeyCreationTimeInstant() to terniary operator
2023-03-08 20:41:51 +01:00
Andreas Schildbach
2cd239eee0
KeyChainGroup: convert if-else in getEarliestChainsCreationTime() to terniary operator
2023-03-08 20:41:51 +01:00
Andreas Schildbach
18898f4fc5
Wallet, KeyChain, KeyChainGroup, PeerFilterProvider: migrate getEarliestKeyCreationTime()
methods to java.time
API
2023-03-08 20:41:46 +01:00
Sean Gilligan
c41128b4df
AesKey: replace o.bouncycastle.c.p.KeyParameter
...
We were using KeyParameter as a wrapper for a byte[] containing an
AES Key and passing it around our API. This introduced an unnecessary
API dependency on Bouncy Castle. This PR adds an AesKey class
for the same purpose to replace it.
This is a breaking change, but one that should be easy to accommodate.
2023-03-08 18:13:21 +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
Sean Gilligan
7a1c71c319
CryptoUtils: add digestRipeMd160() method, use it to wrap BouncyCastle
2023-03-08 09:46:44 +01:00
Sean Gilligan
fff3b7e837
TransactionWitnessTest: remove unused BouncyCastle import
2023-03-08 09:40:03 +01:00
Sean Gilligan
579a7e986a
CryptoUtils: move onionChecksum() from PeerAddress
2023-03-08 02:04:13 +01:00
Andreas Schildbach
d1e2e71bb5
TransactionConfidence: migrate lastBroadcastedAt
field to java.time
API
2023-03-07 00:41:55 +01:00
Andreas Schildbach
c8904a41bd
AbstractBlockChain: migrate estimateBlockTime()
method to java.time
API
2023-03-07 00:06:35 +01:00
Andreas Schildbach
5a69df0a81
Wallet, KeyChainGroup: migrate keyRotationTime
field to java.time
API
2023-03-06 23:56:49 +01:00
Andreas Schildbach
558f6df127
DownloadProgressTracker: migrate progress()
method to java.time
API
2023-03-06 09:58:48 +01:00
Andreas Schildbach
310b93be4e
Peer, PeerGroup: migrate fastCatchupTime
field to java.time
API
2023-03-06 09:50:07 +01:00
Andreas Schildbach
838b12c046
CheckpointManager: migrate checkpoints
map to java.time
API
2023-03-06 09:39:02 +01:00
Sean Gilligan
b1ede764a7
Wallet: fix JavaDoc error that was breaking JDK 11 build
2023-03-06 09:35:42 +01:00
Sean Gilligan
1853a63f69
DeterministicHierarchy, MnemonicCode: migrate BIPXX_STANDARDISATION_TIME
to java.time
API
...
Deprecate BIPXX_STANDARDISATION_TIME_SECS int constants. Replace with
BIPXX_STANDARDISATION_TIME Instant constants.
2023-03-06 01:24:22 +01:00
Sean Gilligan
8bdc35a32e
Wallet: migrate fromWatchingKeyB58()
and fromSpendingKeyB58()
methods to java.time
API
2023-03-06 00:44:34 +01:00
Andreas Schildbach
99bc95a93d
WalletFiles: migrate delay
field to java.time
API
2023-03-05 22:05:39 +01:00
Andreas Schildbach
d3162a4403
SendRequest: migrate two invocations of deprecated NetworkParameters.fromAddress()
method
2023-03-05 17:50:11 +01:00
Sean Gilligan
f2a7229676
MessageVerifyUtils: move to o.b.crypto.utils
from o.b.utils
...
This class belongs in the crypto module.
2023-03-05 01:06:12 +01:00
Sean Gilligan
848d2d88bb
StreamUtils: move to o.b.base.internal
from o.b.base.utils
2023-03-05 01:02:20 +01:00
Sean Gilligan
8e35390b8a
SegwitAddress: minor simplification in toBech32()
...
Calculate encoding using ternary operator and replace if statement.
2023-03-05 00:49:45 +01:00
Sean Gilligan
b83710a242
SegwitAddress: store witnessProgram
as 8-bits/byte
...
Change the internal storage format from 5-bits/byte (Bech32 intermediate format)
to standard 8-bits/byte.
Remove now unneeded conversions and add conversion in toBech32().
2023-03-05 00:44:06 +01:00
Sean Gilligan
f8ac6b3405
SegwitAddress: store witnessVersion
internally as a short
...
Separate witnessVersion from witnessProgram in private members.
Note that the witnessProgram is still stored in a 5-bit per byte encoding
as it was in the combined byte[]. A future PR will change it to 8-bit per
byte encoding.
2023-03-05 00:40:56 +01:00
Sean Gilligan
f9be0b2a3d
Address: convert to interface
...
* Migrate protected members to subclasses
* Remove constructors
* Migrate hashCode and equals to subclasses
2023-03-05 00:38:55 +01:00
Sean Gilligan
6c84ffec85
ScriptBuilder: cast address to LegacyAddress before calling getHash()
...
In both of these cases we have already checked the ScriptType of the
address and know that it is a LegacyAddress.
2023-03-04 10:08:44 +01:00
Sean Gilligan
4f66bfc462
MessageVerifyUtils: cast P2SH address to LegacyAddress
...
* Change the private compareP2SHScriptHashDerivedFromPubKey() method to
take a LegacyAddress
* In caller cast address (after check for P2SH) to LegacyAddress
2023-03-04 09:58:50 +01:00
Sean Gilligan
9002edbe8f
Base58: move tests to o.b.base
...
These should have been moved when the Base58 class was moved.
2023-03-03 22:45:48 +01:00
Andreas Schildbach
1c380de16d
PeerAddress: migrate time
field to java.time
API
2023-03-03 20:06:34 +01:00
Andreas Schildbach
913f5ac8c6
PeerDiscovery: migrate getPeers() to java.time
API
2023-03-03 00:10:35 +01:00
Andreas Schildbach
35c4fd9025
ExponentialBackoff: migrate to java.time
API
2023-03-02 23:32:45 +01:00
Andreas Schildbach
b356f487e5
PeerGroup: migrate peerDiscoveryTimeout
field to java.time
API
2023-03-02 23:32:45 +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
50caafc8d5
ByteUtils: replace Guava comparator with arrayUnsignedComparator()
...
Replace Guava UnsignedBytes.lexicographicComparator() with
ByteUtils.arrayUnsignedComparator().
2023-03-02 23:00:07 +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
Sean Gilligan
7ee4f334be
Sha256Hash: replace Ints.fromBytes with ByteUtils.readUint32BE
2023-03-02 12:35:38 +01:00
Sean Gilligan
f71b085cd2
VarInt: replace Guava Ints.checkedCast with Math.toIntExact
2023-03-02 12:31:31 +01:00
Sean Gilligan
855b50cd63
Coin: replace LongMath.pow() with hardcode
...
There's no convenient Java built-in for exponentiation
of `long`. And the COIN_VALUE constant is unlikely to ever change.
So we're just going to define it with a `long` literal.
Fortunately Java 7 added the ability to use `_` to group digits.
2023-03-02 12:27:57 +01:00
Sean Gilligan
8325b0aee4
FutureUtils: add failedFuture method
...
As we're migrating from ListenableCompletableFuture to standard
CompletableFuture, we need a failedFuture() method that returns the
standard CompletableFuture object.
TransactionBroadcast already needed this method as it was returning
a ListenableCompletableFuture in one case where a standard
CompletableFuture would be preferred.
This method can be deprecated when we require Java 9.
2023-03-02 12:22:33 +01:00
Sean Gilligan
9e59b0fc79
Sha256Hash: replace Guava io.ByteStreams with Files.readAllBytes
2023-03-02 11:36:53 +01:00
Andreas Schildbach
a40f206e45
Peer: measure ping-pong time using java.time
API
2023-03-01 23:55:44 +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
64dbdd9fcd
base, wallet: migrate Guava LongMath.checked{Add,Subtract,Multiply} to Math.{add,substract,multiply}Exact
2023-02-28 22:06:03 +01:00
Sean Gilligan
0e4bda3cd8
LegacyAddress: replace two core imports with paths in JavaDoc
...
This helps us keep better track of our progress
in migrating away from core.
2023-02-27 22:58:19 +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
6e77dcb433
PlatformUtils: move OS/runtime detection from o.b.core.Utils to new class
2023-02-27 18:34:20 +01:00
micheal swiggs-malmevik
0685bf70e4
BitcoinURI: remove redundant BitcoinNetwork
cast
2023-02-27 16:56:13 +01:00
micheal swiggs-malmevik
cfc3b26a53
BitcoinURI: remove unused parameter addressToken
from parseParameters()
2023-02-27 16:54:02 +01:00
micheal swiggs-malmevik
8e03aee87d
DeterministicKey: remove unused parameter parent
from ascertainParentFingerprint()
2023-02-27 16:38:06 +01:00
micheal swiggs-malmevik
6298651929
DeterministicKeyChain: remove unused parameter baseKey
from initializeHierarchyUnencrypted()
2023-02-27 16:35:24 +01:00
micheal swiggs-malmevik
6e8435e129
Wallet: remove unused parameter originalInputs
from calculateFee()
2023-02-27 16:21:46 +01:00
micheal swiggs-malmevik
135476f71b
Wallet: remove unused parameter avail
from checkBalanceFuturesLocked()
2023-02-27 16:21:08 +01:00
Sean Gilligan
a4e2583b4e
FutureUtils: move to o.b.base.internal package
2023-02-27 12:52:36 +01:00
Sean Gilligan
ebe70e453a
FutureUtils: migrate ListenableCompletableFuture to CompletableFuture
2023-02-27 12:43:02 +01:00
Sean Gilligan
1fa9bff490
ECKey, DeterministicKey: migrate API usages to Network from NetworkParameters
2023-02-27 11:45:05 +01:00
Andreas Schildbach
625adf55ea
DeterministicKey: fix JavaDoc of deprecated serializePrivB58()
2023-02-27 11:40:33 +01:00
Sean Gilligan
232f194a36
DumpedPrivateKey: fix NPE in deprecated fromBase58()
2023-02-27 11:31:59 +01:00
Sean Gilligan
8ba45dd812
CrytoUtils: new internal utils, move sha256hash160() from Utils
2023-02-27 11:25:00 +01:00
Sean Gilligan
03782a4697
InternalUtils: move to o.b.base.internal package
2023-02-24 11:47:59 +01:00
Sean Gilligan
484b7185d4
VarInt: move to o.b.base package
2023-02-24 11:24:58 +01:00
Sean Gilligan
0d3c9780b0
SignatureDecodeException: move to o.b.crypto package
2023-02-24 11:21:11 +01:00
Sean Gilligan
0b865408e6
DRMWorkaround: remove workaround for AES-256 in older Java
...
Android and OpenJDK don't need this and I'm pretty sure that
Oracle JDK 9 and even recent builds of Oracle JDK don't need it either.
2023-02-24 10:55:45 +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
74821e3517
DefaultAddressParser: move from o.b.core to base
2023-02-24 09:45:59 +01:00
Sean Gilligan
aaf83be6f8
LegacyAddressTest, SegwitAddressTest: convert to Network from NetworkParameters
...
Finish conversion from NetworkParameters to Network in the tests. This cleans up
the code, too.
There are still some references to NetworkParameters in LegacyAddressTest:
1. Tests of deprecated methods that can be removed when those methods are removed
2. Tests that need getP2SHHeader() which hasn't moved to Network yet.
2023-02-24 09:33:10 +01:00
Sean Gilligan
10af4cdae9
NetworkParameters: migrate getSegwitAddressHrp() to Network.segwitAddressHrp()
...
Deprecate the old method.
2023-02-22 11:44:30 +01:00
Andreas Schildbach
e27baa1012
DefaultRiskAnalysisTest: fix context not initialized
2023-02-19 12:24:45 +01:00
Andreas Schildbach
bb3fb79f06
Message: deprecate method getHash()
...
It's not implemented anyways and only used as a generalization of some subclass implementations.
2023-02-19 10:56:23 +01:00
Sean Gilligan
a62ec7921e
SegwitAddressTest: add two tests for P2WPKH REGTEST
2023-02-18 00:40:31 +01:00
Sean Gilligan
0acfcb10ec
PeerGroup: migrate constructors argument from NetworkParameters to Network
...
* Add 3 new constructors which take Network
* Deprecate (2 of 3) constructors that take NetworkParameters
* Mark 3-arg NetworkParameters constructor as @VisibleForTesting
2023-02-17 20:21:48 +01:00
micheal swiggs-malmevik
81ddf4f27e
Script: remove deprecated method executeScript()
2023-02-17 20:11:40 +01:00
micheal swiggs-malmevik
54c85b2574
Script: remove a couple of deprecated pattern matchers
...
They had been moved to ScriptPattern.
2023-02-17 20:05:31 +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
Sean Gilligan
49f17929ac
DefaultAddessParser: implement parse*AnyNetwork() methods
2023-02-16 19:48:06 +01:00
Sean Gilligan
e6a4dd4718
Wallet, WalletFiles: improve error handling on save
...
Catch FileNotFound error earlier and provide more informative
exception when it happens.
I discovered this issue running the WalletTool with an invalid directory
path to the wallet file. Before this fix the error/exception message is:
java.io.IOException: No such file or directory
After the fix it is:
java.io.FileNotFoundException: /Users/sean/bitcoinj (wallet directory not found)
2023-02-16 11:48:49 +01:00
micheal swiggs-malmevik
e283a832dd
Message: deprecate unused property recached
and its getter
2023-02-11 12:53:43 +01:00
micheal swiggs-malmevik
1b9b339720
BitcoinSerializer: remove redundant cursor incrementation
2023-02-09 15:40:22 +01:00
micheal swiggs-malmevik
3ff22bdf13
ChildMessage: remove deprecated constructor
2023-02-09 15:33:37 +01:00
Andreas Schildbach
24a94ec981
Peer: make sure to not invoke the unimplemented Message.getHash()
...
This fixes the integration tests which were broken with the previous commit.
2023-02-09 14:37:56 +01:00
micheal swiggs-malmevik
7fa3730dbc
Transaction: remove deprecated methods getHash(), getHashAsString()
2023-02-09 13:58:21 +01:00
micheal swiggs-malmevik
0869228cc4
Peer: remove deprecated method toStringServices()
2023-02-09 12:08:06 +01:00
Andreas Schildbach
2b5c50db25
Transaction: remove deprecated constant MIN_NONDUST_OUTPUT
2023-02-09 11:52:11 +01:00
micheal swiggs-malmevik
6a7ac8e2c7
NetworkParameters: remove deprecated method getMinNonDustOutput()
2023-02-09 11:46:22 +01:00
micheal swiggs-malmevik
ea5de696e8
Message: remove unused method hasMoreBytes()
2023-02-02 13:25:17 +01:00
micheal swiggs-malmevik
1477230f40
Peer: remove unused method isNotFoundMessageSupported()
2023-02-02 12:17:12 +01:00
micheal swiggs-malmevik
3950b88f76
BitcoinSerializer: remove unused parameter checksum
in makeMessage()
2023-02-02 12:13:03 +01:00
Johannes Zweng
56e936d534
SegwitAddress: include length check for Taproot witness programs
2023-01-30 11:47:38 +01:00
Andreas Schildbach
aaeadb52c8
build.gradle: update protobuf-javalite to 3.21.12
2023-01-29 21:59:16 +01:00
Andreas Schildbach
27cc40a301
build.gradle: update EasyMock to 5.1.0
2023-01-29 21:52:41 +01:00
Johannes Zweng
fa2d3b3db6
MessageVerifyUtils: add util for verifying signed messages
...
Since P2SH-P2WPKH addresses do not contain the public itself – but instead
a value derived from a pubkey, namely
RIPEMD160(SHA256(0x00 0x14 <20-byte-pubKeyHash>)) - the verification of
signed messages got a bit more complicated (and different per address
type). To encapsulate this complexity and make it easy to use, this commit
introduces a new util class for verifying signed Bitcoin messages.
It also adds some test vectors partly from other projects implementing
the same functionality to test interoperability, as well as some publicly
known messages and signatures.
2022-12-18 12:01:59 +01:00
Johannes Zweng
070e53889e
ECKey: add BIP 137 support for signing text messages with segwit addresses
...
BIP 137 defined new header byte values for the created signature
when the signature was created with a private key from a segwit
address.
This commit extends the "signMessage(..)" with a new ScriptType argument
(because the value of the signature header since BIP 137 depends on the
address type). This commit keeps the old methods (without the ScriptType
argument), but marks them as deprecated (using P2SH as default, if called
without ScriptType, thus not changing old behaviour).
2022-12-18 12:00:44 +01:00
Johannes Zweng
e4f6dbd866
ECKey: add BIP 137 support for verifying signatures from segwit addresses
...
BIP 137 extended the allowed range of values for the header byte
of signatures (for signatures created from segwit addresses).
This commit reflects these changes and adds the newly allowed
header byte values to ECKey.signedMessageToKey(...).
Also adds test cases verifying signatures created with segwit addresses.
2022-12-18 11:59:57 +01:00
Andreas Schildbach
bc27caaae0
build.gradle: update protobuf-javalite to 3.21.10
2022-12-04 20:03:08 +01:00
Andreas Schildbach
adcba44ae0
SeedPeers: add a constructor for InetSocketAddress
...
The old `int` format for peer addresses is now deprecated, as it doesn't support IPv6.
2022-12-04 13:36:45 +01:00
Andreas Schildbach
fe72abe8fc
SeedPeers: don't throw in getPeers() if service bit filtering is used
...
This brings SeedPeers more in line with the other peer discoveries. There
is no guarantee for filtering.
2022-12-04 13:32:52 +01:00
Andreas Schildbach
3fffeee295
PeerGroup: discover peers via P2P addr
and addrv2
messages
...
Adds peer addresses discovered via P2P to the list of potential peers to connect to.
This is enabled by default if at least one PeerDiscovery is set via addPeerDiscovery(),
and the default can be overridden with setDiscoverPeersViaP2P().
2022-11-21 16:23:39 +01:00
Andreas Schildbach
74d54de1f6
AddressEventListener: new event produced by Peer if an addr
or addrv2
message is received
2022-11-21 15:39:24 +01:00
Andreas Schildbach
15cc61d066
build.gradle: update Jackson to 2.14.0
2022-11-14 08:24:23 +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
Andreas Schildbach
310a3ffc4a
build.gradle: update protobuf-javalite to 3.21.9
2022-11-14 01:05:58 +01:00
Andreas Schildbach
271e9ab018
build.gradle: update BouncyCastle to 1.72
2022-11-14 00:36:16 +01:00
Andreas Schildbach
f367ffa709
PeerAddress: addresses that make use of base32 in hostnames generally do not use padding, so omit it
2022-08-24 15:26:01 +02:00
Sean Gilligan
97590435d7
PeerAddressTest: add placeholder I2P test case to deserializeToString()
2022-08-23 08:11:01 +02:00
Sean Gilligan
b21b10774a
PeerAddressTest: add parameterized deserializeToString test
...
* build.gradle: Add JUnitParams so we can have parameterized tests in existing test
* Add deserializeToString method with three addresses to test
2022-08-23 00:51:39 +02:00
Sean Gilligan
8a2d4c99d2
PeerAddress: create NetworkId enum, define I2P, CJDNS network IDs
...
* Replace hardcoded integer values (e.g. `0x01`) with NetworkId enum.
* Define (currently) unsupported values: I2P(5), CJDNS(6)
* Use switch statement to handle Network IDs
* Add placeholder cases for I2P and CJDNS
2022-08-23 00:45:03 +02:00
Sean Gilligan
22f02955d7
PeerAddress: make onionChecksum static
...
The onionChecksum() method uses no instance variables and has no side-effects,
so it can be static.
2022-08-23 00:15:56 +02:00
Sean Gilligan
bdc174e9bc
PeerSocketHandler: make peerAddress field final
2022-08-23 00:13:25 +02:00
Sean Gilligan
10e701f8d7
WalletAppKit, DefaultCoinSelector, BuildCheckpoints: simplify some network-related comparisons
...
Enums can use ==/!=.
2022-08-22 22:27:46 +02:00
Sean Gilligan
0ccface14d
PeerAddress: clean up toString, equals, hashCode - handle nulls properly
...
* Include `hostname` in equals() and hashcode()
* Fix NPE in toString() that occurs for (unsupported) I2P addresses (both addr and hostname are null)
* Better null-handling in equals()
* Add EqualsVerify test
* Add comments
2022-08-22 21:58:05 +02:00
Sean Gilligan
6bec092af2
LegacyAddress, SegwitAddress: normalize network type
...
Normalize/canonicalize network member of Address types.
LegacyAddress: map SIGNET, REGTEST to TESTNET
SegwitAddress: map SIGNET to TESTNET
Add tests to verify correct behavoir.
2022-08-17 22:50:07 +02:00
Andreas Schildbach
103250efcf
Message: remove obsolete readObject() method
...
It had been used for Java Serialization.
2022-08-17 14:57:49 +02:00
Andreas Schildbach
83644530cd
EncodedPrivateKey: migrate from NetworkParameters to Network
2022-08-17 09:34:04 +02:00
Andreas Schildbach
1ba9011cfa
EncodedPrivateKeyTest: move "stringification" tests to Base58EncodeCheckedTest
...
This allows us to get rid of mocking in EncodedPrivateKeyTest.
2022-08-17 01:25:11 +02:00
Andreas Schildbach
66b0cc8324
PrefixedChecksummedBytes: rename to EncodedPrivateKey and update class-level JavaDoc
2022-08-12 11:51:15 +02:00
Andreas Schildbach
64c619d2bf
Wallet: add transaction ID to a precondition message
2022-08-12 01:05:58 +02:00
Andreas Schildbach
410b127176
DatabaseFullPrunedBlockStore: remove all database backed block stores
...
All of them are unmaintained and their tests are in the way of refactorings.
MySQL and Postgres had been disabled for a while, and one seems to care.
H2 is tested, but pulls a driver dependency into the test classpath.
2022-08-11 17:36:27 +02:00
Sean Gilligan
4e3bf65865
base/package-info.java: add the "deprecation exception" rule to package comment
2022-08-11 17:27:43 +02:00
Andreas Schildbach
c298a2987e
Bech32Test: move to base
package
...
Bech32 is already there.
2022-08-11 16:37:08 +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
Sean Gilligan
1daa7d5569
NetworkParameters: make id
final
...
and initialize it from Network.id()
2022-08-10 22:16:56 +02:00
Sean Gilligan
d5e2319eb7
Network, BitcoinNetwork: partial alt-net support
...
Distinguish between `Network` and `BitcoinNetwork` in the code
(some of our implementation supports alt-networks better than others
and this commit doesn't try to fix them all, just make it more clear
what is going on. Some may never be made 'generic')
2022-08-10 22:14:17 +02:00
Sean Gilligan
9708b4cad9
MockAltNetworkParams, MockAltNetwork: new mocks for alternate network/address testing
2022-08-10 11:04:49 +02:00
Andreas Schildbach
1a5af67b73
BitcoinURI: strip some whitespace from end of lines
2022-08-10 10:45:13 +02:00
Sean Gilligan
d5d7fb0bcc
BitcoinURI: migrate from NetworkParameters to Network
...
* New constructors and public methods that use Network
* Deprecate constructors and methods that use NetworkParameters
2022-08-10 10:38:45 +02:00
Sean Gilligan
67fd6630f6
LegacyAddressTest.getAltNetwork: unregister AltNetwork in finally block
2022-08-09 19:45:43 +02:00
Sean Gilligan
9c30bab375
TransactionOutput: remove deprecated getAddressFrom* methods
...
Remove deprecated `getAddressFromP2PKHScript()` and `getAddressFromP2SH()` methods
They have been deprecated for more than one release.
2022-08-09 17:20:59 +02:00
Sean Gilligan
13aee43443
NetworkParameters: remove obsolete reference to acceptableAddress in JavaDoc
...
acceptableAddressCodes[] was removed in 2018.
2022-08-09 17:14:49 +02:00
Sean Gilligan
6a032bf001
ECKey: add toAddress() method, deprecate *Address.fromKey()
...
This (after deprecated methods are removed) eliminates all dependencies in
the address classes and is a step towards moving address to o.b.base.
2022-08-03 19:52:55 +02:00
Sean Gilligan
90582ac414
AbstractBitcoinNetParams: rename to BitcoinNetworkParams
...
The Abstract qualifier isn't necessary in the class name.
Also use "Network" instead of "Net" in the new name.
2022-08-03 19:05:40 +02:00
Sean Gilligan
51f1d69e87
Address: deprecate fromString, replace with AddressParser
...
This change migrates from using `NetworkParameters` to `Network` for specifying the network and
also decouples from static methods in `Address` with an interface/implementation approach.
Note that there are 3 use cases for address parsing:
1. Any network is allowed - AddressParser.parseAddressAnyNetwork(String)
2. Parse for a specified network - AddressParser.parseAddress(String, Network)
3. Parse for a previously-specified (context dependent) network - AddressParser.Strict.parseAddress(String)
In most use cases, an AddressParser instance can be accessed through the Wallet,
which already knows the Network type and in this context validation for network makes
sense. This is why `Wallet` is implementing `AddressParser.Strict`
BitcoinURI allocates its own DefaultAddressParser for now, as do some other tests
and examples that don't have access to a Wallet
In the future DefaultAddressParser may be replaced by something loaded
via the ServiceLoader mechanism or other dynamically configured mechanism.
2022-08-03 18:14:48 +02:00
Sean Gilligan
279b35b25f
Network: add exceedsMaxMoney() and simplify various maxMoney checks
2022-08-03 18:09:36 +02:00
Sean Gilligan
696ba9f0d1
AbstractBitcoinNetworkParams: add of
method, delegate to it in NetworkParameters
...
* Add `of(BitcoinNetwork)` `static` method in `AbstractBitcoinNetParams`
* In `NetworkParameters.of(Network)` delegate to `AbstractBitcoinNetParams` for type `BitcoinNetwork`
2022-08-03 01:09:11 +02:00
Sean Gilligan
28c2e2c7e3
Wallet: add network()
...
Perhaps in the future, we'll want a `network` private or protected member,
but for now that doesn't seem needed.
When we start using Network for address and transaction creation, this
will be used even more.
2022-08-02 12:00:47 +02:00
Sean Gilligan
a942ca0751
FakeTxBuilder: extract private method to generate random addresses
2022-08-02 10:35:02 +02:00
Andreas Schildbach
d3ef5b9493
BlockTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 22:21:01 +02:00
Andreas Schildbach
6584fbcef3
TestWithWallet hierarchy: use TestNet3Params, rather than UnitTestParams
2022-08-01 21:10:43 +02:00
Andreas Schildbach
b0442721c8
ChainSplitTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 21:10:35 +02:00
Andreas Schildbach
1ae9ba3fcf
VersionTallyTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 21:05:54 +02:00
Andreas Schildbach
65bcb72ae9
WalletProtobufSerializerTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 20:38:46 +02:00
Andreas Schildbach
6ce49549c3
SPVBlockStoreTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 20:10:57 +02:00
Andreas Schildbach
c5787eafc3
SPVBlockStoreTest: fix context not initialized
2022-08-01 20:08:15 +02:00
Andreas Schildbach
e96de8271e
ParseByteCacheTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 19:50:26 +02:00
Andreas Schildbach
16ccbc0f7a
TransactionTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 19:46:22 +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
f420c5280b
TxConfidenceTableTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 12:00:32 +02:00
Andreas Schildbach
03687a807e
PeerGroup: create a context as a convenience for apps that mainly operate on a PeerGroup
2022-08-01 10:08:19 +02:00
Andreas Schildbach
4842cdc6af
SPVBlockStoreTest: use TestNet3Params where possible, rather than UnitTestParams
2022-08-01 00:39:52 +02:00
Andreas Schildbach
58b07466f1
VersionMessageTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 00:34:04 +02:00
Andreas Schildbach
2633910b0b
TransactionTest: use TestNet3Params where possible, rather than UnitTestParams
2022-08-01 00:30:57 +02:00
Andreas Schildbach
5293901cae
TransactionTest: fix context not initialized
2022-08-01 00:24:27 +02:00
Andreas Schildbach
1dd53f713f
TransactionInputTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 00:13:10 +02:00
Andreas Schildbach
9e5d07cbc6
TransactionInputTest: fix context not initialized
2022-08-01 00:10:33 +02:00
Andreas Schildbach
f93a67b0c3
ChildKeyDerivationTest: use TestNet3Params, rather than UnitTestParams
2022-08-01 00:02:52 +02:00
Andreas Schildbach
996b2f4759
PaymentProtocolTest: use TestNet3Params, rather than UnitTestParams
2022-07-31 23:58:47 +02:00
Andreas Schildbach
58a6295db1
WalletProtobufSerializerTest: use TestNet3Params where possible, rather than UnitTestParams
2022-07-31 23:52:26 +02:00
Andreas Schildbach
e73d876be6
ParseByteCacheTest: fix context not initialized
2022-07-31 23:37:54 +02:00
Andreas Schildbach
4f150bbe96
MessageTest: use TestNet3Params, rather than UnitTestParams
2022-07-31 23:33:37 +02:00
Andreas Schildbach
90d6c21963
DeterministicKeyChainTest: use TestNet3Params, rather than UnitTestParams
2022-07-31 23:25:01 +02:00
Andreas Schildbach
027372cc60
ECKeyTest: use TestNet3Params, rather than UnitTestParams
2022-07-31 23:17:11 +02:00
Andreas Schildbach
17a4cd12a6
VersionTallyTest: use TestNet3Params where possible, rather than UnitTestParams
2022-07-31 23:14:09 +02:00
Andreas Schildbach
4b534f853d
AddressV1MessageTest, AddressV2MessageTest: use TestNet3Params, rather than UnitTestParams
2022-07-31 23:03:39 +02:00
Andreas Schildbach
20cee2c20c
BlockTest: fix context not initialized
2022-07-31 22:55:22 +02:00