librustzcash
librustzcash copied to clipboard
zcash_primitives: Refactor `Transaction` to permit omitting protocol-specific bundles
Draft because there are still some things that need doing:
- [x] I want some feedback on the overall approach to check the direction makes sense.
- [ ] I haven't documented much yet (spent my time getting the refactor structured correctly so the commits make sense).
- [ ] I haven't checked all the various feature flag combinations yet.
- [ ] The PR needs tests that exercise the various
NoProtocol
combinations. - [x] The
Authorization
-ish traits are still tied to the protocol-specific crates. I think I need to introduce intermediate traits with blanket impls. - [x] Factor out Sprout for completeness (even though we don't depend on anything for Sprout that we don't inherently need for basic Zcash support).
- [x] Factor out
ZFuture
. - [ ] Needs changelog updates.