Line data Source code
1 : // Copyright (c) 2020-2021 The PIVX Core developers 2 : // Distributed under the MIT software license, see the accompanying 3 : // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 : 5 : #ifndef PIVX_ZPIV_ZPOS_H 6 : #define PIVX_ZPIV_ZPOS_H 7 : 8 : #include "stakeinput.h" 9 : #include "txdb.h" 10 : 11 : class CLegacyZPivStake : public CStakeInput 12 : { 13 : private: 14 : uint32_t nChecksum{0}; 15 : libzerocoin::CoinDenomination denom{libzerocoin::ZQ_ERROR}; 16 : uint256 hashSerial{UINT256_ZERO}; 17 : 18 : public: 19 0 : CLegacyZPivStake(const CBlockIndex* _pindexFrom, uint32_t _nChecksum, libzerocoin::CoinDenomination _denom, const uint256& _hashSerial) : 20 : CStakeInput(_pindexFrom), 21 : nChecksum(_nChecksum), 22 : denom(_denom), 23 0 : hashSerial(_hashSerial) 24 : {} 25 : 26 : static CLegacyZPivStake* NewZPivStake(const CTxIn& txin, int nHeight); 27 : 28 0 : bool IsZPIV() const override { return true; } 29 : uint32_t GetChecksum() const { return nChecksum; } 30 : const CBlockIndex* GetIndexFrom() const override; 31 : CAmount GetValue() const override; 32 : CDataStream GetUniqueness() const override; 33 0 : bool GetTxOutFrom(CTxOut& out) const override { return false; /* not available */ } 34 : }; 35 : 36 : #endif // PIVX_ZPIV_ZPOS_H