14 #ifndef PIVX_LIBZEROCOIN_COINSPEND_H
15 #define PIVX_LIBZEROCOIN_COINSPEND_H
36 READWRITE(obj.C_e, obj.C_u, obj.C_r, obj.st_1, obj.st_2, obj.st_3);
37 READWRITE(obj.t_1, obj.t_2, obj.t_3, obj.t_4, obj.s_alpha, obj.s_beta);
38 READWRITE(obj.s_zeta, obj.s_sigma, obj.s_eta, obj.s_epsilon);
39 READWRITE(obj.s_delta, obj.s_xi, obj.s_phi, obj.s_gamma, obj.s_psi);
112 READWRITE(obj.denomination, obj.ptxHash, obj.accChecksum, obj.accCommitmentToCoinValue);
113 READWRITE(obj.serialCommitmentToCoinValue, obj.coinSerialNumber, obj.accumulatorPoK);
114 READWRITE(obj.serialNumberSoK, obj.commitmentPoK);
116 READWRITE(obj.version, obj.pubkey, obj.vchSig, obj.spendType);
PublicCoin class for the Zerocoin library.
Commitment and CommitmentProof classes for the Zerocoin library.
An encapsulated public key.
SERIALIZE_METHODS(AccumulatorProofOfKnowledge, obj)
AccumulatorProofOfKnowledge()
The complete proof needed to spend a zerocoin.
const CBigNum & getCoinSerialNumber() const
CBigNum getSerialComm() const
CoinDenomination getDenomination() const
void setDenom(libzerocoin::CoinDenomination denom)
void setTxOutHash(uint256 txOutHash)
void setPubKey(CPubKey pkey, bool fUpdateSerial=false)
virtual const uint256 signatureHash() const
uint8_t getVersion() const
uint256 getTxOutHash() const
SerialNumberSignatureOfKnowledge serialNumberSoK
bool HasValidSerial(ZerocoinParams *params) const
CommitmentProofOfKnowledge commitmentPoK
CPubKey getPubKey() const
CBigNum accCommitmentToCoinValue
CBigNum getAccCommitment() const
SpendType getSpendType() const
CBigNum CalculateValidSerial(ZerocoinParams *params)
std::string ToString() const
CoinSpend(CDataStream &strm)
CoinDenomination denomination
AccumulatorProofOfKnowledge accumulatorPoK
int getCoinVersion() const
SERIALIZE_METHODS(CoinSpend, obj)
std::vector< unsigned char > getSignature() const
std::vector< unsigned char > vchSig
static std::vector< unsigned char > ParseSerial(CDataStream &s)
uint32_t getAccumulatorChecksum() const
bool HasValidSignature() const
CBigNum serialCommitmentToCoinValue
CommitmentProofOfKnowledge()
SERIALIZE_METHODS(CommitmentProofOfKnowledge, obj)
std::vector< CBigNum > sprime
SERIALIZE_METHODS(SerialNumberSignatureOfKnowledge, obj)
SerialNumberSignatureOfKnowledge()
std::vector< CBigNum > s_notprime
Parameter classes for Zerocoin.
int ExtractVersionFromSerial(const CBigNum &bnSerial)
#define SER_READ(obj, code)
const uint256 UINT256_ZERO
constant uint256 instances