We aint got no JoinSplits around here
This commit is contained in:
@@ -624,7 +624,7 @@ CAmount CCoinsViewCache::GetValueIn(int32_t nHeight,int64_t *interestp,const CTr
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool CCoinsViewCache::HaveJoinSplitRequirements(const CTransaction& tx) const
|
bool CCoinsViewCache::HaveShieldedRequirements(const CTransaction& tx) const
|
||||||
{
|
{
|
||||||
for (const SpendDescription &spendDescription : tx.vShieldedSpend) {
|
for (const SpendDescription &spendDescription : tx.vShieldedSpend) {
|
||||||
if (GetNullifier(spendDescription.nullifier, SAPLING)) { // Prevent double spends
|
if (GetNullifier(spendDescription.nullifier, SAPLING)) { // Prevent double spends
|
||||||
|
|||||||
@@ -563,7 +563,7 @@ public:
|
|||||||
bool HaveInputs(const CTransaction& tx) const;
|
bool HaveInputs(const CTransaction& tx) const;
|
||||||
|
|
||||||
//! Check whether all joinsplit requirements (anchors/nullifiers) are satisfied
|
//! Check whether all joinsplit requirements (anchors/nullifiers) are satisfied
|
||||||
bool HaveJoinSplitRequirements(const CTransaction& tx) const;
|
bool HaveShieldedRequirements(const CTransaction& tx) const;
|
||||||
|
|
||||||
//! Return priority of tx at height nHeight
|
//! Return priority of tx at height nHeight
|
||||||
double GetPriority(const CTransaction &tx, int nHeight) const;
|
double GetPriority(const CTransaction &tx, int nHeight) const;
|
||||||
|
|||||||
@@ -1894,7 +1894,7 @@ bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransa
|
|||||||
}
|
}
|
||||||
|
|
||||||
// are the joinsplit's requirements met?
|
// are the joinsplit's requirements met?
|
||||||
if (!view.HaveJoinSplitRequirements(tx))
|
if (!view.HaveShieldedRequirements(tx))
|
||||||
{
|
{
|
||||||
//fprintf(stderr,"accept failure.2\n");
|
//fprintf(stderr,"accept failure.2\n");
|
||||||
return state.Invalid(error("AcceptToMemoryPool: joinsplit requirements not met"),REJECT_DUPLICATE, "bad-txns-joinsplit-requirements-not-met");
|
return state.Invalid(error("AcceptToMemoryPool: joinsplit requirements not met"),REJECT_DUPLICATE, "bad-txns-joinsplit-requirements-not-met");
|
||||||
@@ -2719,7 +2719,7 @@ namespace Consensus {
|
|||||||
return state.Invalid(error("CheckInputs(): %s inputs unavailable", tx.GetHash().ToString()));
|
return state.Invalid(error("CheckInputs(): %s inputs unavailable", tx.GetHash().ToString()));
|
||||||
|
|
||||||
// are the JoinSplit's requirements met?
|
// are the JoinSplit's requirements met?
|
||||||
if (!inputs.HaveJoinSplitRequirements(tx))
|
if (!inputs.HaveShieldedRequirements(tx))
|
||||||
return state.Invalid(error("CheckInputs(): %s JoinSplit requirements not met", tx.GetHash().ToString()));
|
return state.Invalid(error("CheckInputs(): %s JoinSplit requirements not met", tx.GetHash().ToString()));
|
||||||
|
|
||||||
CAmount nValueIn = 0;
|
CAmount nValueIn = 0;
|
||||||
@@ -3536,7 +3536,7 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin
|
|||||||
REJECT_INVALID, "bad-txns-inputs-missingorspent");
|
REJECT_INVALID, "bad-txns-inputs-missingorspent");
|
||||||
}
|
}
|
||||||
// are the JoinSplit's requirements met?
|
// are the JoinSplit's requirements met?
|
||||||
if (!view.HaveJoinSplitRequirements(tx))
|
if (!view.HaveShieldedRequirements(tx))
|
||||||
return state.DoS(100, error("ConnectBlock(): JoinSplit requirements not met"),
|
return state.DoS(100, error("ConnectBlock(): JoinSplit requirements not met"),
|
||||||
REJECT_INVALID, "bad-txns-joinsplit-requirements-not-met");
|
REJECT_INVALID, "bad-txns-joinsplit-requirements-not-met");
|
||||||
|
|
||||||
|
|||||||
@@ -632,7 +632,7 @@ BOOST_AUTO_TEST_CASE(chained_joinsplits)
|
|||||||
CMutableTransaction mtx;
|
CMutableTransaction mtx;
|
||||||
mtx.vjoinsplit.push_back(js2);
|
mtx.vjoinsplit.push_back(js2);
|
||||||
|
|
||||||
BOOST_CHECK(!cache.HaveJoinSplitRequirements(mtx));
|
BOOST_CHECK(!cache.HaveShieldedRequirements(mtx));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -642,7 +642,7 @@ BOOST_AUTO_TEST_CASE(chained_joinsplits)
|
|||||||
mtx.vjoinsplit.push_back(js2);
|
mtx.vjoinsplit.push_back(js2);
|
||||||
mtx.vjoinsplit.push_back(js1);
|
mtx.vjoinsplit.push_back(js1);
|
||||||
|
|
||||||
BOOST_CHECK(!cache.HaveJoinSplitRequirements(mtx));
|
BOOST_CHECK(!cache.HaveShieldedRequirements(mtx));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -650,7 +650,7 @@ BOOST_AUTO_TEST_CASE(chained_joinsplits)
|
|||||||
mtx.vjoinsplit.push_back(js1);
|
mtx.vjoinsplit.push_back(js1);
|
||||||
mtx.vjoinsplit.push_back(js2);
|
mtx.vjoinsplit.push_back(js2);
|
||||||
|
|
||||||
BOOST_CHECK(cache.HaveJoinSplitRequirements(mtx));
|
BOOST_CHECK(cache.HaveShieldedRequirements(mtx));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -659,7 +659,7 @@ BOOST_AUTO_TEST_CASE(chained_joinsplits)
|
|||||||
mtx.vjoinsplit.push_back(js2);
|
mtx.vjoinsplit.push_back(js2);
|
||||||
mtx.vjoinsplit.push_back(js3);
|
mtx.vjoinsplit.push_back(js3);
|
||||||
|
|
||||||
BOOST_CHECK(cache.HaveJoinSplitRequirements(mtx));
|
BOOST_CHECK(cache.HaveShieldedRequirements(mtx));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -669,7 +669,7 @@ BOOST_AUTO_TEST_CASE(chained_joinsplits)
|
|||||||
mtx.vjoinsplit.push_back(js2);
|
mtx.vjoinsplit.push_back(js2);
|
||||||
mtx.vjoinsplit.push_back(js3);
|
mtx.vjoinsplit.push_back(js3);
|
||||||
|
|
||||||
BOOST_CHECK(cache.HaveJoinSplitRequirements(mtx));
|
BOOST_CHECK(cache.HaveShieldedRequirements(mtx));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user