This module contains relations that are the core of the Shielder application: deposit, deposit_and_merge and
withdraw. It also exposes some functions and types that might be useful for input generation.
Deserializer in little endian format.
This trait can be derived if all fields of a struct implement
CanonicalDeserialize and the derive feature is enabled.
Serializer in little endian format.
The serialization format must be ‘length-extension’ safe.
e.g. if T implements Canonical Serialize and Deserialize,
then for all strings x, y, if a = T::deserialize(Reader(x)) and a is not an error,
then it must be the case that a = T::deserialize(Reader(x || y)),
and that both readers read the same number of bytes.
Computations are expressed in terms of rank-1 constraint systems (R1CS).
The generate_constraints method is called to generate constraints for
both CRS generation and for proving.