rbf.h
1 // Copyright (c) 2016-present The Bitcoin Core developers 2 // Distributed under the MIT software license, see the accompanying 3 // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 5 #ifndef BITCOIN_UTIL_RBF_H 6 #define BITCOIN_UTIL_RBF_H 7 8 #include <cstdint> 9 10 class CTransaction; 11 12 static constexpr uint32_t MAX_BIP125_RBF_SEQUENCE{0xfffffffd}; 13 14 /** Check whether the sequence numbers on this transaction are signaling opt-in to replace-by-fee, 15 * according to BIP 125. Allow opt-out of transaction replacement by setting nSequence > 16 * MAX_BIP125_RBF_SEQUENCE (SEQUENCE_FINAL-2) on all inputs. 17 * 18 * SEQUENCE_FINAL-1 is picked to still allow use of nLockTime by non-replaceable transactions. All 19 * inputs rather than just one is for the sake of multi-party protocols, where we don't want a single 20 * party to be able to disable replacement by opting out in their own input. */ 21 bool SignalsOptInRBF(const CTransaction& tx); 22 23 #endif // BITCOIN_UTIL_RBF_H