/** @file ***************************************************************************** Declaration of exceptions and constants for Zerocash. ***************************************************************************** * @author This file is part of libzerocash, developed by the Zerocash * project and contributors (see AUTHORS). * @copyright MIT license (see LICENSE file) *****************************************************************************/ #ifndef ZEROCASH_H_ #define ZEROCASH_H_ #include #include /* The version of this library. */ #define ZEROCASH_VERSION_STRING "0.1" #define ZEROCASH_VERSION_INT 1 #define ZEROCASH_PROTOCOL_VERSION "1" #define ZEROCASH_DEFAULT_TREE_SIZE 64 #define ZC_A_PK_SIZE 32 #define ZC_PK_ENC_SIZE 311 #define ZC_SIG_PK_SIZE 32 #define ZC_ADDR_PK_SIZE (ZC_A_PK_SIZE+ZC_PK_ENC_SIZE) #define ZC_A_SK_SIZE 32 #define ZC_SK_ENC_SIZE 287 #define ZC_ADDR_SK_SIZE (ZC_A_SK_SIZE+ZC_SK_ENC_SIZE) #define ZC_V_SIZE 8 #define ZC_RHO_SIZE 32 #define ZC_R_SIZE 48 #define ZC_S_SIZE 0 #define ZC_K_SIZE 32 #define ZC_CM_SIZE 32 #define ZC_COIN_SIZE (ZC_ADDR_PK_SIZE+ZC_V_SIZE+ZC_RHO_SIZE+ZC_R_SIZE+ZC_S_SIZE+ZC_CM_SIZE) #define ZC_TX_MINT_SIZE (ZC_CM_SIZE+ZC_V_SIZE+ZC_K_SIZE+ZC_S_SIZE) #define ZC_ROOT_SIZE 32 #define ZC_SN_SIZE 32 #define ZC_PK_SIG_SIZE 66 #define ZC_H_SIZE 32 #define ZC_POUR_PROOF_SIZE 288 #define ZC_C_SIZE 173 #define ZC_SIGMA_SIZE 72 #define ZC_TX_POUR_SIZE (ZC_ROOT_SIZE+(2*ZC_SN_SIZE)+(2*ZC_CM_SIZE)+ZC_V_SIZE+ZC_PK_SIG_SIZE+(2*ZC_H_SIZE)+ZC_POUR_PROOF_SIZE+(2*ZC_C_SIZE)+ZC_SIGMA_SIZE) #define SNARK typedef std::vector MerkleRootType; namespace libsnark { }; namespace libzerocash { using namespace libsnark; }; #include "zerocash/utils/util.h" #endif /* ZEROCASH_H_ */