Example #1
0
bool CCoinsViewCache::HaveInputs(const CTransaction& tx) const
{
    if (!tx.IsCoinBase() || tx.IsPoW2WitnessCoinBase()) {
        for (unsigned int i = 0; i < tx.vin.size(); i++) {
            if (!HaveCoin(tx.vin[i].prevout)) {
                if (!tx.IsPoW2WitnessCoinBase() || !tx.vin[i].prevout.IsNull())
                    return false;
            }
        }
    }
    return true;
}
Example #2
0
CAmount CCoinsViewCache::GetValueIn(const CTransaction& tx) const
{
    if (tx.IsCoinBase() && !tx.IsPoW2WitnessCoinBase())
        return 0;

    CAmount nResult = 0;
    for (unsigned int i = 0; i < tx.vin.size(); i++)
    {
        CAmount coinAmount = AccessCoin(tx.vin[i].prevout).out.nValue;
        if (coinAmount != -1)
        {
            nResult += coinAmount;
        }
    }

    return nResult;
}