Andreas Schildbach
3c2d199ac6
build.gradle: update protobuf-gradle-plugin to 0.9.1
2023-04-23 11:40:47 +02:00
Sean Gilligan
abbd7b5ac6
build.gradle: update protobuf-javalite to 3.22.3
2023-04-23 01:34:34 +02:00
Sean Gilligan
ae812e99cb
.gitlab-ci.yml: add SAST jobs
2023-04-21 00:59:37 +02:00
Sean Gilligan
c17aea7bd9
.gitlab-ci.yml: move before_script
and after_script
to each job
...
Also, move the `apt-get install` lines into the `before_script` sections.
This will allow us to add other jobs that don't or can't run these scripts.
2023-04-20 22:51:49 +02:00
Andreas Schildbach
2b6b28a6b0
BitcoinURI: restore ability to parse URIs from any network
...
This includes a test.
2023-04-20 18:59:27 +02:00
Andreas Schildbach
bf02dbfb96
WalletProtobufSerializer: remove network
from method readTransaction()
2023-04-20 00:03:53 +02:00
Andreas Schildbach
0676e5cbe9
WalletProtobufSerializer: remove network
from methods readConfidence()
and connectTransactionOutputs()
2023-04-19 23:38:56 +02:00
Andreas Schildbach
5db73f2d7a
BitcoinURI: migrate to static from native constructors
2023-04-19 23:08:40 +02:00
Andreas Schildbach
429dfedce9
BitcoinURI: rework exception handling for amount field
...
* The check against `maxMoney` is removed. There BIP21 spec does not restrict
the amount towards positive infinity. The new maximum is now dictated by
`Coin.parseCoin()`: `Long.MAX_VALUE` satoshis
* The check for negative amounts now throws `OptionalFieldValidationException`
directly, rather than re-throwing via `ArithmeticException`.
* Exception messages now use string concatenation like everywhere else.
* Tests around the new max amount are added/changed.
2023-04-19 23:04:39 +02:00
Andreas Schildbach
fe4bc813ef
KeyChainGroupStructure: deprecate accountPathFor()
variant that takes NetworkParameters
...
It seems this was forgotten earlier.
2023-04-19 23:00:28 +02:00
Andreas Schildbach
e7017bfc2f
KeyChainGroup: migrate to Network
from NetworkParameters
2023-04-19 22:58:52 +02:00
Andreas Schildbach
3e7761c81c
KeyChainGroupTest: remove usage of deprecated variants of method DeterministicKey.deserializeB58()
2023-04-19 18:57:46 +02:00
Andreas Schildbach
7b8b8d60a4
DeterministicKeyChain, MarriedKeyChain: migrate to Network
from NetworkParameters
2023-04-19 18:52:45 +02:00
Andreas Schildbach
f305954285
BasicKeyChain: migrate to Network
from NetworkParameters
2023-04-19 18:50:57 +02:00
Sean Gilligan
9291841f8d
Wallet: use Network
in static factory methods
...
* Adds new methods taking `Network` rather than `NetworkParameters`
* Deprecates all converted methods
* Updates tests, examples, and tools that use these calls
2023-04-18 12:47:09 +02:00
Sean Gilligan
3f3f9bb636
Transaction: use stream in hasWitnesses()
2023-04-17 17:06:45 +02:00
Sean Gilligan
ab08261ef2
Transaction: use foreach loop in readWitnesses()
2023-04-17 17:04:16 +02:00
Sean Gilligan
c64eb6c87e
Transaction: make inputs
/outputs
use List
interface
...
There is no need for the to be declared as `ArrayList`.
2023-04-17 16:58:44 +02:00
Andreas Schildbach
126ccbfd98
Message: restore deprecated method unsafeBitcoinSerialize()
...
Also adds a `deprecatedMembers()` test.
2023-04-17 12:08:11 +02:00
Andreas Schildbach
2ead9f7c57
BaseMessage: remove deprecated method getHash()
...
It was never fully implemented anyways.
2023-04-16 23:05:10 +02:00
Sean Gilligan
5eb67285db
Message: rename methods serialize()
and messageSize()
...
Provide deprecated implementations of `bitcoinSerialize()`
and `getMessageSize()`.
2023-04-16 18:49:32 +02:00
Andreas Schildbach
6ddf8d8cf5
RejectMessage: make immutable
2023-04-16 18:34:54 +02:00
Andreas Schildbach
b9a25641a3
FeeFilterMessage: make immutable
2023-04-16 17:42:54 +02:00
Andreas Schildbach
74678d6abc
VersionMessage: make a constant final
2023-04-16 10:47:01 +02:00
Andreas Schildbach
c3d20cb9b4
Ping, Pong: make immutable
2023-04-16 10:32:54 +02:00
Andreas Schildbach
1d58722630
Coin: add reading from and writing to ByteBuffer
...
* A static constructur `read()` that deserializes from a payload.
* A `write()` helper to write to a buffer.
* A `serialize()` helper to get the serialized bytes.
* A `BYTES` constant for the number of serialized bytes.
Includes a test.
2023-04-16 10:10:09 +02:00
Sean Gilligan
97b88fffdf
BaseMessage: make bitcoinSerializeToStream()
abstract
...
Rather than log an error at runtime, the compiler should fail with an error
when subclasses of `BaseMessage` don't implement `bitcoinSerializeToStream()`.
2023-04-16 08:54:34 +02:00
Sean Gilligan
792183dfef
FeeFilterMessageTest: add tests for FeeFilterMessage
2023-04-16 08:50:54 +02:00
Sean Gilligan
5cdbde165f
FeeFilterMessage: don't call super()
in bitcoinSerializeToStream()
2023-04-16 08:46:15 +02:00
Andreas Schildbach
917a1097c3
BaseMessage: remove method parse()
2023-04-16 08:32:55 +02:00
Andreas Schildbach
e6125b49a2
BaseMessage: remove field serializer
2023-04-16 08:32:55 +02:00
Andreas Schildbach
306ad03e6a
Transaction: move parse()
to static constructor read()
2023-04-16 08:32:55 +02:00
Andreas Schildbach
8a819c761c
Block: move parse()
to static constructor read()
2023-04-16 08:32:55 +02:00
Andreas Schildbach
3cf9e89893
FeeFilterMessage: move parse()
to static constructor read()
2023-04-16 08:32:55 +02:00
Andreas Schildbach
89d568de18
RejectMessage: move parse()
to static constructor read()
2023-04-16 08:29:45 +02:00
Andreas Schildbach
38ea113c2f
HeadersMessage: move parse()
to static constructor read()
2023-04-16 08:28:04 +02:00
Andreas Schildbach
92355b1c32
BloomFilter: move parse()
to static constructor read()
2023-04-16 08:26:02 +02:00
Andreas Schildbach
a155caa076
AddressV1Message, AddressV2Message: move parse()
to static constructor read()
2023-04-16 08:12:58 +02:00
Andreas Schildbach
a114c6ca0e
GetBlocksMessage, GetHeadersMessage: move parse()
to static constructor read()
2023-04-16 08:10:38 +02:00
Andreas Schildbach
eac2c1fee3
FilteredBlock: move parse()
to static constructor read()
2023-04-16 08:07:56 +02:00
Andreas Schildbach
70e652850e
GetDataMessage, InventoryMessage, NotFoundMessage: move parse()
to static constructor read()
2023-04-16 08:05:38 +02:00
Andreas Schildbach
e7ead0b3cb
VersionMessage: move parse()
to static constructor read()
2023-04-16 08:01:22 +02:00
Andreas Schildbach
14ba406298
Pong: move parse()
to static constructor read()
2023-04-16 07:58:28 +02:00
Andreas Schildbach
1f8ed23e24
Ping: move parse()
to static constructor read()
2023-04-16 07:56:18 +02:00
Andreas Schildbach
7d31021663
Transaction: remove the input and output re-reading
...
We needed this to correctly determine the message length, but that
requirement is gone.
2023-04-14 19:40:30 +02:00
Sean Gilligan
1fef4e2cdb
Message: extract interface, add BaseMessage
abstract class
2023-04-14 19:33:29 +02:00
Andreas Schildbach
78a76f76a5
BuffersTest: move the tests for extreme message lengths to here from MessageTest
...
It's much simpler to test the affected read helpers directly.
2023-04-14 19:26:49 +02:00
Andreas Schildbach
a22a446eb1
Buffers, Messages: in various parse()
methods, throw BufferUnderflowException
if read length doesn't fit an int
...
Previously, `ArithmeticException` was thrown which is unlikely to be handled by
consumers.
`BufferUnderflowException` is the correct exception to throw, under the assumption
that a giant length can't be followed by a collection of equally giant length.
2023-04-14 19:18:29 +02:00
Andreas Schildbach
ba8849ca13
VarInt: fix long values accepted as an int value
...
`-1` and `Integer.MIN_VALUE` (and all values inbetween) are in fact
very large VarInts that can only be expressed as a long. So their
test data have been moved from `VarIntTest.integerTestVectors` to
`longTestVectors`.
`intValue()` is changed to guard against such cases, and a helper
`fitsInt()` is introduced.
JavaDocs are added to `intValue()` and `longValue()` to clarify the
expected value ranges.
2023-04-14 19:10:15 +02:00
Sean Gilligan
5f5e7384a2
WalletAppKit: call awaitTerminated()
in close()
...
This adds basic unit tests.
2023-04-13 19:58:13 +02:00