@ -3,8 +3,8 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
# ifndef BITCOIN_BITCOIN CONSENSUS_H
# define BITCOIN_BITCOIN CONSENSUS_H
# ifndef BITCOIN_ZCASH CONSENSUS_H
# define BITCOIN_ZCASH CONSENSUS_H
# if defined(BUILD_BITCOIN_INTERNAL) && defined(HAVE_CONFIG_H)
# include "config/bitcoin-config.h"
@ -19,7 +19,7 @@
# elif defined(HAVE_FUNC_ATTRIBUTE_VISIBILITY)
# define EXPORT_SYMBOL __attribute__ ((visibility ("default")))
# endif
# elif defined(MSC_VER) && !defined(STATIC_LIBBITCOIN CONSENSUS)
# elif defined(MSC_VER) && !defined(STATIC_LIBZCASH CONSENSUS)
# define EXPORT_SYMBOL __declspec(dllimport)
# endif
@ -31,34 +31,34 @@
extern " C " {
# endif
# define BITCOIN CONSENSUS_API_VER 0
# define ZCASH CONSENSUS_API_VER 0
typedef enum bitcoin consensus_error_t
typedef enum zcash consensus_error_t
{
bitcoin consensus_ERR_OK = 0 ,
bitcoin consensus_ERR_TX_INDEX,
bitcoin consensus_ERR_TX_SIZE_MISMATCH,
bitcoin consensus_ERR_TX_DESERIALIZE,
} bitcoin consensus_error;
zcash consensus_ERR_OK = 0 ,
zcash consensus_ERR_TX_INDEX,
zcash consensus_ERR_TX_SIZE_MISMATCH,
zcash consensus_ERR_TX_DESERIALIZE,
} zcash consensus_error;
/** Script verification flags */
enum
{
bitcoin consensus_SCRIPT_FLAGS_VERIFY_NONE = 0 ,
bitcoin consensus_SCRIPT_FLAGS_VERIFY_P2SH = ( 1U < < 0 ) , // evaluate P2SH (BIP16) subscripts
bitcoin consensus_SCRIPT_FLAGS_VERIFY_DERSIG = ( 1U < < 2 ) , // enforce strict DER (BIP66) compliance
bitcoin consensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY = ( 1U < < 9 ) , // enable CHECKLOCKTIMEVERIFY (BIP65)
zcash consensus_SCRIPT_FLAGS_VERIFY_NONE = 0 ,
zcash consensus_SCRIPT_FLAGS_VERIFY_P2SH = ( 1U < < 0 ) , // evaluate P2SH (BIP16) subscripts
zcash consensus_SCRIPT_FLAGS_VERIFY_DERSIG = ( 1U < < 2 ) , // enforce strict DER (BIP66) compliance
zcash consensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY = ( 1U < < 9 ) , // enable CHECKLOCKTIMEVERIFY (BIP65)
} ;
/// Returns 1 if the input nIn of the serialized transaction pointed to by
/// txTo correctly spends the scriptPubKey pointed to by scriptPubKey under
/// the additional constraints specified by flags.
/// If not NULL, err will contain an error/success code for the operation
EXPORT_SYMBOL int bitcoin consensus_verify_script( const unsigned char * scriptPubKey , unsigned int scriptPubKeyLen ,
EXPORT_SYMBOL int zcash consensus_verify_script( const unsigned char * scriptPubKey , unsigned int scriptPubKeyLen ,
const unsigned char * txTo , unsigned int txToLen ,
unsigned int nIn , unsigned int flags , bitcoin consensus_error* err ) ;
unsigned int nIn , unsigned int flags , zcash consensus_error* err ) ;
EXPORT_SYMBOL unsigned int bitcoin consensus_version( ) ;
EXPORT_SYMBOL unsigned int zcash consensus_version( ) ;
# ifdef __cplusplus
} // extern "C"
@ -66,4 +66,4 @@ EXPORT_SYMBOL unsigned int bitcoinconsensus_version();
# undef EXPORT_SYMBOL
# endif // BITCOIN_BITCOIN CONSENSUS_H
# endif // BITCOIN_ZCASH CONSENSUS_H