Blackcoin Lore
This commit is contained in:
@@ -155,6 +155,23 @@ public:
|
||||
return (nValue == -1);
|
||||
}
|
||||
|
||||
void SetEmpty()
|
||||
{
|
||||
nValue = 0;
|
||||
scriptPubKey.clear();
|
||||
}
|
||||
|
||||
bool IsEmpty() const
|
||||
{
|
||||
return (nValue == 0 && scriptPubKey.empty());
|
||||
}
|
||||
|
||||
bool IsUnspendable() const
|
||||
{
|
||||
return IsEmpty() ||
|
||||
(scriptPubKey.size() > 0 && *scriptPubKey.begin() == OP_RETURN);
|
||||
}
|
||||
|
||||
uint256 GetHash() const;
|
||||
|
||||
CAmount GetDustThreshold(const CFeeRate &minRelayTxFee) const
|
||||
@@ -167,9 +184,8 @@ public:
|
||||
// need a CTxIn of at least 148 bytes to spend:
|
||||
// so dust is a spendable txout less than
|
||||
// 546*minRelayTxFee/1000 (in satoshis)
|
||||
if (scriptPubKey.IsUnspendable())
|
||||
return 0;
|
||||
|
||||
if (scriptPubKey.IsUnspendable())
|
||||
return 0;
|
||||
size_t nSize = GetSerializeSize(SER_DISK,0)+148u;
|
||||
return 3*minRelayTxFee.GetFee(nSize);
|
||||
}
|
||||
@@ -221,6 +237,7 @@ public:
|
||||
// and bypass the constness. This is safe, as they update the entire
|
||||
// structure, including the hash.
|
||||
const int32_t nVersion;
|
||||
unsigned int nTime;
|
||||
const std::vector<CTxIn> vin;
|
||||
const std::vector<CTxOut> vout;
|
||||
const uint32_t nLockTime;
|
||||
@@ -239,6 +256,7 @@ public:
|
||||
inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) {
|
||||
READWRITE(*const_cast<int32_t*>(&this->nVersion));
|
||||
nVersion = this->nVersion;
|
||||
READWRITE(*const_cast<uint32_t*>(&nTime));
|
||||
READWRITE(*const_cast<std::vector<CTxIn>*>(&vin));
|
||||
READWRITE(*const_cast<std::vector<CTxOut>*>(&vout));
|
||||
READWRITE(*const_cast<uint32_t*>(&nLockTime));
|
||||
@@ -265,6 +283,12 @@ public:
|
||||
// Compute modified tx size for priority calculation (optionally given tx size)
|
||||
unsigned int CalculateModifiedSize(unsigned int nTxSize=0) const;
|
||||
|
||||
bool IsCoinStake() const
|
||||
{
|
||||
// the coin stake transaction is marked with the first output empty
|
||||
return (vin.size() > 0 && (!vin[0].prevout.IsNull()) && vout.size() >= 2 && vout[0].IsEmpty());
|
||||
}
|
||||
|
||||
bool IsCoinBase() const
|
||||
{
|
||||
return (vin.size() == 1 && vin[0].prevout.IsNull());
|
||||
@@ -287,6 +311,7 @@ public:
|
||||
struct CMutableTransaction
|
||||
{
|
||||
int32_t nVersion;
|
||||
uint32_t nTime;
|
||||
std::vector<CTxIn> vin;
|
||||
std::vector<CTxOut> vout;
|
||||
uint32_t nLockTime;
|
||||
@@ -300,6 +325,7 @@ struct CMutableTransaction
|
||||
inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) {
|
||||
READWRITE(this->nVersion);
|
||||
nVersion = this->nVersion;
|
||||
READWRITE(nTime);
|
||||
READWRITE(vin);
|
||||
READWRITE(vout);
|
||||
READWRITE(nLockTime);
|
||||
|
||||
Reference in New Issue
Block a user