Changeset View
Changeset View
Standalone View
Standalone View
src/txmempool.h
Show First 20 Lines • Show All 764 Lines • ▼ Show 20 Lines | private: | ||||
removeUnchecked(txiter entry, | removeUnchecked(txiter entry, | ||||
MemPoolRemovalReason reason = MemPoolRemovalReason::UNKNOWN) | MemPoolRemovalReason reason = MemPoolRemovalReason::UNKNOWN) | ||||
EXCLUSIVE_LOCKS_REQUIRED(cs); | EXCLUSIVE_LOCKS_REQUIRED(cs); | ||||
}; | }; | ||||
/** | /** | ||||
* CCoinsView that brings transactions from a memorypool into view. | * CCoinsView that brings transactions from a memorypool into view. | ||||
* It does not check for spendings by memory pool transactions. | * It does not check for spendings by memory pool transactions. | ||||
* Instead, it provides access to all Coins which are either unspent in the | |||||
* base CCoinsView, or are outputs from any mempool transaction! | |||||
* This allows transaction replacement to work as expected, as you want to | |||||
* have all inputs "available" to check signatures, and any cycles in the | |||||
* dependency graph are checked directly in AcceptToMemoryPool. | |||||
* It also allows you to sign a double-spend directly in signrawtransaction, | |||||
* as long as the conflicting transaction is not yet confirmed. | |||||
*/ | */ | ||||
class CCoinsViewMemPool : public CCoinsViewBacked { | class CCoinsViewMemPool : public CCoinsViewBacked { | ||||
protected: | protected: | ||||
const CTxMemPool &mempool; | const CTxMemPool &mempool; | ||||
public: | public: | ||||
CCoinsViewMemPool(CCoinsView *baseIn, const CTxMemPool &mempoolIn); | CCoinsViewMemPool(CCoinsView *baseIn, const CTxMemPool &mempoolIn); | ||||
bool GetCoin(const COutPoint &outpoint, Coin &coin) const override; | bool GetCoin(const COutPoint &outpoint, Coin &coin) const override; | ||||
▲ Show 20 Lines • Show All 138 Lines • Show Last 20 Lines |