Commit Graph

3724 Commits

Author SHA1 Message Date
Sean Gilligan
8ce4dbaff7 Wallet, TransactionOutput: use TransactionOutput.serialize() not bitcoinSerialize()
Fix the last two usages of this deprecated method.
2023-05-04 10:30:46 +02:00
Sean Gilligan
760e7dac83 Wallet: use ternary operator to reduce mutated local vars in calculateFee() 2023-05-04 10:27:26 +02:00
Andreas Schildbach
8fe1d84a59 SPVBlockStore: make method initNewStore() take genesisBlock
This makes the method independent of `NetworkParameters`.
2023-05-03 23:05:04 +02:00
Sean Gilligan
f62259b780 BitcoinSerializer: store packetMagic in instance field 2023-05-03 22:56:24 +02:00
Andreas Schildbach
369445d1e8 StoredBlock: make method deserializeCompact() not use MessageSerializer
Its usecase is limited to fixed formats, currently binary checkpoints
and `.spv` block stores.
2023-05-03 22:52:58 +02:00
Sean Gilligan
8aace05d3a BitcoinSerializer: remove methods equals() and hashCode()
There is no reason to have these.
2023-05-03 18:06:35 +02:00
Sean Gilligan
db1172c210 DummySerializer: remove unused class 2023-05-01 19:49:22 +02:00
Sean Gilligan
a0df016841 Block: remove unused DummySerializer 2023-05-01 19:46:09 +02:00
Andreas Schildbach
4ab6e88560 UnitTestParams: don't solve() the genesis block for unit tests
It won't really solve it anyway, because the difficulty check is
disabled.
2023-05-01 19:24:52 +02:00
Andreas Schildbach
9a747e6e96 WalletProtobufSerializer: migrate to Network from NetworkParameters 2023-04-28 23:21:35 +02:00
Andreas Schildbach
4187f2328d MarriedKeyChain: remove married key chains
The current implementation is based on plain P2SH. I assume as of
today one would prefer an implementation based on taproot or at least
segwit (P2WSH).

Note the `isFollowing` and `sigsRequiredToSpend` fields in the
`DeterministicKey` message of the wallet protobuf are preserved for
now, because they might come in handy for a future implementation and
in general it's hard to remove fields from protobufs.

Also removes the `marry` action from `WalletTool`.
2023-04-28 23:07:49 +02:00
Sean Gilligan
7e36ed0ea9 build.gradle: use archiveClassifier if available
`classifier` was deprecated in Gradle 5.1 and removed in Gradle 8.x,
so use `archiveClassifier` on Gradle 5.0 or later.
2023-04-24 20:18:32 +02:00
Sean Gilligan
abbd7b5ac6 build.gradle: update protobuf-javalite to 3.22.3 2023-04-23 01:34:34 +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