This is necessary in order for Signers to display the address encoding
that a user is expecting to confirm.
Co-authored-by: Kris Nuttycombe <kris@nutty.land>
Proving and signing don't require specific wallet methods; the
`Prover` and `Signer` roles provide the necessary functionality.
Co-authored by: Jack Grigg <jack@electriccoin.co>
This reverts the MSRV update for the `zcash_protocol` crate; no
MSRV-breaking changes have been made, and retaining the 1.70 MSRV allows
us to make this a semver-compatible release.
profile to compile with optimizations by default, but keep full debug info.
This differs from the release profile in the following ways:
- it does not set `lto = true`, which increases compile times without
substantially speeding up tests;
- it does not set `codegen-units = 1`, which increases compile times and
is only useful to improve determinism of release builds;
- it does not set `panic = 'abort'`, which is in any case ignored for
tests.
After this PR, to get results as close as possible to a release build, use
`cargo test --release`.
To speed up compilation and avoid optimizations potentially resulting in
lower-quality debug info, use `cargo test --profile=dev`.
Times on my machine starting from `cargo clean` for each run:
* `cargo test --all-targets --all-features`:
* 484s (354s build, 130s tests)
* `cargo test --release --all-targets --all-features`:
* 541s (415s build, 126s tests)
* `cargo test --profile=dev --all-targets --all-features`:
* 1709s (146s build, 1563s tests)
* this might still be faster when running individual tests.
Signed-off-by: Daira-Emma Hopwood <daira@jacaranda.org>
RPIT (return-position `impl Trait`) was stabilized in Rust 1.75, and the
`dynosaur` crate providing dynamic dispatch support was published two
weeks ago. Now that our MSRV is 1.77, we can use both of these.