#ifndef ZCASH_SCRIPT_ZCASH_SCRIPT_H
#define ZCASH_SCRIPT_ZCASH_SCRIPT_H
#include <stdint.h>
#include "script_error.h"
#if defined(BUILD_BITCOIN_INTERNAL) && defined(HAVE_CONFIG_H)
#include "config/bitcoin-config.h"
#if defined(_WIN32)
#if defined(DLL_EXPORT)
#if defined(HAVE_FUNC_ATTRIBUTE_DLLEXPORT)
#define EXPORT_SYMBOL __declspec(dllexport)
#else
#define EXPORT_SYMBOL
#endif
#endif
#elif defined(HAVE_FUNC_ATTRIBUTE_VISIBILITY)
#define EXPORT_SYMBOL __attribute__ ((visibility ("default")))
#endif
#elif defined(MSC_VER) && !defined(STATIC_LIBZCASHCONSENSUS)
#define EXPORT_SYMBOL __declspec(dllimport)
#endif
#ifndef EXPORT_SYMBOL
#define EXPORT_SYMBOL
#endif
#ifdef __cplusplus
extern "C" {
#endif
#define ZCASH_SCRIPT_API_VER 4
enum
{
zcash_script_SCRIPT_FLAGS_VERIFY_NONE = 0,
zcash_script_SCRIPT_FLAGS_VERIFY_P2SH = (1U << 0), zcash_script_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY = (1U << 9), };
EXPORT_SYMBOL unsigned int zcash_script_version();
EXPORT_SYMBOL unsigned int zcash_script_legacy_sigop_count_script(
const unsigned char* script,
unsigned int scriptLen);
EXPORT_SYMBOL int zcash_script_verify_callback(
const void* ctx,
void (*sighash)(unsigned char* sighash, unsigned int sighashLen, const void* ctx, const unsigned char* scriptCode, unsigned int scriptCodeLen, int hashType),
int64_t nLockTime,
uint8_t isFinal,
const unsigned char* scriptPubKey,
unsigned int scriptPubKeyLen,
const unsigned char* scriptSig,
unsigned int scriptSigLen,
unsigned int flags,
ScriptError* err);
#ifdef __cplusplus
} #endif
#undef EXPORT_SYMBOL
#endif