Zebra: reorganize zebra-chain sprout/sapling types

Created on 30 Jun 2020  路  3Comments  路  Source: ZcashFoundation/zebra

Right now in zebra-chain for notes, addresses, keys, and similar types we export a module for the data kind and then internally we have a sprout.rs and a sapling.rs module for each specific implementation of that outer module kind.

This organization structure introduces name conflicts by having many more potential name conflicts than the alternative, which is to have a single outer modules for sprout and sappling and inner modules for each specific implementation for keys and what not. For example, I went to introduce crate::nullifier::sprout::Nullifier to a new module but could not shorten the name to sprout::Nullifier because sprout was already in-scope from a use crate::notes::sprout;.

A-rust C-cleanup E-help-wanted good first issue

Most helpful comment

This seems like it could be a good idea. One point to consider is that most users will only want to work with Sapling, so having a top level distinction between Sprout and Sapling could be convenient for them.

All 3 comments

This seems like it could be a good idea. One point to consider is that most users will only want to work with Sapling, so having a top level distinction between Sprout and Sapling could be convenient for them.

@dconnolly did you already do this one as part of your note commitments change?

@dconnolly did you already do this one as part of your note commitments change?

No, this item will happen after that is merged, since it's already touching 30+ files

Was this page helpful?
0 / 5 - 0 ratings