Bitcoin Core
31.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
test
util
transaction_utils.h
Go to the documentation of this file.
1
// Copyright (c) 2019-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_TEST_UTIL_TRANSACTION_UTILS_H
6
#define BITCOIN_TEST_UTIL_TRANSACTION_UTILS_H
7
8
#include <
primitives/transaction.h
>
9
#include <
script/sign.h
>
10
11
#include <array>
12
13
class
FillableSigningProvider
;
14
class
CCoinsViewCache
;
15
16
// create crediting transaction
17
// [1 coinbase input => 1 output with given scriptPubkey and value]
18
CMutableTransaction
BuildCreditingTransaction
(
const
CScript
& scriptPubKey,
int
nValue = 0);
19
20
// create spending transaction
21
// [1 input with referenced transaction outpoint, scriptSig, scriptWitness =>
22
// 1 output with empty scriptPubKey, full value of referenced transaction]
23
CMutableTransaction
BuildSpendingTransaction
(
const
CScript
& scriptSig,
const
CScriptWitness
& scriptWitness,
const
CTransaction
& txCredit);
24
25
// Helper: create two dummy transactions, each with two outputs.
26
// The first has nValues[0] and nValues[1] outputs paid to a TxoutType::PUBKEY,
27
// the second nValues[2] and nValues[3] outputs paid to a TxoutType::PUBKEYHASH.
28
std::vector<CMutableTransaction>
SetupDummyInputs
(
FillableSigningProvider
& keystoreRet,
CCoinsViewCache
& coinsRet,
const
std::array<CAmount,4>& nValues);
29
30
// bulk transaction to reach a certain target weight,
31
// by appending a single output with padded output script
32
void
BulkTransaction
(
CMutableTransaction
& tx, int32_t target_weight);
33
48
bool
SignSignature
(
const
SigningProvider
&provider,
const
CScript
& fromPubKey,
CMutableTransaction
& txTo,
49
unsigned
int
nIn,
const
CAmount
& amount,
int
nHashType,
SignatureData
& sig_data);
50
bool
SignSignature
(
const
SigningProvider
&provider,
const
CTransaction
& txFrom,
CMutableTransaction
& txTo,
51
unsigned
int
nIn,
int
nHashType,
SignatureData
& sig_data);
52
53
#endif
// BITCOIN_TEST_UTIL_TRANSACTION_UTILS_H
CAmount
int64_t CAmount
Amount in satoshis (Can be negative).
Definition
amount.h:12
CCoinsViewCache
CCoinsView that adds a memory cache for transactions to another CCoinsView.
Definition
coins.h:368
CScript
Serialized script, used inside transaction inputs and outputs.
Definition
script.h:405
CTransaction
The basic transaction that is broadcasted on the network and contained in blocks.
Definition
transaction.h:281
FillableSigningProvider
Fillable signing provider that keeps keys in an address->secret map.
Definition
signingprovider.h:251
SigningProvider
An interface to be implemented by keystores that support signing.
Definition
signingprovider.h:157
transaction.h
sign.h
CMutableTransaction
A mutable version of CTransaction.
Definition
transaction.h:358
CScriptWitness
Definition
script.h:577
SignatureData
Definition
sign.h:77
BuildSpendingTransaction
CMutableTransaction BuildSpendingTransaction(const CScript &scriptSig, const CScriptWitness &scriptWitness, const CTransaction &txCredit)
Definition
transaction_utils.cpp:26
BulkTransaction
void BulkTransaction(CMutableTransaction &tx, int32_t target_weight)
Definition
transaction_utils.cpp:74
BuildCreditingTransaction
CMutableTransaction BuildCreditingTransaction(const CScript &scriptPubKey, int nValue=0)
Definition
transaction_utils.cpp:10
SetupDummyInputs
std::vector< CMutableTransaction > SetupDummyInputs(FillableSigningProvider &keystoreRet, CCoinsViewCache &coinsRet, const std::array< CAmount, 4 > &nValues)
Definition
transaction_utils.cpp:44
SignSignature
bool SignSignature(const SigningProvider &provider, const CScript &fromPubKey, CMutableTransaction &txTo, unsigned int nIn, const CAmount &amount, int nHashType, SignatureData &sig_data)
Produce a satisfying script (scriptSig or witness).
Definition
transaction_utils.cpp:94
Generated on
for Bitcoin Core by
1.17.0