In particular,
- the input script is constructed from the difficulty target and the genesis message
- the output script is constructed from the pubkey via ScriptBuilder.createP2PKOutputScript()
This is just a informational change. In the interest of keeping
the diagram simple, I have not been showing multiple links to minor direct
dependencies. But this change chooses to display SLF4J & JSpecify as
direct dependencies of `base`. This makes it more clear that
`base`, `core` and `wallet` all will depend on them. The diagram
still "lies" a little bit in not showing that they are also direct
dependencies, but I think that is an acceptable tradeoff for a diagram
that is easier to read.
The main change here is that we are replacing the plan of migrating
the o.b.crypto module to it's own JAR and instead focusing on migrating
to the secp256k1-jdk API.
This eliminates the last @Nullable annotation in the `base` module.
Since this is a private method and is called for every address
that is parsed, let's not use Optional<>, but move the throw from
decode() to verifyChecksum().
It's always
```
Download peer died. Picking a new one.
Unsetting download peer: <peer>
Setting download peer: <peer>
```
So the first message can go away.
Because tweaking is necessary for transaction signing, these usages
have been changed to produce new inputs instead and replace them in
transactions as needed.
Because tweaking is necessary for transaction signing, these usages
have been changed to produce new inputs instead and replace them in
transactions as needed.
Because tweaking is necessary in cases like unit tests, these usages
have been changed to produce new inputs instead and replace them in
transactions as needed.
Because tweaking is necessary for fee calculation logic, these usages
have been changed to produce new TransactionOutputs instead and
replace them in transactions as needed.
Pushing an empty data is *not* a no-op: an item is added to the
stack. So that empty array should be represented in the data
part of the script chunk.
This makes behaviour consistent with script parsing, and input
signing expects the empty array as a placeholder for a missing
signature.
This reverts 07682145e3 from 2015!
Also adds a test.
Now that this target is working correctly, we can include it in the
GitHub Actions builds. We can also add instructions
for how to build to the README.
The GitLab CI is currently using Debian Gradle 4.4.1 and
DO NOT build wallettemplate, so they remain unchanged.