PIVX Core  5.6.99
P2P Digital Currency
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Attributes | List of all members
libzerocoin::CoinSpend Class Reference

The complete proof needed to spend a zerocoin. More...

#include <CoinSpend.h>

Inheritance diagram for libzerocoin::CoinSpend:
[legend]
Collaboration diagram for libzerocoin::CoinSpend:
[legend]

Public Member Functions

 CoinSpend ()
 
 CoinSpend (CDataStream &strm)
 
virtual ~CoinSpend ()
 
const CBigNumgetCoinSerialNumber () const
 
CoinDenomination getDenomination () const
 
uint32_t getAccumulatorChecksum () const
 
uint256 getTxOutHash () const
 
CBigNum getAccCommitment () const
 
CBigNum getSerialComm () const
 
uint8_t getVersion () const
 
int getCoinVersion () const
 
CPubKey getPubKey () const
 
SpendType getSpendType () const
 
std::vector< unsigned char > getSignature () const
 
virtual const uint256 signatureHash () const
 
bool HasValidSerial (ZerocoinParams *params) const
 
bool HasValidSignature () const
 
void setTxOutHash (uint256 txOutHash)
 
void setDenom (libzerocoin::CoinDenomination denom)
 
void setPubKey (CPubKey pkey, bool fUpdateSerial=false)
 
CBigNum CalculateValidSerial (ZerocoinParams *params)
 
std::string ToString () const
 
 SERIALIZE_METHODS (CoinSpend, obj)
 

Static Public Member Functions

static std::vector< unsigned char > ParseSerial (CDataStream &s)
 

Protected Attributes

CoinDenomination denomination {ZQ_ERROR}
 
CBigNum coinSerialNumber {}
 
uint8_t version {0}
 
CPubKey pubkey
 
std::vector< unsigned char > vchSig
 
SpendType spendType {SPEND}
 
uint256 ptxHash {UINT256_ZERO}
 

Private Attributes

uint32_t accChecksum {0}
 
CBigNum accCommitmentToCoinValue
 
CBigNum serialCommitmentToCoinValue
 
AccumulatorProofOfKnowledge accumulatorPoK
 
SerialNumberSignatureOfKnowledge serialNumberSoK
 
CommitmentProofOfKnowledge commitmentPoK
 

Detailed Description

The complete proof needed to spend a zerocoin.

Composes together a proof that a coin is accumulated and that it has a given serial number.

Definition at line 78 of file CoinSpend.h.

Constructor & Destructor Documentation

◆ CoinSpend() [1/2]

libzerocoin::CoinSpend::CoinSpend ( )
inline

Definition at line 82 of file CoinSpend.h.

◆ CoinSpend() [2/2]

libzerocoin::CoinSpend::CoinSpend ( CDataStream strm)
inlineexplicit

Definition at line 83 of file CoinSpend.h.

◆ ~CoinSpend()

virtual libzerocoin::CoinSpend::~CoinSpend ( )
inlinevirtual

Definition at line 84 of file CoinSpend.h.

Member Function Documentation

◆ CalculateValidSerial()

CBigNum libzerocoin::CoinSpend::CalculateValidSerial ( ZerocoinParams params)

Definition at line 68 of file CoinSpend.cpp.

◆ getAccCommitment()

CBigNum libzerocoin::CoinSpend::getAccCommitment ( ) const
inline

Definition at line 90 of file CoinSpend.h.

◆ getAccumulatorChecksum()

uint32_t libzerocoin::CoinSpend::getAccumulatorChecksum ( ) const
inline

Definition at line 88 of file CoinSpend.h.

◆ getCoinSerialNumber()

const CBigNum& libzerocoin::CoinSpend::getCoinSerialNumber ( ) const
inline

Definition at line 86 of file CoinSpend.h.

Here is the caller graph for this function:

◆ getCoinVersion()

int libzerocoin::CoinSpend::getCoinVersion ( ) const
inline

Definition at line 93 of file CoinSpend.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getDenomination()

CoinDenomination libzerocoin::CoinSpend::getDenomination ( ) const
inline

Definition at line 87 of file CoinSpend.h.

◆ getPubKey()

CPubKey libzerocoin::CoinSpend::getPubKey ( ) const
inline

Definition at line 94 of file CoinSpend.h.

Here is the caller graph for this function:

◆ getSerialComm()

CBigNum libzerocoin::CoinSpend::getSerialComm ( ) const
inline

Definition at line 91 of file CoinSpend.h.

◆ getSignature()

