Bitcoin Core  23.99.0
P2P Digital Currency
Classes | Functions | Variables
bitcoin-tx.cpp File Reference
#include <clientversion.h>
#include <coins.h>
#include <compat/compat.h>
#include <consensus/amount.h>
#include <consensus/consensus.h>
#include <core_io.h>
#include <key_io.h>
#include <fs.h>
#include <policy/policy.h>
#include <policy/rbf.h>
#include <primitives/transaction.h>
#include <script/script.h>
#include <script/sign.h>
#include <script/signingprovider.h>
#include <univalue.h>
#include <util/moneystr.h>
#include <util/rbf.h>
#include <util/strencodings.h>
#include <util/string.h>
#include <util/system.h>
#include <util/translation.h>
#include <functional>
#include <memory>
#include <stdio.h>
Include dependency graph for bitcoin-tx.cpp:

Go to the source code of this file.

Classes

class  Secp256k1Init
 

Functions

static void SetupBitcoinTxArgs (ArgsManager &argsman)
 
static int AppInitRawTx (int argc, char *argv[])
 
static void RegisterSetJson (const std::string &key, const std::string &rawJson)
 
static void RegisterSet (const std::string &strInput)
 
static void RegisterLoad (const std::string &strInput)
 
static CAmount ExtractAndValidateValue (const std::string &strValue)
 
static void MutateTxVersion (CMutableTransaction &tx, const std::string &cmdVal)
 
static void MutateTxLocktime (CMutableTransaction &tx, const std::string &cmdVal)
 
static void MutateTxRBFOptIn (CMutableTransaction &tx, const std::string &strInIdx)
 
template<typename T >
static T TrimAndParse (const std::string &int_str, const std::string &err)
 
static void MutateTxAddInput (CMutableTransaction &tx, const std::string &strInput)
 
static void MutateTxAddOutAddr (CMutableTransaction &tx, const std::string &strInput)
 
static void MutateTxAddOutPubKey (CMutableTransaction &tx, const std::string &strInput)
 
static void MutateTxAddOutMultiSig (CMutableTransaction &tx, const std::string &strInput)
 
static void MutateTxAddOutData (CMutableTransaction &tx, const std::string &strInput)
 
static void MutateTxAddOutScript (CMutableTransaction &tx, const std::string &strInput)
 
static void MutateTxDelInput (CMutableTransaction &tx, const std::string &strInIdx)
 
static void MutateTxDelOutput (CMutableTransaction &tx, const std::string &strOutIdx)
 
static bool findSighashFlags (int &flags, const std::string &flagStr)
 
static CAmount AmountFromValue (const UniValue &value)
 
static void MutateTxSign (CMutableTransaction &tx, const std::string &flagStr)
 
static void MutateTx (CMutableTransaction &tx, const std::string &command, const std::string &commandVal)
 
static void OutputTxJSON (const CTransaction &tx)
 
static void OutputTxHash (const CTransaction &tx)
 
static void OutputTxHex (const CTransaction &tx)
 
static void OutputTx (const CTransaction &tx)
 
static std::string readStdin ()
 
static int CommandLineRawTx (int argc, char *argv[])
 
 if (ret !=CONTINUE_EXECUTION) return ret
 
 catch (const std::exception &e)
 
 catch (...)
 

Variables

static bool fCreateBlank
 
static std::map< std::string, UniValueregisters
 
static const int CONTINUE_EXECUTION =-1
 
const std::function< std::string(const char *)> G_TRANSLATION_FUN = nullptr
 Translate string to current locale using Qt. More...
 
static const unsigned int N_SIGHASH_OPTS = 7
 
static const struct { ... }  sighashOptions [N_SIGHASH_OPTS]
 
 MAIN_FUNCTION
 
 try
 
int ret = EXIT_FAILURE
 

Function Documentation

◆ AmountFromValue()

static CAmount AmountFromValue ( const UniValue value)
static

Definition at line 551 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AppInitRawTx()

static int AppInitRawTx ( int  argc,
char *  argv[] 
)
static

Definition at line 82 of file bitcoin-tx.cpp.

Here is the call graph for this function:

◆ catch() [1/2]

catch (   ...)

Definition at line 870 of file bitcoin-tx.cpp.

◆ catch() [2/2]

catch ( const std::exception &  e)

Definition at line 867 of file bitcoin-tx.cpp.

Here is the call graph for this function:

◆ CommandLineRawTx()

static int CommandLineRawTx ( int  argc,
char *  argv[] 
)
static

Definition at line 795 of file bitcoin-tx.cpp.

Here is the call graph for this function:

◆ ExtractAndValidateValue()

static CAmount ExtractAndValidateValue ( const std::string &  strValue)
static

Definition at line 193 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findSighashFlags()

static bool findSighashFlags ( int &  flags,
const std::string &  flagStr 
)
static

Definition at line 537 of file bitcoin-tx.cpp.

Here is the caller graph for this function:

◆ if()

if ( ret = CONTINUE_EXECUTION)

Definition at line 153 of file bitcoin-util.cpp.

Here is the caller graph for this function:

◆ MutateTx()

static void MutateTx ( CMutableTransaction tx,
const std::string &  command,
const std::string &  commandVal 
)
static

Definition at line 696 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxAddInput()

static void MutateTxAddInput ( CMutableTransaction tx,
const std::string &  strInput 
)
static

Definition at line 251 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxAddOutAddr()

static void MutateTxAddOutAddr ( CMutableTransaction tx,
const std::string &  strInput 
)
static

Definition at line 285 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxAddOutData()

static void MutateTxAddOutData ( CMutableTransaction tx,
const std::string &  strInput 
)
static

