Bitcoin ABC  0.29.1
P2P Digital Currency
Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Private Attributes | Friends | List of all members
CTransaction Class Reference

The basic transaction that is broadcasted on the network and contained in blocks. More...

#include <transaction.h>

Collaboration diagram for CTransaction:
[legend]

Public Member Functions

 CTransaction ()
 Construct a CTransaction that qualifies as IsNull() More...
 
 CTransaction (const CMutableTransaction &tx)
 Convert a CMutableTransaction into a CTransaction. More...
 
 CTransaction (CMutableTransaction &&tx)
 
template<typename Stream >
void Serialize (Stream &s) const
 
template<typename Stream >
 CTransaction (deserialize_type, Stream &s)
 This deserializing constructor is provided instead of an Unserialize method. More...
 
bool IsNull () const
 
const TxId GetId () const
 
const TxHash GetHash () const
 
Amount GetValueOut () const
 
unsigned int GetTotalSize () const
 Get the total transaction size in bytes. More...
 
bool IsCoinBase () const
 
std::string ToString () const
 

Public Attributes

const std::vector< CTxInvin
 
const std::vector< CTxOutvout
 
const int32_t nVersion
 
const uint32_t nLockTime
 

Static Public Attributes

static constexpr int32_t CURRENT_VERSION = 2
 
static constexpr int32_t MIN_VERSION = 1
 
static constexpr int32_t MAX_VERSION = 2
 

Private Member Functions

uint256 ComputeHash () const
 

Private Attributes

const uint256 hash
 Memory only. More...
 

Friends

bool operator== (const CTransaction &a, const CTransaction &b)
 
bool operator!= (const CTransaction &a, const CTransaction &b)
 

Detailed Description

The basic transaction that is broadcasted on the network and contained in blocks.

A transaction can contain multiple inputs and outputs.

Definition at line 192 of file transaction.h.

Constructor & Destructor Documentation

◆ CTransaction() [1/4]

CTransaction::CTransaction ( )

Construct a CTransaction that qualifies as IsNull()

For backward compatibility, the hash is initialized to 0.

TODO: remove the need for this default constructor entirely.

Definition at line 68 of file transaction.cpp.

◆ CTransaction() [2/4]

CTransaction::CTransaction ( const CMutableTransaction tx)
explicit

Convert a CMutableTransaction into a CTransaction.

Definition at line 71 of file transaction.cpp.

◆ CTransaction() [3/4]

CTransaction::CTransaction ( CMutableTransaction &&  tx)
explicit

Definition at line 74 of file transaction.cpp.

◆ CTransaction() [4/4]

template<typename Stream >
CTransaction::CTransaction ( deserialize_type  ,
Stream &  s 
)
inline

This deserializing constructor is provided instead of an Unserialize method.

Unserialize is not possible, since it would require overwriting const fields.

Definition at line 235 of file transaction.h.

Member Function Documentation

◆ ComputeHash()

uint256 CTransaction::ComputeHash ( ) const
private

Definition at line 60 of file transaction.cpp.

Here is the call graph for this function:

◆ GetHash()

const TxHash CTransaction::GetHash ( ) const
inline

Definition at line 241 of file transaction.h.

Here is the caller graph for this function:

◆ GetId()

const TxId CTransaction::GetId ( ) const
inline

Definition at line 240 of file transaction.h.

Here is the caller graph for this function:

◆ GetTotalSize()

unsigned int CTransaction::GetTotalSize ( ) const

Get the total transaction size in bytes.

Returns
Total transaction size in bytes

Definition at line 92 of file transaction.cpp.

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

◆ GetValueOut()

Amount CTransaction::GetValueOut ( ) const

Definition at line 78 of file transaction.cpp.

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

◆ IsCoinBase()

bool CTransaction::IsCoinBase ( ) const
inline

Definition at line 252 of file transaction.h.

Here is the caller graph for this function:

◆ IsNull()

bool CTransaction::IsNull ( ) const
inline

Definition at line 238 of file transaction.h.

◆ Serialize()

template<typename Stream >
void CTransaction::Serialize ( Stream &  s) const
inline

Definition at line 225 of file transaction.h.

Here is the call graph for this function:

◆ ToString()

std::string CTransaction::ToString ( ) const

Definition at line 96 of file transaction.cpp.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const CTransaction a,
const CTransaction b 
)
friend

Definition at line 260 of file transaction.h.

◆ operator==

bool operator== ( const CTransaction a,
const CTransaction b 
)
friend

Definition at line 256 of file transaction.h.

Member Data Documentation

◆ CURRENT_VERSION

constexpr int32_t CTransaction::CURRENT_VERSION = 2
staticconstexpr

Definition at line 195 of file transaction.h.

◆ hash

const uint256 CTransaction::hash
private

Memory only.

Definition at line 213 of file transaction.h.

◆ MAX_VERSION

constexpr int32_t CTransaction::MAX_VERSION = 2
static

Definition at line 199 of file transaction.h.

◆ MIN_VERSION

constexpr int32_t CTransaction::MIN_VERSION = 1
staticconstexpr

Definition at line 199 of file transaction.h.

◆ nLockTime

const uint32_t CTransaction::nLockTime

Definition at line 209 of file transaction.h.

◆ nVersion

const int32_t CTransaction::nVersion

Definition at line 208 of file transaction.h.

◆ vin

const std::vector<CTxIn> CTransaction::vin

Definition at line 206 of file transaction.h.

◆ vout

const std::vector<CTxOut> CTransaction::vout

Definition at line 207 of file transaction.h.


The documentation for this class was generated from the following files: