dashhive / DashTx.js

Create TX hex for payments and such
MIT License
3 stars 0 forks source link

fix: pkh script #55

Closed coolaj86 closed 4 months ago

coolaj86 commented 4 months ago

In short: fixed a code path that was never used until the dsf message.

The Long Story

There was a code path that was never exercised until I copied inputs from the dsf because the dsf is missing the script, whereas it always exists for utxo from Insight and RPC.

This code path put the size byte as part of the script - which was then calculated as part of the script with another size byte in front of it.

So as I've gone through the coinjoin message byte by byte, I just failed to notice the 1, single byte in front of the size byte (because there's always a few "header" bytes to the script that I skip over as "the size, type, op code, etc").

And the sigscript does have a double size header (the bitcoin size byte, followed by the ASN.1 size byte).

And the input script takes the place of the sigscript when hashing.

So in an input, it looks like a double size byte normally, and only in the in-memory representation is it a single-size byte.

In the output, the lockscript doesn't have the extra size byte like an input signature script does.