Currently, the shared folder has a mixed identity. There are some useful utilities, such as the to_string_4d_vec() function, but also things that are completely unrelated, such as the errors and commitments folders, as well as the reusable structs and base impls for the circuits folder. Everything is mixed up.
The first step is to extract the real utilities and remove them from shared. This will leave behind things that can exist as standalones in other crates that we will create later. The idea is to dismember this crate step by step.
Things that might aid development include:
- Move "commitments," "packing," and "constants" to standalone crates or better places for them. For example, "commitments" and "packing" could be used at the Enclave level. Having a crate for just "commitments" seems reasonable to me.
- Map the utilities out. For example, the ZKP reduction might be interesting at the Enclave level.
--
We already have a crates/utils inside Enclave, so we should avoid creating new things and map things to their appropriate locations rather than creating new capsules (we already have enough).
Currently, the
sharedfolder has a mixed identity. There are some useful utilities, such as theto_string_4d_vec()function, but also things that are completely unrelated, such as theerrorsandcommitmentsfolders, as well as the reusable structs and base impls for thecircuitsfolder. Everything is mixed up.The first step is to extract the real utilities and remove them from
shared. This will leave behind things that can exist as standalones in other crates that we will create later. The idea is to dismember this crate step by step.Things that might aid development include:
--
We already have a crates/utils inside Enclave, so we should avoid creating new things and map things to their appropriate locations rather than creating new capsules (we already have enough).