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
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
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
Sean Gilligan
90fc2bfb5e
BlockFileLoader, FullBlockTestGenerator: use readUint32()/writeInt32LE()
rather than manually reversing bytes
2023-03-30 23:34:50 +02:00
Andreas Schildbach
f0b69a405f
VersionMessage: require extended version handshake messages
...
Versions without the extended fields (e.g. user-agent, block height) are not
protocol compliant since version 106. Our minimum version is at 70000.
2023-03-30 23:29:55 +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
Sean Gilligan
16faad2a30
NetworkParameters: change packetMagic
to an int
...
It's just a binary value and does not have signedness.
Methods for writing 32-bit integers via `ByteUtils.writeInt32BE(int, ...)` have been added.
2023-03-30 22:19:06 +02:00
Andreas Schildbach
8c6e584e02
AddressMessage: remove params
and serializer
from constructors in hierarchy
2023-03-30 19:01:25 +02:00
Sean Gilligan
8576602180
BlockFileLoader: convert to Network
, deprecate constructors with NetworkParameters
2023-03-30 18:59:19 +02:00
Andreas Schildbach
3e8f7d93a7
DummySerializer: make capable of pretending specific protocol version
...
This is put to use for the "misuse of protocol version" for `PeerAddress`.
2023-03-30 18:17:16 +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
6472080ab3
Message: remove method unCache()
...
It's still implemented in `Block`, `Transaction`, `TransactionInput` and
`TransactionOutput`. But there is no need to have it in the superclass.
2023-03-30 18:00:34 +02:00
Andreas Schildbach
b9d37e024f
Message: get rid of payload
field
...
It's now passed into the `parse()` method, and passed along from there.
2023-03-30 17:58:22 +02:00
Andreas Schildbach
9c9548dc23
TransactionOutput: remove serializer
from constructor
2023-03-30 15:09:44 +02:00
Andreas Schildbach
c1a32f6585
TransactionInput: remove serializer
from constructor
2023-03-30 15:06:41 +02:00
Andreas Schildbach
8091384ff6
UnknownMessage: make field name
immutable
2023-03-30 14:29:17 +02:00
Andreas Schildbach
455973557a
Message: add a defensive null check to getParams()
2023-03-30 13:15:05 +02:00
Sean Gilligan
3bc82cd9f7
TransactionInput, TransactionOutput: make direct subclass of Message
...
Since only these 2 classes need to support the concept of a "parent", it
will be simpler to just add the code to handle that to both of them and
remove the `ChildMessage` altogether.
2023-03-30 11:33:29 +02:00
Sean Gilligan
368d2f2c63
BlockFileLoader: don't use NetworkParameters
internally
...
Save `packetMagic` and `serializer` instead.
2023-03-30 01:50:14 +02:00
Andreas Schildbach
57c9456ce8
TransactionOutPoint: remove params
from constructors
2023-03-30 01:42:50 +02:00
Andreas Schildbach
42bf963d92
MessageTest: remove params
from VarStrMessage
...
This time for real.
2023-03-30 01:32:02 +02:00
Andreas Schildbach
54d0c80e16
GetBlocksMessage, GetHeadersMessage: remove params
from constructors
...
Because the serialized messages contain the protocol version – for whatever
reason, possibly unused – that value is now passed instead.
2023-03-30 01:25:19 +02:00
Sean Gilligan
4a62b0f53d
Fix spelling of "freestanding" in comments
2023-03-30 01:22:29 +02:00
Andreas Schildbach
a3d8d24d6f
MessageTest: remove params
from VarStrMessage
2023-03-30 01:19:54 +02:00
Andreas Schildbach
ed84988111
MemoryPoolMessage: make it an EmptyMessage
2023-03-30 01:16:03 +02:00
Andreas Schildbach
d02853b1f0
TransactionOutPoint: make direct subclass of Message
...
It doesn't need a parent.
2023-03-30 01:04:41 +02:00
Andreas Schildbach
dabed6fa2d
Transaction: make direct subclass of Message
...
It doesn't need a parent.
2023-03-30 01:02:49 +02:00
Andreas Schildbach
1a007c1182
PeerAddress: make direct subclass of Message
...
It doesn't need a parent.
2023-03-30 00:45:25 +02:00
Andreas Schildbach
32ee59f7bb
BloomFilter: remove params
from constructor
2023-03-30 00:31:02 +02:00
Sean Gilligan
21217e3c0b
BockFileLoader: make field fileIt
immutable
2023-03-30 00:26:02 +02:00
Sean Gilligan
2d054d4e49
Fix spelling of "human readable" in comments and message
2023-03-30 00:20:06 +02:00
Andreas Schildbach
795f64b43d
Message: from within the hierarchy, construct child messages directly
...
There is no point in taking the `MessageSerializer` route.
2023-03-30 00:15:37 +02:00
Andreas Schildbach
b2c54e8bf4
FeeFilterMessage: remove params
and serializer
from constructor
2023-03-29 23:51:13 +02:00
Andreas Schildbach
5ea7d64ee4
RejectMessage: remove params
from constructors
2023-03-29 23:48:13 +02:00
Andreas Schildbach
780e43d94d
Ping, Pong: remove params
from constructors
2023-03-29 23:41: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
7d74722eeb
TransactionOutPoint: remove serializer
from constructor
2023-03-29 23:21:01 +02:00
Andreas Schildbach
9a0c3d91e3
EmptyMessage: remove params
and payload
from constructors in hierarchy
...
Empty messages don't need any of these.
2023-03-29 17:57:41 +02:00
Andreas Schildbach
8a1a462128
ProtocolException, VerificationException: allow construction without message
...
This makes usage of `ProtocolException::new` easier.
2023-03-29 17:57:41 +02:00
Andreas Schildbach
bc035737d1
Message: inline all read helpers
...
They were only calling through anyways.
2023-03-29 16:57:08 +02:00
Andreas Schildbach
ce39967d83
Buffers: new utils class for common operations on P2P message ByteBuffer
2023-03-29 16:49:07 +02:00
Sean Gilligan
02f3fe64cc
ECKeyTest: add tests for deriving addresses from ECKey
via toAddress()
...
`createP2TRAddress()` is ignored for now because it's not yet supported.
2023-03-29 13:32:11 +02:00
Sean Gilligan
458e4c1e0b
ListenableCompletionStage: deprecate addListener()
...
When people upgrade to 0.17 this deprecation will make it clear
that they need to switch from this method to `thenRunAsync()`.
Reminder: we did not deprecate `ListenableCompletionStage` or `ListenableCompletableFuture`
because they are still used in many places in the bitcoinj API, but this
method is not used anywhere in bitcoinj.
2023-03-29 00:00:08 +02:00
Andreas Schildbach
592f3c692d
Services: wrapper for node services bitfield
2023-03-28 15:52:05 +02:00
Andreas Schildbach
3bd191843a
peerseeds.proto: remove protobuf definition
...
This was forgotten when removing `HttpDiscovery` via
commit 7f41553576
.
2023-03-28 10:50:49 +02:00
Andreas Schildbach
63b5e07726
PaymentSessionTest: fix context not initialized
2023-03-28 00:34:28 +02:00
Andreas Schildbach
46e562bb20
Prepare 0.17-SNAPSHOT
2023-03-28 00:27:46 +02:00
Andreas Schildbach
f3075c44b6
Tag 0.17-alpha1
2023-03-27 23:56:19 +02:00
Andreas Schildbach
c38ec69246
BriefLogFormatter: provide init(Level)
to use a custom log level
2023-03-27 21:02:59 +02:00
Sean Gilligan
3b6bdbad02
WalletAppKit: add launch()
methods, simplify examples
2023-03-27 20:59: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
Sean Gilligan
774fde99fb
Wallet: move methods sendTransaction()
and waitForConfirmation()
from ForwardingService
...
`waitForConfirmation()` now has two variants for convenience.
2023-03-27 19:30:27 +02:00
Sean Gilligan
b24964d056
TransactionBroadcast: add awaitRelayed()
, deprecate future()
...
* Add `awaitRelayed()` method that returns a CF that completes when relaying is confirmed.
* Deprecate `future()` and reimplement it using `awaitRelayed()`.
2023-03-27 18:38:15 +02:00
Andreas Schildbach
504b67c186
ByteUtils: check range of values supplied to write helpers for the Java Unsigned Integer API
...
These checks uncovered various uses of illegal values (now fixed).
They should help this won't happen in future.
2023-03-27 17:53:26 +02:00
Sean Gilligan
2aa764d403
VarInt: simplify encode()
2023-03-27 17:38:58 +02:00
Andreas Schildbach
3746516859
VarInt: use constants for possible sizes
2023-03-27 16:54:00 +02:00
Andreas Schildbach
140912b080
VarIntTest: add test for reading and writing
2023-03-27 16:49:21 +02:00
Andreas Schildbach
21fae58bc8
VarInt: implement toString()
2023-03-27 16:48:47 +02:00
Andreas Schildbach
301c8e4a76
VarInt: implement equals()
and hashCode()
...
`originallyEncodedSize` is not considered on purpose, because it is only
relevant for serialization.
2023-03-27 16:26:16 +02:00
Andreas Schildbach
2faaf9febc
VarInt: direct use of ByteBuffer
for reading and writing
2023-03-27 16:00:37 +02:00
Sean Gilligan
b4abf7d794
VarInt: get rid of code duplication in deprecated constructor
2023-03-27 15:50:13 +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
Sean Gilligan
2e3e6d4485
TransactionBroadcast: add awaitSent()
method
...
This just returns the used internally (and therefore tested) `sentFuture`.
2023-03-27 12:28:27 +02:00
Sean Gilligan
bce7b11038
Script: downsize MAX_SCRIPT_ELEMENT_SIZE
to int
from long
...
* The value is 520
* Java collection sizes are `int`
* All usages are as `int`
2023-03-27 09:54:42 +02:00
Sean Gilligan
ee74f34dcc
FullBlockTestGenerator: use writeInt64LE()
for writing a 64-bit integer
...
Previously two `writeInt32LE()` and a right-shift on an `int` by 32 were used.
2023-03-27 09:48:01 +02:00
Sean Gilligan
37a06b150f
Transaction: replace Guava Lists.reversed()
with JDK equivalent
2023-03-27 09:38:38 +02:00
Andreas Schildbach
c5faecf3b6
SegwitAddress: flip arguments of new static constructor fromBech32()
...
Otherwise the deprecation cycle won't be of much use for consumers who pass `null` for `params`.
2023-03-27 09:23:04 +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