![]() |
Bitcoin ABC
0.26.3
P2P Digital Currency
|
#include <consensus/validation.h>
#include <policy/policy.h>
#include <primitives/transaction.h>
#include <vector>
Go to the source code of this file.
Classes | |
class | PackageValidationState |
Typedefs | |
using | Package = std::vector< CTransactionRef > |
A package is an ordered list of transactions. More... | |
Enumerations | |
enum class | PackageValidationResult { PCKG_RESULT_UNSET = 0 , PCKG_POLICY , PCKG_TX , PCKG_MEMPOOL_ERROR } |
A "reason" why a package was invalid. More... | |
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... | |
bool | IsChildWithParentsTree (const Package &package) |
Context-free check that a package IsChildWithParents() and none of the parents depend on each other (the package is a "tree"). More... | |
uint256 | GetPackageHash (const Package &package) |
Variables | |
static constexpr uint32_t | MAX_PACKAGE_COUNT {50} |
Default maximum number of transactions in a package. More... | |
static constexpr uint32_t | MAX_PACKAGE_SIZE {101} |
Default maximum total size of transactions in a package in KB. More... | |
using Package = std::vector<CTransactionRef> |
A package is an ordered list of transactions.
The transactions cannot conflict with (spend the same inputs as) one another.
Definition at line 40 of file packages.h.
|
strong |
A "reason" why a package was invalid.
It may be that one or more of the included transactions is invalid or the package itself violates our rules. We don't distinguish between consensus and policy violations right now.
Definition at line 25 of file packages.h.
bool CheckPackage | ( | const Package & | txns, |
PackageValidationState & | state | ||
) |
Context-free package policy checks:
Definition at line 14 of file packages.cpp.
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 86 of file packages.cpp.
bool IsChildWithParentsTree | ( | const Package & | package | ) |
Context-free check that a package IsChildWithParents() and none of the parents depend on each other (the package is a "tree").
Definition at line 109 of file packages.cpp.
|
staticconstexpr |
Default maximum number of transactions in a package.
Definition at line 15 of file packages.h.
|
staticconstexpr |
Default maximum total size of transactions in a package in KB.
Definition at line 17 of file packages.h.