/Users/eugenesiegel/btc/bitcoin/src/signet.h
| Line | Count | Source (jump to first uncovered line) | 
| 1 |  | // Copyright (c) 2019-2021 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_SIGNET_H | 
| 6 |  | #define BITCOIN_SIGNET_H | 
| 7 |  |  | 
| 8 |  | #include <consensus/params.h> | 
| 9 |  | #include <primitives/block.h> | 
| 10 |  | #include <primitives/transaction.h> | 
| 11 |  |  | 
| 12 |  | #include <optional> | 
| 13 |  |  | 
| 14 |  | /** | 
| 15 |  |  * Extract signature and check whether a block has a valid solution | 
| 16 |  |  */ | 
| 17 |  | bool CheckSignetBlockSolution(const CBlock& block, const Consensus::Params& consensusParams); | 
| 18 |  |  | 
| 19 |  | /** | 
| 20 |  |  * Generate the signet tx corresponding to the given block | 
| 21 |  |  * | 
| 22 |  |  * The signet tx commits to everything in the block except: | 
| 23 |  |  * 1. It hashes a modified merkle root with the signet signature removed. | 
| 24 |  |  * 2. It skips the nonce. | 
| 25 |  |  */ | 
| 26 |  | class SignetTxs { | 
| 27 |  |     template<class T1, class T2> | 
| 28 | 0 |     SignetTxs(const T1& to_spend, const T2& to_sign) : m_to_spend{to_spend}, m_to_sign{to_sign} { } | 
| 29 |  |  | 
| 30 |  | public: | 
| 31 |  |     static std::optional<SignetTxs> Create(const CBlock& block, const CScript& challenge); | 
| 32 |  |  | 
| 33 |  |     const CTransaction m_to_spend; | 
| 34 |  |     const CTransaction m_to_sign; | 
| 35 |  | }; | 
| 36 |  |  | 
| 37 |  | #endif // BITCOIN_SIGNET_H |