Open str4d opened 4 months ago
Attention: Patch coverage is 76.19048%
with 60 lines
in your changes missing coverage. Please review.
Project coverage is 63.23%. Comparing base (
5bd911f
) to head (16988be
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
I haven't done anything with
ZFuture
, and am not quite sure what to do there.
Can we just delete TZE support? I don't care about them and I very much doubt they are ever going to be deployed. We should ask on #libraries in the R&D Discord obviously. Deleting them should be easy given that they're feature flagged.
I was a little bit alarmed about the name
UnauthorizedTransactionDataWithSaplingProofs
(i.e. why so unorthogonal?), but then I saw the motivation and it's fine.
My hope is that this type goes away once I land the refactor that follows after this one (to restructure the zcash_primitives
transaction builder to match Sapling and Orchard, by separating the building of the unauthorized bundle and its authorization). At that point, this type will be a well-defined intermediate state (as an explicit method output), instead of an ill-defined internal detail of Builder::build
that requires type-pinning to help the compiler.
In e3a29b86cd473324b3a8bd480e6640b6fac03d84 I've added Yet Another Intermediate Trait Bundles
, which I think solves the "conditional compilation of bundles" that is necessary for merging code that is not currently part of consensus (as well as making the enabling of these bundles in consensus less of a breaking change to downstream code). If this approach looks good, I'll rebase the PR to merge the Bundles
changes back into the earlier commits (simplifying them).
Force-pushed to merge the commit introducing the Bundles
trait back into the rest of the commits, simplifying them.
Force-pushed to address some initial review comments from a pairing with @nuttycom.
Force-pushed to move Sprout onto the Bundles
trait. It has no authorization traits because we only support already-authorized Sprout bundles (due to not supporting Sprout in transaction building).
Force-pushed to move TZEs onto the Bundles
trait, as a proof-of-concept for other conditionally-compiled transaction format changes that we want to merge into the codebase before inclusion in consensus (e.g. ZSAs).
Force-pushed to adjust how the new traits work in order to eliminate the bounds on the protocol-crate-specific authorization traits.
Force-pushed with some further decoupling adjustments and trait renames. It also removes the NoTransparent
etc. changes (and the TransactionWith
refactor) as not currently necessary, because the dependency removal will be done by altering the Transparent<A>
etc. types (in a way that is technically a breaking change, but in a way that should only be observable as purely additive in our API).
Rebased on main
to fix a small merge conflict.
Draft because there are still some things that need doing:
NoProtocol
combinations.Authorization
-ish traits are still tied to the protocol-specific crates. I think I need to introduce intermediate traits with blanket impls.ZFuture
.