dash/src/governance-validators.h

64 lines
1.3 KiB
C
Raw Normal View History

// Copyright (c) 2014-2017 The Dash Core developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef GOVERNANCE_VALIDATORS_H
#define GOVERNANCE_VALIDATORS_H
#include <string>
#include <univalue.h>
class CProposalValidator {
public:
CProposalValidator(const std::string& strDataHexIn = std::string());
void Clear();
void SetHexData(const std::string& strDataHexIn);
bool Validate();
bool ValidateJSON();
bool ValidateName();
bool ValidateStartEndEpoch();
bool ValidatePaymentAmount();
bool ValidatePaymentAddress();
bool ValidateURL();
const std::string& GetErrorMessages()
{
return strErrorMessages;
}
private:
void ParseJSONData();
bool GetDataValue(const std::string& strKey, std::string& strValue);
bool GetDataValue(const std::string& strKey, int64_t& nValue);
bool GetDataValue(const std::string& strKey, double& dValue);
static std::string StripWhitespace(const std::string& strIn);
static bool CheckURL(const std::string& strURLIn);
private:
std::string strDataHex;
UniValue objJSON;
bool fJSONValid;
std::string strErrorMessages;
};
#endif