std::vector<unsigned char> libzerocoin::CoinSpend::getSignature ( ) const
inline

Definition at line 96 of file CoinSpend.h.

◆ getSpendType()

SpendType libzerocoin::CoinSpend::getSpendType ( ) const
inline

Definition at line 95 of file CoinSpend.h.

Here is the caller graph for this function:

◆ getTxOutHash()

uint256 libzerocoin::CoinSpend::getTxOutHash ( ) const
inline

Definition at line 89 of file CoinSpend.h.

◆ getVersion()

uint8_t libzerocoin::CoinSpend::getVersion ( ) const
inline

Definition at line 92 of file CoinSpend.h.

◆ HasValidSerial()

bool libzerocoin::CoinSpend::HasValidSerial ( ZerocoinParams params) const

Definition at line 40 of file CoinSpend.cpp.

Here is the call graph for this function:

◆ HasValidSignature()

bool libzerocoin::CoinSpend::HasValidSignature ( ) const

Definition at line 46 of file CoinSpend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ParseSerial()

std::vector< unsigned char > libzerocoin::CoinSpend::ParseSerial ( CDataStream s)
static

Definition at line 75 of file CoinSpend.cpp.

Here is the call graph for this function:

◆ SERIALIZE_METHODS()

libzerocoin::CoinSpend::SERIALIZE_METHODS ( CoinSpend  ,
obj   
)
inline

Definition at line 110 of file CoinSpend.h.

◆ setDenom()

void libzerocoin::CoinSpend::setDenom ( libzerocoin::CoinDenomination  denom)
inline

Definition at line 104 of file CoinSpend.h.

◆ setPubKey()

void libzerocoin::CoinSpend::setPubKey ( CPubKey  pkey,
bool  fUpdateSerial = false 
)

Definition at line 85 of file CoinSpend.cpp.

Here is the call graph for this function:

◆ setTxOutHash()

void libzerocoin::CoinSpend::setTxOutHash ( uint256  txOutHash)
inline

Definition at line 103 of file CoinSpend.h.

Here is the caller graph for this function:

◆ signatureHash()

const uint256 libzerocoin::CoinSpend::signatureHash ( ) const
virtual

Reimplemented in PublicCoinSpend.

Definition at line 21 of file CoinSpend.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ToString()

std::string libzerocoin::CoinSpend::ToString ( ) const

Definition at line 33 of file CoinSpend.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ accChecksum

uint32_t libzerocoin::CoinSpend::accChecksum {0}
private

Definition at line 133 of file CoinSpend.h.

◆ accCommitmentToCoinValue

CBigNum libzerocoin::CoinSpend::accCommitmentToCoinValue
private

Definition at line 134 of file CoinSpend.h.

◆ accumulatorPoK

AccumulatorProofOfKnowledge libzerocoin::CoinSpend::accumulatorPoK
private

Definition at line 136 of file CoinSpend.h.

◆ coinSerialNumber

CBigNum libzerocoin::CoinSpend::coinSerialNumber {}
protected

Definition at line 124 of file CoinSpend.h.

◆ commitmentPoK

CommitmentProofOfKnowledge libzerocoin::CoinSpend::commitmentPoK
private

Definition at line 138 of file CoinSpend.h.

◆ denomination

CoinDenomination libzerocoin::CoinSpend::denomination {ZQ_ERROR}
protected

Definition at line 123 of file CoinSpend.h.

◆ ptxHash

uint256 libzerocoin::CoinSpend::ptxHash {UINT256_ZERO}
protected

Definition at line 130 of file CoinSpend.h.

◆ pubkey

CPubKey libzerocoin::CoinSpend::pubkey
protected

Definition at line 127 of file CoinSpend.h.

◆ serialCommitmentToCoinValue

CBigNum libzerocoin::CoinSpend::serialCommitmentToCoinValue
private

Definition at line 135 of file CoinSpend.h.

◆ serialNumberSoK

SerialNumberSignatureOfKnowledge libzerocoin::CoinSpend::serialNumberSoK
private

Definition at line 137 of file CoinSpend.h.

◆ spendType

SpendType libzerocoin::CoinSpend::spendType {SPEND}
protected

Definition at line 129 of file CoinSpend.h.

◆ vchSig

std::vector<unsigned char> libzerocoin::CoinSpend::vchSig
protected

Definition at line 128 of file CoinSpend.h.

◆ version

uint8_t libzerocoin::CoinSpend::version {0}
protected

Definition at line 125 of file CoinSpend.h.


The documentation for this class was generated from the following files: