Files
agrarian/src/genwit.h
T
2022-02-03 23:45:47 -08:00

62 lines
1.4 KiB
C++

// Copyright (c) 2015-2018 The PIVX developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef Agrarian_GENWIT_H
#define Agrarian_GENWIT_H
#include <iostream>
#include "bloom.h"
#include "libzerocoin/Denominations.h"
#include "net.h"
class CGenWit {
public:
CGenWit();
CGenWit(const CBloomFilter &filter, int startingHeight, libzerocoin::CoinDenomination den, int requestNum, CBigNum accWitValue = 0);
bool isValid(int chainActiveHeight);
ADD_SERIALIZE_METHODS;
template <typename Stream, typename Operation>
inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) {
READWRITE(filter);
filter.setNotFull();
READWRITE(startingHeight);
READWRITE(den);
READWRITE(requestNum);
READWRITE(accWitValue);
}
const CBloomFilter &getFilter() const;
int getStartingHeight() const;
libzerocoin::CoinDenomination getDen() const;
int getRequestNum() const;
CNode *getPfrom() const;
void setPfrom(CNode *pfrom);
const CBigNum &getAccWitValue() const;
const std::string toString() const;
private:
CBloomFilter filter;
int startingHeight;
libzerocoin::CoinDenomination den;
int requestNum;
CBigNum accWitValue;
CNode* pfrom;
};
#endif //Agrarian_GENWIT_H