Hedged Signatures FTW

Putting this in preformat for now because my account is too fresh to post links :stuck_out_tongue_winking_eye:

In Rust, [the `k256` crate implements RFC6979 with the `ad` parameter for fresh randomness,](https://docs.rs/k256/latest/k256/ecdsa/hazmat/trait.SignPrimitive.html#method.try_sign_prehashed_rfc6979) but [higher level abstractions currently leave it empty.](https://docs.rs/ecdsa/0.16.9/src/ecdsa/recovery.rs.html#184) As a result, things like `alloy` should currently produce deterministic signatures.
There is also a `secp256k1` crate that contains bindings to libsecp256k1. [parts of Reth](https://github.com/paradigmxyz/reth/blob/a96bc6110cc985c9b7004966426280aed1dd4729/crates/primitives-traits/src/lib.rs#L17) have an option to use it. I couldn't quickly figure out if it enables hedging and under which circumstances.
Empirically, we can determine that Foundry 1.0 produces deterministic signatures by running the following command multiple times:
```sh
$ cast wallet sign --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 "hello"
1 Like