#ifndef LIBRUSTZCASH_INCLUDE_H_ #define LIBRUSTZCASH_INCLUDE_H_ #include extern "C" { uint64_t librustzcash_xor(uint64_t a, uint64_t b); /// Writes the "uncommitted" note value for empty leaves /// of the merkle tree. `result` must be a valid pointer /// to 32 bytes which will be written. void librustzcash_tree_uncommitted( unsigned char *result ); /// Computes a merkle tree hash for a given depth. /// The `depth` parameter should not be larger than /// 62. /// /// `a` and `b` each must be of length 32, and must each /// be scalars of BLS12-381. /// /// The result of the merkle tree hash is placed in /// `result`, which must also be of length 32. void librustzcash_merkle_hash( size_t depth, const unsigned char *a, const unsigned char *b, unsigned char *result ); } #endif // LIBRUSTZCASH_INCLUDE_H_