rust-bitcoin-unsafe-fast/bitcoin
Tobin C. Harding 49e8b8da32
Use write_all for sighash encoding
`Sighash` does not need to implement `Encodable` because it is
claimed (I don't know exactly myself) that `Sighash` is never consensus
encode in Bitcoin.

We are currently relying on `Sighash` to implement `Encodable` when
encoding creating the segwit v0 sighash for a single input.

For reference, from BIP143:

 If sighash type is SINGLE and the input index is smaller than the
 number of outputs, hashOutputs is the double SHA256 of the output
 amount with scriptPubKey of the same index as the input;

We can use `write_all` directly to write the hashed bytes and remove the
implementation of `Encodable` from the `Sighash` type.

While we are at it, use `write_all` to write the zero hash also to make
the code more uniform and understandable.

Fix: #1549
2023-01-21 10:56:59 +11:00
..
contrib Remove rand-std dev-dependency from secp256k1 2022-12-23 08:33:21 +11:00
embedded Patch hashes and update the code 2022-12-18 14:33:55 +01:00
examples Use marker type to enforce validation of `Address`'s network 2023-01-11 19:27:10 +08:00
fuzz Use marker type to enforce validation of `Address`'s network 2023-01-11 19:27:10 +08:00
src Use write_all for sighash encoding 2023-01-21 10:56:59 +11:00
tests Use as_ref() instead of costly clone() 2023-01-09 23:17:04 -05:00
CHANGELOG.md add some documentation clarifying the locktime ordering shenanigans in #1330 2022-12-15 23:12:03 +00:00
Cargo.toml Merge rust-bitcoin/rust-bitcoin#1387: Add rand-std feature 2022-12-30 23:53:54 +00:00
build.rs Implement consensus encoding adapter for serde 2022-12-02 10:48:05 +01:00