13 unsigned int nLastUsedByte = 0;
14 for (
unsigned int b = 0; 2+b*8 <
vout.size(); b++) {
16 for (
unsigned int i = 0; i < 8 && 2+b*8+i <
vout.size(); i++) {
17 if (!
vout[2+b*8+i].IsNull()) {
23 nLastUsedByte = b + 1;
27 nBytes += nLastUsedByte;
31 if (out.
n >=
vout.size())
33 if (
vout[out.
n].IsNull())
36 vout[out.
n].SetNull();
38 if (
vout.size() == 0) {
49 return Spend(out, undo);
87 std::map<uint256,CCoins>::iterator it =
cacheCoins.lower_bound(txid);
88 if (it !=
cacheCoins.end() && it->first == txid)
93 std::map<uint256,CCoins>::iterator ret =
cacheCoins.insert(it, std::make_pair(txid,
CCoins()));
94 tmp.
swap(ret->second);
99 std::map<uint256,CCoins>::iterator it =
FetchCoins(txid);
125 for (std::map<uint256, CCoins>::const_iterator it = mapCoins.begin(); it != mapCoins.end(); it++)
155 for (
unsigned int i = 0; i < tx.
vin.size(); i++)
165 for (
unsigned int i = 0; i < tx.
vin.size(); i++) {
172 for (
unsigned int i = 0; i < tx.
vin.size(); i++) {
186 double dResult = 0.0;
187 BOOST_FOREACH(
const CTxIn& txin, tx.
vin)
void SetBackend(CCoinsView &viewIn)
double ComputePriority(double dPriorityInputs, unsigned int nTxSize=0) const
std::vector< CTxOut > vout
pruned version of CTransaction: only retains metadata and unspent transaction outputs ...
bool GetStats(CCoinsStats &stats)
virtual uint256 GetBestBlock()
Undo information for a CTxIn.
bool GetCoins(const uint256 &txid, CCoins &coins)
bool IsAvailable(unsigned int nPos) const
virtual bool SetBestBlock(const uint256 &hashBlock)
Abstract view on the open txout dataset.
bool HaveCoins(const uint256 &txid)
An input of a transaction.
virtual bool GetCoins(const uint256 &txid, CCoins &coins)
bool HaveInputs(const CTransaction &tx)
std::map< uint256, CCoins >::iterator FetchCoins(const uint256 &txid)
void CalcMaskSize(unsigned int &nBytes, unsigned int &nNonzeroBytes) const
bool BatchWrite(const std::map< uint256, CCoins > &mapCoins, const uint256 &hashBlock)
const CTxOut & GetOutputFor(const CTxIn &input)
virtual bool HaveCoins(const uint256 &txid)
CCoinsViewCache(CCoinsView &baseIn, bool fDummy=false)
An output of a transaction.
CCoinsViewBacked(CCoinsView &viewIn)
An outpoint - a combination of a transaction hash and an index n into its vout.
virtual bool GetStats(CCoinsStats &stats)
bool SetBestBlock(const uint256 &hashBlock)
bool Spend(const COutPoint &out, CTxInUndo &undo)
double GetPriority(const CTransaction &tx, int nHeight)
virtual bool BatchWrite(const std::map< uint256, CCoins > &mapCoins, const uint256 &hashBlock)
bool SetCoins(const uint256 &txid, const CCoins &coins)
bool HaveCoins(const uint256 &txid)
bool BatchWrite(const std::map< uint256, CCoins > &mapCoins, const uint256 &hashBlock)
int64_t GetValueIn(const CTransaction &tx)
Amount of bitcoins coming in to a transaction Note that lightweight clients may not know anything bes...
bool GetCoins(const uint256 &txid, CCoins &coins)
bool SetCoins(const uint256 &txid, const CCoins &coins)
bool SetBestBlock(const uint256 &hashBlock)
unsigned int GetCacheSize()
The basic transaction that is broadcasted on the network and contained in blocks. ...
CCoinsView backed by another CCoinsView.
std::map< uint256, CCoins > cacheCoins
virtual bool SetCoins(const uint256 &txid, const CCoins &coins)