Bitcoin Core  23.99.0
P2P Digital Currency
Functions
packages.cpp File Reference
#include <policy/packages.h>
#include <policy/policy.h>
#include <primitives/transaction.h>
#include <uint256.h>
#include <util/hasher.h>
#include <algorithm>
#include <cassert>
#include <iterator>
#include <memory>
#include <numeric>
#include <unordered_set>
Include dependency graph for packages.cpp:

Go to the source code of this file.

Functions

bool CheckPackage (const Package &txns, PackageValidationState &state)
 Context-free package policy checks: More...
 
bool IsChildWithParents (const Package &package)
 Context-free check that a package is exactly one child and its parents; not all parents need to be present, but the package must not contain any transactions that are not the child's parents. More...
 

Function Documentation

◆ CheckPackage()

bool CheckPackage ( const Package txns,
PackageValidationState state 
)

Context-free package policy checks:

  1. The number of transactions cannot exceed MAX_PACKAGE_COUNT.
  2. The total virtual size cannot exceed MAX_PACKAGE_SIZE.
  3. If any dependencies exist between transactions, parents must appear before children.
  4. Transactions cannot conflict, i.e., spend the same inputs.

Definition at line 18 of file packages.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsChildWithParents()

bool IsChildWithParents ( const Package package)

Context-free check that a package is exactly one child and its parents; not all parents need to be present, but the package must not contain any transactions that are not the child's parents.

It is expected to be sorted, which means the last transaction must be the child.

Definition at line 68 of file packages.cpp.

Here is the call graph for this function:
Here is the caller graph for this function: