Electroneum
multi_tx_test_base< a_ring_size > Class Template Reference

#include <multi_tx_test_base.h>

Inheritance diagram for multi_tx_test_base< a_ring_size >:
Collaboration diagram for multi_tx_test_base< a_ring_size >:

Public Member Functions

bool init ()
 

Static Public Attributes

static const size_t ring_size = a_ring_size
 
static const size_t real_source_idx = ring_size / 2
 

Protected Attributes

cryptonote::account_base m_miners [ring_size]
 
cryptonote::transaction m_miner_txs [ring_size]
 
uint64_t m_source_amount
 
std::vector< cryptonote::tx_source_entrym_sources
 
crypto::public_key m_public_keys [ring_size]
 
const crypto::public_keym_public_key_ptrs [ring_size]
 

Detailed Description

template<size_t a_ring_size>
class multi_tx_test_base< a_ring_size >

Definition at line 42 of file multi_tx_test_base.h.

Member Function Documentation

◆ init()

template<size_t a_ring_size>
bool multi_tx_test_base< a_ring_size >::init ( )
inline

Definition at line 50 of file multi_tx_test_base.h.

51  {
52  using namespace cryptonote;
53 
54  std::vector<tx_source_entry::output_entry> output_entries;
55  for (size_t i = 0; i < ring_size; ++i)
56  {
57  m_miners[i].generate();
58 
59  if (!construct_miner_tx(0, 0, 0, 2, 0, m_miners[i].get_keys().m_account_address, m_miner_txs[i]))
60  return false;
61 
62  txout_to_key tx_out = boost::get<txout_to_key>(m_miner_txs[i].vout[0].target);
63  output_entries.push_back(std::make_pair(i, rct::ctkey({rct::pk2rct(tx_out.key), rct::zeroCommit(m_miner_txs[i].vout[0].amount)})));
64  m_public_keys[i] = tx_out.key;
66  }
67 
68  m_source_amount = m_miner_txs[0].vout[0].amount;
69 
70  tx_source_entry source_entry;
71  source_entry.amount = m_source_amount;
73  source_entry.real_output_in_tx_index = 0;
74  source_entry.outputs.swap(output_entries);
75  source_entry.real_output = real_source_idx;
76  source_entry.mask = rct::identity();
77  source_entry.rct = false;
78 
79  m_sources.push_back(source_entry);
80 
81  return true;
82  }
crypto::public_key real_out_tx_key
cryptonote::account_base m_miners[ring_size]
const crypto::public_key * m_public_key_ptrs[ring_size]
static const size_t real_source_idx
bool rct
crypto::secret_key generate(const crypto::secret_key &recovery_key=crypto::secret_key(), bool recover=false, bool two_random=false)
Definition: account.cpp:158
uint64_t amount
size_t real_output
Holds cryptonote related classes and helpers.
Definition: ban.cpp:40
crypto::public_key get_tx_pub_key_from_extra(const std::vector< uint8_t > &tx_extra, size_t pk_index)
cryptonote::transaction m_miner_txs[ring_size]
static const size_t ring_size
key identity()
Definition: rctOps.h:73
size_t real_output_in_tx_index
std::vector< output_entry > outputs
key zeroCommit(etn_amount amount)
Definition: rctOps.cpp:322
bool construct_miner_tx(size_t height, size_t median_weight, uint64_t already_generated_coins, size_t current_block_weight, uint64_t fee, const account_public_address &miner_address, transaction &tx, const blobdata &extra_nonce, size_t max_outs, uint8_t hard_fork_version, network_type nettype)
std::vector< cryptonote::tx_source_entry > m_sources
rct::key mask
crypto::public_key m_public_keys[ring_size]
Here is the caller graph for this function:

Member Data Documentation

◆ m_miner_txs

template<size_t a_ring_size>
cryptonote::transaction multi_tx_test_base< a_ring_size >::m_miner_txs[ring_size]
protected

Definition at line 86 of file multi_tx_test_base.h.

◆ m_miners

template<size_t a_ring_size>
cryptonote::account_base multi_tx_test_base< a_ring_size >::m_miners[ring_size]
protected

Definition at line 85 of file multi_tx_test_base.h.

◆ m_public_key_ptrs

template<size_t a_ring_size>
const crypto::public_key* multi_tx_test_base< a_ring_size >::m_public_key_ptrs[ring_size]
protected

Definition at line 91 of file multi_tx_test_base.h.

◆ m_public_keys

template<size_t a_ring_size>
crypto::public_key multi_tx_test_base< a_ring_size >::m_public_keys[ring_size]
protected

Definition at line 90 of file multi_tx_test_base.h.

◆ m_source_amount

template<size_t a_ring_size>
uint64_t multi_tx_test_base< a_ring_size >::m_source_amount
protected

Definition at line 87 of file multi_tx_test_base.h.

◆ m_sources

template<size_t a_ring_size>
std::vector<cryptonote::tx_source_entry> multi_tx_test_base< a_ring_size >::m_sources
protected

Definition at line 89 of file multi_tx_test_base.h.

◆ real_source_idx

template<size_t a_ring_size>
const size_t multi_tx_test_base< a_ring_size >::real_source_idx = ring_size / 2
static

Definition at line 48 of file multi_tx_test_base.h.

◆ ring_size

template<size_t a_ring_size>
const size_t multi_tx_test_base< a_ring_size >::ring_size = a_ring_size
static

Definition at line 47 of file multi_tx_test_base.h.


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