refactor: Add CalculateLockPointsAtTip() function

This commit is contained in:
Hennadii Stepanov
2023-01-31 13:26:45 +00:00
parent 78aee0fe2c
commit 3bc434f459
2 changed files with 104 additions and 0 deletions

View File

@@ -244,6 +244,29 @@ PackageMempoolAcceptResult ProcessNewPackage(Chainstate& active_chainstate, CTxM
*/
bool CheckFinalTxAtTip(const CBlockIndex& active_chain_tip, const CTransaction& tx) EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
/**
* Calculate LockPoints required to check if transaction will be BIP68 final in the next block
* to be created on top of tip.
*
* @param[in] tip Chain tip for which tx sequence locks are calculated. For
* example, the tip of the current active chain.
* @param[in] coins_view Any CCoinsView that provides access to the relevant coins for
* checking sequence locks. For example, it can be a CCoinsViewCache
* that isn't connected to anything but contains all the relevant
* coins, or a CCoinsViewMemPool that is connected to the
* mempool and chainstate UTXO set. In the latter case, the caller
* is responsible for holding the appropriate locks to ensure that
* calls to GetCoin() return correct coins.
* @param[in] tx The transaction being evaluated.
*
* @returns The resulting height and time calculated and the hash of the block needed for
* calculation, or std::nullopt if there is an error.
*/
std::optional<LockPoints> CalculateLockPointsAtTip(
CBlockIndex* tip,
const CCoinsView& coins_view,
const CTransaction& tx);
/**
* Check if transaction will be BIP68 final in the next block to be created on top of tip.
* @param[in] tip Chain tip to check tx sequence locks against. For example,