6 #ifndef PIVX_SAPLING_SAPLING_H
7 #define PIVX_SAPLING_SAPLING_H
11 #define ZC_NUM_JS_INPUTS 2
12 #define ZC_NUM_JS_OUTPUTS 2
13 #define INCREMENTAL_MERKLE_TREE_DEPTH 29
14 #define INCREMENTAL_MERKLE_TREE_DEPTH_TESTING 4
16 #define SAPLING_INCREMENTAL_MERKLE_TREE_DEPTH 32
18 #define NOTEENCRYPTION_AUTH_BYTES 16
20 #define ZC_NOTEPLAINTEXT_LEADING 1
22 #define ZC_RHO_SIZE 32
24 #define ZC_MEMO_SIZE 512
25 #define ZC_DIVERSIFIER_SIZE 11
26 #define ZC_JUBJUB_POINT_SIZE 32
27 #define ZC_JUBJUB_SCALAR_SIZE 32
29 #define ZC_NOTEPLAINTEXT_SIZE (ZC_NOTEPLAINTEXT_LEADING + ZC_V_SIZE + ZC_RHO_SIZE + ZC_R_SIZE + ZC_MEMO_SIZE)
31 #define ZC_SAPLING_ENCPLAINTEXT_SIZE (ZC_NOTEPLAINTEXT_LEADING + ZC_DIVERSIFIER_SIZE + ZC_V_SIZE + ZC_R_SIZE + ZC_MEMO_SIZE)
32 #define ZC_SAPLING_OUTPLAINTEXT_SIZE (ZC_JUBJUB_POINT_SIZE + ZC_JUBJUB_SCALAR_SIZE)
34 #define ZC_SAPLING_ENCCIPHERTEXT_SIZE (ZC_SAPLING_ENCPLAINTEXT_SIZE + NOTEENCRYPTION_AUTH_BYTES)
35 #define ZC_SAPLING_OUTCIPHERTEXT_SIZE (ZC_SAPLING_OUTPLAINTEXT_SIZE + NOTEENCRYPTION_AUTH_BYTES)
std::array< unsigned char, ZC_DIVERSIFIER_SIZE > diversifier_t