5 #ifndef PIVX_ZPIV_ZPIVMODULE_H
6 #define PIVX_ZPIV_ZPIVMODULE_H
22 static int const PUBSPEND_SCHNORR = 4;
48 if (obj.version < PUBSPEND_SCHNORR) {
49 READWRITE(obj.coinSerialNumber, obj.randomness, obj.pubkey, obj.vchSig);
52 if (obj.coinVersion < libzerocoin::PUBKEY_VERSION) {
PublicCoin class for the Zerocoin library.
CoinSpend class for the Zerocoin library.
Serialized script, used inside transaction inputs and outputs.
The basic transaction that is broadcasted on the network and contained in blocks.
An input of a transaction.
An output of a transaction.
Capture information about block/transaction validation.
SERIALIZE_METHODS(PublicCoinSpend, obj)
const uint256 signatureHash() const override
int getCoinVersion() const
bool HasValidSignature() const
PublicCoinSpend(libzerocoin::ZerocoinParams *params)
libzerocoin::PublicCoin pubCoin
libzerocoin::CoinRandomnessSchnorrSignature schnorrSig
A Schnorr Signature on the hash of metadata attesting that the signer knows the randomness v necessar...
The complete proof needed to spend a zerocoin.
A Public coin is the part of a coin that is published to the network and what is handled by other cli...
bool validateInput(const CTxIn &in, const CTxOut &prevOut, const CTransaction &tx, PublicCoinSpend &publicSpend)
libzerocoin::CoinSpend TxInToZerocoinSpend(const CTxIn &txin)
void CleanCoinSpendsCache()
bool ParseZerocoinPublicSpend(const CTxIn &txIn, const CTransaction &tx, CValidationState &state, PublicCoinSpend &publicSpend)
PublicCoinSpend parseCoinSpend(const CTxIn &in)
CDataStream ScriptSigToSerializedSpend(const CScript &scriptSig)