Electroneum
Loading...
Searching...
No Matches
cryptonote::transaction Class Referenceabstract

#include <cryptonote_basic.h>

Inheritance diagram for cryptonote::transaction:
Collaboration diagram for cryptonote::transaction:

Public Member Functions

 transaction ()
 transaction (const transaction &t)
transactionoperator= (const transaction &t)
virtual ~transaction ()
void set_null ()
void invalidate_hashes ()
bool is_hash_valid () const
void set_hash_valid (bool v) const
bool is_blob_size_valid () const
void set_blob_size_valid (bool v) const
void set_hash (const crypto::hash &h)
void set_blob_size (size_t sz)
 if (!typename Archive< W >::is_saving())
 if (std::is_same< Archive< W >, binary_archive< W > >())
ar tag ("signatures")
ar begin_array ()
 PREPARE_CUSTOM_VECTOR_SERIALIZATION (vin.size(), signatures)
 if (!signatures_not_expected &&vin.size() !=signatures.size()) return false
 if (!pruned) for(size_t i=0
Public Member Functions inherited from cryptonote::transaction_prefix
 if (version==0||CURRENT_TRANSACTION_VERSION< version) return false
 transaction_prefix ()
void set_null ()
void set_null_besides_version ()

Public Attributes

std::vector< std::vector< crypto::signature > > signatures
rct::rctSig rct_signatures
crypto::hash hash
size_t blob_size
bool pruned
std::atomic< unsigned int > unprunable_size
std::atomic< unsigned int > prefix_size
const unsigned int start_pos = getpos(ar)
bool signatures_not_expected = signatures.empty()
Public Attributes inherited from cryptonote::transaction_prefix
size_t version
uint64_t unlock_time
std::vector< txin_vvin
std::vector< tx_outvout
std::vector< uint8_textra

Detailed Description

Definition at line 297 of file cryptonote_basic.h.

Constructor & Destructor Documentation

◆ transaction() [1/2]

cryptonote::transaction::transaction ( )
inline

Definition at line 396 of file cryptonote_basic.h.

397 {
398 set_null();
399 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ transaction() [2/2]

cryptonote::transaction::transaction ( const transaction & t)
inline

Definition at line 318 of file cryptonote_basic.h.

318: transaction_prefix(t), hash_valid(false), blob_size_valid(false), signatures(t.signatures), rct_signatures(t.rct_signatures), pruned(t.pruned), unprunable_size(t.unprunable_size.load()), prefix_size(t.prefix_size.load()) { if (t.is_hash_valid()) { hash = t.hash; set_hash_valid(true); } if (t.is_blob_size_valid()) { blob_size = t.blob_size; set_blob_size_valid(true); } }
std::atomic< unsigned int > unprunable_size
std::atomic< unsigned int > prefix_size
void set_hash_valid(bool v) const
std::vector< std::vector< crypto::signature > > signatures
void set_blob_size_valid(bool v) const
Here is the call graph for this function:

◆ ~transaction()

cryptonote::transaction::~transaction ( )
inlinevirtual

Definition at line 402 of file cryptonote_basic.h.

403 {
404 }
Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ begin_array()

ar cryptonote::transaction::begin_array ( )

◆ if() [1/4]

cryptonote::transaction::if ( ! pruned)
pure virtual

◆ if() [2/4]

cryptonote::transaction::if ( !signatures_not_expected &&vin.size() ! = signatures.size())

◆ if() [3/4]

cryptonote::transaction::if ( !typename Archive< W > ::is_saving())
inline

Definition at line 331 of file cryptonote_basic.h.

332 {
333 set_hash_valid(false);
334 set_blob_size_valid(false);
335 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ if() [4/4]

cryptonote::transaction::if ( std::is_same< Archive< W >, binary_archive< W > > ())
inline

Definition at line 341 of file cryptonote_basic.h.

342 {
343 prefix_size = getpos(ar) - start_pos;
344 unprunable_size = getpos(ar) - start_pos;
345 }
const unsigned int start_pos
Here is the call graph for this function:

◆ invalidate_hashes()

void cryptonote::transaction::invalidate_hashes ( )
inline

Definition at line 420 of file cryptonote_basic.h.

421 {
422 set_hash_valid(false);
423 set_blob_size_valid(false);
424 }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_blob_size_valid()

bool cryptonote::transaction::is_blob_size_valid ( ) const
inline

Definition at line 325 of file cryptonote_basic.h.

325{ return blob_size_valid.load(std::memory_order_acquire); }
Here is the caller graph for this function:

◆ is_hash_valid()

bool cryptonote::transaction::is_hash_valid ( ) const
inline

Definition at line 323 of file cryptonote_basic.h.

323{ return hash_valid.load(std::memory_order_acquire); }
Here is the caller graph for this function:

◆ operator=()

transaction & cryptonote::transaction::operator= ( const transaction & t)
inline

Definition at line 319 of file cryptonote_basic.h.

319{ transaction_prefix::operator=(t); set_hash_valid(false); set_blob_size_valid(false); signatures = t.signatures; rct_signatures = t.rct_signatures; if (t.is_hash_valid()) { hash = t.hash; set_hash_valid(true); } if (t.is_blob_size_valid()) { blob_size = t.blob_size; set_blob_size_valid(true); } pruned = t.pruned; unprunable_size = t.unprunable_size.load(); prefix_size = t.prefix_size.load(); return *this; }
Here is the call graph for this function:

◆ PREPARE_CUSTOM_VECTOR_SERIALIZATION()

cryptonote::transaction::PREPARE_CUSTOM_VECTOR_SERIALIZATION ( vin. size(),
signatures  )

◆ set_blob_size()

void cryptonote::transaction::set_blob_size ( size_t sz)
inline

Definition at line 328 of file cryptonote_basic.h.

328{ blob_size = sz; set_blob_size_valid(true); }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_blob_size_valid()

void cryptonote::transaction::set_blob_size_valid ( bool v) const
inline

Definition at line 326 of file cryptonote_basic.h.

326{ blob_size_valid.store(v,std::memory_order_release); }
Here is the caller graph for this function:

◆ set_hash()

void cryptonote::transaction::set_hash ( const crypto::hash & h)
inline

Definition at line 327 of file cryptonote_basic.h.

327{ hash = h; set_hash_valid(true); }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_hash_valid()

void cryptonote::transaction::set_hash_valid ( bool v) const
inline

Definition at line 324 of file cryptonote_basic.h.

324{ hash_valid.store(v,std::memory_order_release); }
Here is the caller graph for this function:

◆ set_null()

void cryptonote::transaction::set_null ( )
inline

Definition at line 407 of file cryptonote_basic.h.

408 {
410 signatures.clear();
412 set_hash_valid(false);
413 set_blob_size_valid(false);
414 pruned = false;
415 unprunable_size = 0;
416 prefix_size = 0;
417 }
@ RCTTypeNull
Definition rctTypes.h:229
Here is the call graph for this function:
Here is the caller graph for this function:

◆ tag()

ar cryptonote::transaction::tag ( "signatures" )

Member Data Documentation

◆ blob_size

size_t cryptonote::transaction::blob_size
mutable

Definition at line 310 of file cryptonote_basic.h.

◆ hash

crypto::hash cryptonote::transaction::hash
mutable

Definition at line 309 of file cryptonote_basic.h.

◆ prefix_size

std::atomic<unsigned int> cryptonote::transaction::prefix_size

Definition at line 315 of file cryptonote_basic.h.

◆ pruned

bool cryptonote::transaction::pruned

Definition at line 312 of file cryptonote_basic.h.

◆ rct_signatures

rct::rctSig cryptonote::transaction::rct_signatures

Definition at line 306 of file cryptonote_basic.h.

◆ signatures

std::vector<std::vector<crypto::signature> > cryptonote::transaction::signatures

Definition at line 305 of file cryptonote_basic.h.

◆ signatures_not_expected

bool cryptonote::transaction::signatures_not_expected = signatures.empty()

Definition at line 350 of file cryptonote_basic.h.

◆ start_pos

const unsigned int cryptonote::transaction::start_pos = getpos(ar)

Definition at line 337 of file cryptonote_basic.h.

◆ unprunable_size

std::atomic<unsigned int> cryptonote::transaction::unprunable_size

Definition at line 314 of file cryptonote_basic.h.


The documentation for this class was generated from the following file:
  • /home/abuild/rpmbuild/BUILD/electroneum-5.1.3.1-build/electroneum-5.1.3.1/src/cryptonote_basic/cryptonote_basic.h