/
githubmirror
/
bitcoin
Обзор
Документация
Войти
/
githubmirror
/
bitcoin
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/test/util/transaction_utils.h
53 строки
3 KB
Hodlinator
refactor(test): Make CAmount arg explicit for BuildCreditingTransaction()
03 июн 2026, 23:17
03 июн 2026, 23:17
43ca54c
Код
Авторство
О чём код?
// Copyright (c) 2019-present 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_TEST_UTIL_TRANSACTION_UTILS_H #define BITCOIN_TEST_UTIL_TRANSACTION_UTILS_H #include <primitives/transaction.h> #include <script/sign.h> #include <array> class FillableSigningProvider; class CCoinsViewCache; // create crediting transaction // [1 coinbase input => 1 output with given scriptPubkey and value] CMutableTransaction BuildCreditingTransaction(const CScript& scriptPubKey, CAmount nValue = 0); // create spending transaction // [1 input with referenced transaction outpoint, scriptSig, scriptWitness => // 1 output with empty scriptPubKey, full value of referenced transaction] CMutableTransaction BuildSpendingTransaction(const CScript& scriptSig, const CScriptWitness& scriptWitness, const CTransaction& txCredit); // Helper: create two dummy transactions, each with two outputs. // The first has nValues[0] and nValues[1] outputs paid to a TxoutType::PUBKEY, // the second nValues[2] and nValues[3] outputs paid to a TxoutType::PUBKEYHASH. std::vector<CMutableTransaction> SetupDummyInputs(FillableSigningProvider& keystoreRet, CCoinsViewCache& coinsRet, const std::array<CAmount,4>& nValues); // bulk transaction to reach a certain target weight, // by appending a single output with padded output script void BulkTransaction(CMutableTransaction& tx, int32_t target_weight); /** * Produce a satisfying script (scriptSig or witness). * * @param provider Utility containing the information necessary to solve a script. * @param fromPubKey The script to produce a satisfaction for. * @param txTo The spending transaction. * @param nIn The index of the input in `txTo` referring the output being spent. * @param amount The value of the output being spent. * @param nHashType Signature hash type. * @param sig_data Additional data provided to solve a script. Filled with the resulting satisfying * script and whether the satisfaction is complete. * * @return True if the produced script is entirely satisfying `fromPubKey`. **/ bool SignSignature(const SigningProvider &provider, const CScript& fromPubKey, CMutableTransaction& txTo, unsigned int nIn, const CAmount& amount, int nHashType, SignatureData& sig_data); bool SignSignature(const SigningProvider &provider, const CTransaction& txFrom, CMutableTransaction& txTo, unsigned int nIn, int nHashType, SignatureData& sig_data); #endif // BITCOIN_TEST_UTIL_TRANSACTION_UTILS_H