25 result.
inputs.resize(psbtx.
tx->vin.size());
29 for (
unsigned int i = 0; i < psbtx.
tx->vin.size(); ++i) {
85 }
else if (!utxo.
IsNull()){
92 for (
unsigned int i = 0; i < psbtx.
tx->vin.size(); ++i) {
94 result.
next = std::min(result.
next, input_analysis.
next);
100 CAmount out_amt = std::accumulate(psbtx.
tx->vout.begin(), psbtx.
tx->vout.end(),
CAmount(0),
105 return a += b.nValue;
109 result.
SetInvalid(
"PSBT is not valid. Output amount invalid");
114 CAmount fee = in_amt - out_amt;
123 for (
unsigned int i = 0; i < psbtx.
tx->vin.size(); ++i) {
134 view.
AddCoin(psbtx.
tx->vin[i].prevout, std::move(newcoin),
true);
bool SignPSBTInput(const SigningProvider &provider, PartiallySignedTransaction &psbt, int index, const PrecomputedTransactionData *txdata, int sighash, SignatureData *out_sigdata, bool finalize)
Signs a PSBTInput, verifying that all provided data matches what is being signed. ...
std::vector< CKeyID > missing_sigs
KeyIDs of pubkeys for signatures which could not be found.
bool MoneyRange(const CAmount &nValue)
CTxOut out
unspent transaction output
std::vector< CKeyID > missing_pubkeys
KeyIDs of pubkeys which could not be found.
A version of CTransaction with the PSBT format.
int64_t GetVirtualTransactionSize(int64_t nWeight, int64_t nSigOpCost, unsigned int bytes_per_sigop)
Compute the virtual transaction size (weight reinterpreted as bytes).
uint256 missing_witness_script
SHA256 of the missing witnessScript (if any)
static constexpr unsigned int STANDARD_SCRIPT_VERIFY_FLAGS
Standard script verification flags that standard transactions will comply with.
std::optional< CAmount > fee
Amount of fee being paid by the transaction.
void SetInvalid(std::string err_msg)
bool IsUnspendable() const
Returns whether the script is guaranteed to fail at execution, regardless of the initial stack...
int64_t CAmount
Amount in satoshis (Can be negative)
std::optional< size_t > estimated_vsize
Estimated weight of the transaction.
uint32_t nHeight
at which height this containing transaction was included in the active block chain ...
uint160 missing_redeem_script
ScriptID of the missing redeemScript (if any)
int64_t GetTransactionSigOpCost(const CTransaction &tx, const CCoinsViewCache &inputs, uint32_t flags)
Compute total signature operation cost of a transaction.
Abstract view on the open txout dataset.
bool PSBTInputSignedAndVerified(const PartiallySignedTransaction psbt, unsigned int input_index, const PrecomputedTransactionData *txdata)
Checks whether a PSBTInput is already signed by doing script verification using final fields...
std::optional< CFeeRate > estimated_feerate
Estimated feerate (fee / weight) of the transaction.
const SigningProvider & DUMMY_SIGNING_PROVIDER
An output of a transaction.
constexpr bool IsNull() const
std::vector< PSBTInput > inputs
void AddCoin(const COutPoint &outpoint, Coin &&coin, bool possible_overwrite)
Add a coin.
std::vector< PSBTInputAnalysis > inputs
More information about the individual inputs of the transaction.
unsigned int nBytesPerSigOp
Holds the results of AnalyzePSBT (miscellaneous information about a PSBT)
Fee rate in satoshis per kilovirtualbyte: CAmount / kvB.
A mutable version of CTransaction.
The basic transaction that is broadcasted on the network and contained in blocks. ...
CCoinsView that adds a memory cache for transactions to another CCoinsView.
std::optional< CMutableTransaction > tx
PSBTAnalysis AnalyzePSBT(PartiallySignedTransaction psbtx)
Provides helpful miscellaneous information about where a PSBT is in the signing workflow.
bool GetInputUTXO(CTxOut &utxo, int input_index) const
Finds the UTXO for a given input index.
PSBTRole next
Which of the BIP 174 roles needs to handle the transaction next.
PrecomputedTransactionData PrecomputePSBTData(const PartiallySignedTransaction &psbt)
Compute a PrecomputedTransactionData object from a psbt.