forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
partial bitcoin#20833: enable packages through testmempoolaccept
excludes: - c9e1a26 (will be added in future fuzzing PR) inapplicable: - 249f43f (we don't have RBF)
- Loading branch information
Showing
15 changed files
with
763 additions
and
84 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
// Copyright (c) 2021 The Bitcoin Core developers | ||
// Distributed under the MIT software license, see the accompanying | ||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||
|
||
#ifndef BITCOIN_POLICY_PACKAGES_H | ||
#define BITCOIN_POLICY_PACKAGES_H | ||
|
||
#include <consensus/validation.h> | ||
#include <primitives/transaction.h> | ||
|
||
#include <vector> | ||
|
||
/** Default maximum number of transactions in a package. */ | ||
static constexpr uint32_t MAX_PACKAGE_COUNT{25}; | ||
/** Default maximum total virtual size of transactions in a package in KvB. */ | ||
static constexpr uint32_t MAX_PACKAGE_SIZE{101}; | ||
|
||
/** 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. | ||
*/ | ||
enum class PackageValidationResult { | ||
PCKG_RESULT_UNSET = 0, //!< Initial value. The package has not yet been rejected. | ||
PCKG_POLICY, //!< The package itself is invalid (e.g. too many transactions). | ||
PCKG_TX, //!< At least one tx is invalid. | ||
}; | ||
|
||
/** A package is an ordered list of transactions. The transactions cannot conflict with (spend the | ||
* same inputs as) one another. */ | ||
using Package = std::vector<CTransactionRef>; | ||
|
||
class PackageValidationState : public ValidationState<PackageValidationResult> {}; | ||
|
||
#endif // BITCOIN_POLICY_PACKAGES_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.