Bitcoin Core  27.99.0
P2P Digital Currency
Classes | Functions | Variables
bitcoin-tx.cpp File Reference
#include <chainparamsbase.h>
#include <clientversion.h>
#include <coins.h>
#include <common/args.h>
#include <common/system.h>
#include <compat/compat.h>
#include <consensus/amount.h>
#include <consensus/consensus.h>
#include <core_io.h>
#include <key_io.h>
#include <policy/policy.h>
#include <primitives/transaction.h>
#include <script/script.h>
#include <script/sign.h>
#include <script/signingprovider.h>
#include <univalue.h>
#include <util/exception.h>
#include <util/fs.h>
#include <util/moneystr.h>
#include <util/rbf.h>
#include <util/strencodings.h>
#include <util/string.h>
#include <util/translation.h>
#include <cstdio>
#include <functional>
#include <memory>
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 std::vector< unsigned char > ParseHexUV (const UniValue &v, const std::string &strName)
 
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 555 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 86 of file bitcoin-tx.cpp.

Here is the call graph for this function:

◆ catch() [1/2]

catch (   ...)

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

◆ catch() [2/2]

catch ( const std::exception &  e)

Definition at line 879 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 807 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 197 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 541 of file bitcoin-tx.cpp.

Here is the caller graph for this function:

◆ if()

if ( ret = CONTINUE_EXECUTION)

Definition at line 158 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 708 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 255 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 289 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 429 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 356 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 313 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 459 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 503 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 515 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 216 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 225 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 577 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 206 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 779 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 765 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 772 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 756 of file bitcoin-tx.cpp.

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

◆ ParseHexUV()

static std::vector<unsigned char> ParseHexUV ( const UniValue v,
const std::string &  strName 
)
static

Definition at line 567 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 789 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 156 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 141 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 130 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 43 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 246 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 39 of file bitcoin-tx.cpp.

◆ fCreateBlank

bool fCreateBlank
static

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

◆ flags

int flags

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

◆ flagStr

const char* flagStr

Definition at line 529 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 41 of file bitcoin-tx.cpp.

◆ MAIN_FUNCTION

MAIN_FUNCTION
Initial value:
{
SetupEnvironment()
Definition: system.cpp:59

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

◆ N_SIGHASH_OPTS

const unsigned int N_SIGHASH_OPTS = 7
static

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

◆ registers

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

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

◆ ret

return ret = EXIT_FAILURE

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

◆ 

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},
}
@ SIGHASH_ANYONECANPAY
Definition: interpreter.h:33
@ SIGHASH_DEFAULT
Taproot only; implied when sighash byte is missing, and equivalent to SIGHASH_ALL.
Definition: interpreter.h:35
@ SIGHASH_ALL
Definition: interpreter.h:30
@ SIGHASH_NONE
Definition: interpreter.h:31
@ SIGHASH_SINGLE
Definition: interpreter.h:32

◆ try

try
Initial value:
{
int ret = AppInitRawTx(argc, argv)
int ret
Definition: bitcoin-tx.cpp:887
static int AppInitRawTx(int argc, char *argv[])
Definition: bitcoin-tx.cpp:86

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