Definition at line 425 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxAddOutMultiSig()

static void MutateTxAddOutMultiSig ( CMutableTransaction tx,
const std::string &  strInput 
)
static

Definition at line 352 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxAddOutPubKey()

static void MutateTxAddOutPubKey ( CMutableTransaction tx,
const std::string &  strInput 
)
static

Definition at line 309 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxAddOutScript()

static void MutateTxAddOutScript ( CMutableTransaction tx,
const std::string &  strInput 
)
static

Definition at line 455 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxDelInput()

static void MutateTxDelInput ( CMutableTransaction tx,
const std::string &  strInIdx 
)
static

Definition at line 499 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxDelOutput()

static void MutateTxDelOutput ( CMutableTransaction tx,
const std::string &  strOutIdx 
)
static

Definition at line 511 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxLocktime()

static void MutateTxLocktime ( CMutableTransaction tx,
const std::string &  cmdVal 
)
static

Definition at line 212 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxRBFOptIn()

static void MutateTxRBFOptIn ( CMutableTransaction tx,
const std::string &  strInIdx 
)
static

Definition at line 221 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxSign()

static void MutateTxSign ( CMutableTransaction tx,
const std::string &  flagStr 
)
static

Definition at line 563 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MutateTxVersion()

static void MutateTxVersion ( CMutableTransaction tx,
const std::string &  cmdVal 
)
static

Definition at line 202 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OutputTx()

static void OutputTx ( const CTransaction tx)
static

Definition at line 767 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OutputTxHash()

static void OutputTxHash ( const CTransaction tx)
static

Definition at line 753 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OutputTxHex()

static void OutputTxHex ( const CTransaction tx)
static

Definition at line 760 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OutputTxJSON()

static void OutputTxJSON ( const CTransaction tx)
static

Definition at line 744 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readStdin()

static std::string readStdin ( )
static

Definition at line 777 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RegisterLoad()

static void RegisterLoad ( const std::string &  strInput)
static

Definition at line 152 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RegisterSet()

static void RegisterSet ( const std::string &  strInput)
static

Definition at line 137 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RegisterSetJson()

static void RegisterSetJson ( const std::string &  key,
const std::string &  rawJson 
)
static

Definition at line 126 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetupBitcoinTxArgs()

static void SetupBitcoinTxArgs ( ArgsManager argsman)
static

Definition at line 41 of file bitcoin-tx.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TrimAndParse()

template<typename T >
static T TrimAndParse ( const std::string &  int_str,
const std::string &  err 
)
static

Definition at line 242 of file bitcoin-tx.cpp.

Here is the call graph for this function:

Variable Documentation

◆ CONTINUE_EXECUTION

const int CONTINUE_EXECUTION =-1
static

Definition at line 37 of file bitcoin-tx.cpp.

◆ fCreateBlank

bool fCreateBlank
static

Definition at line 35 of file bitcoin-tx.cpp.

◆ flags

int flags

Definition at line 526 of file bitcoin-tx.cpp.

◆ flagStr

const char* flagStr

Definition at line 525 of file bitcoin-tx.cpp.

◆ G_TRANSLATION_FUN

const std::function<std::string(const char*)> G_TRANSLATION_FUN = nullptr

Translate string to current locale using Qt.

Translate a message to the native language of the user.

Definition at line 39 of file bitcoin-tx.cpp.

◆ MAIN_FUNCTION

MAIN_FUNCTION
Initial value:

Definition at line 859 of file bitcoin-tx.cpp.

◆ N_SIGHASH_OPTS

const unsigned int N_SIGHASH_OPTS = 7
static

Definition at line 523 of file bitcoin-tx.cpp.

◆ registers

std::map<std::string,UniValue> registers
static

Definition at line 36 of file bitcoin-tx.cpp.

◆ ret

return ret = EXIT_FAILURE

Definition at line 875 of file bitcoin-tx.cpp.

◆ sighashOptions

const { ... } sighashOptions[N_SIGHASH_OPTS]
Initial value:
= {
{"DEFAULT", SIGHASH_DEFAULT},
{"ALL", SIGHASH_ALL},
{"NONE", SIGHASH_NONE},
{"SINGLE", SIGHASH_SINGLE},
{"ALL|ANYONECANPAY", SIGHASH_ALL|SIGHASH_ANYONECANPAY},
{"NONE|ANYONECANPAY", SIGHASH_NONE|SIGHASH_ANYONECANPAY},
{"SINGLE|ANYONECANPAY", SIGHASH_SINGLE|SIGHASH_ANYONECANPAY},
}

◆ try

try
Initial value:
{
int ret = AppInitRawTx(argc, argv)

Definition at line 862 of file bitcoin-tx.cpp.

AppInitRawTx
static int AppInitRawTx(int argc, char *argv[])
Definition: bitcoin-tx.cpp:82
SIGHASH_SINGLE
@ SIGHASH_SINGLE
Definition: interpreter.h:30
SIGHASH_NONE
@ SIGHASH_NONE
Definition: interpreter.h:29
SIGHASH_ANYONECANPAY
@ SIGHASH_ANYONECANPAY
Definition: interpreter.h:31
SIGHASH_ALL
@ SIGHASH_ALL
Definition: interpreter.h:28
SetupEnvironment
SetupEnvironment()
Definition: system.cpp:1374
ret
int ret
Definition: bitcoin-tx.cpp:875
SIGHASH_DEFAULT
@ SIGHASH_DEFAULT
Taproot only; implied when sighash byte is missing, and equivalent to SIGHASH_ALL.
Definition: interpreter.h:33