2018-01-02 14:12:05 -03:00
|
|
|
// Copyright (c) 2016-2017 The Bitcoin Core developers
|
2015-12-16 16:57:54 -03:00
|
|
|
// Distributed under the MIT software license, see the accompanying
|
|
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
|
|
|
|
#ifndef BITCOIN_POLICY_RBF_H
|
|
|
|
#define BITCOIN_POLICY_RBF_H
|
|
|
|
|
2017-11-09 21:57:53 -03:00
|
|
|
#include <txmempool.h>
|
2015-12-16 16:57:54 -03:00
|
|
|
|
2017-02-03 16:13:28 -03:00
|
|
|
static const uint32_t MAX_BIP125_RBF_SEQUENCE = 0xfffffffd;
|
|
|
|
|
2016-04-05 09:20:49 -03:00
|
|
|
enum RBFTransactionState {
|
|
|
|
RBF_TRANSACTIONSTATE_UNKNOWN,
|
|
|
|
RBF_TRANSACTIONSTATE_REPLACEABLE_BIP125,
|
|
|
|
RBF_TRANSACTIONSTATE_FINAL
|
|
|
|
};
|
|
|
|
|
2015-12-16 16:57:54 -03:00
|
|
|
// Check whether the sequence numbers on this transaction are signaling
|
|
|
|
// opt-in to replace-by-fee, according to BIP 125
|
|
|
|
bool SignalsOptInRBF(const CTransaction &tx);
|
|
|
|
|
|
|
|
// Determine whether an in-mempool transaction is signaling opt-in to RBF
|
|
|
|
// according to BIP 125
|
|
|
|
// This involves checking sequence numbers of the transaction, as well
|
|
|
|
// as the sequence numbers of all in-mempool ancestors.
|
2016-04-05 09:20:49 -03:00
|
|
|
RBFTransactionState IsRBFOptIn(const CTransaction &tx, CTxMemPool &pool);
|
2015-12-16 16:57:54 -03:00
|
|
|
|
|
|
|
#endif // BITCOIN_POLICY_RBF_H
|