Monero
Loading...
Searching...
No Matches
tx_verification_utils.cpp File Reference
#include <boost/iterator/transform_iterator.hpp>
#include "cryptonote_core/blockchain.h"
#include "cryptonote_core/cryptonote_core.h"
#include "cryptonote_core/tx_verification_utils.h"
#include "hardforks/hardforks.h"
#include "ringct/rctSigs.h"
Include dependency graph for tx_verification_utils.cpp:

Namespaces

namespace  cryptonote
 Holds cryptonote related classes and helpers.

Macros

#define MONERO_DEFAULT_LOG_CATEGORY   "blockchain"
#define VER_ASSERT(cond, msgexpr)

Functions

static bool expand_tx_and_ver_rct_non_sem (transaction &tx, const rct::ctkeyM &mix_ring)
static crypto::hash calc_tx_mixring_hash (const transaction &tx, const rct::ctkeyM &mix_ring)
static bool is_canonical_bulletproof_layout (const std::vector< rct::Bulletproof > &proofs)
static bool is_canonical_bulletproof_plus_layout (const std::vector< rct::BulletproofPlus > &proofs)
template<class TxForwardIt>
static bool ver_non_input_consensus_templated (TxForwardIt tx_begin, TxForwardIt tx_end, tx_verification_context &tvc, std::uint8_t hf_version)
uint64_t cryptonote::get_transaction_weight_limit (uint8_t hf_version)
 Get the maximum transaction weight for a given hardfork.
bool cryptonote::ver_rct_non_semantics_simple_cached (transaction &tx, const rct::ctkeyM &mix_ring, rct_ver_cache_t &cache, std::uint8_t rct_type_to_cache)
 Cached version of rct::verRctNonSemanticsSimple.
bool cryptonote::ver_mixed_rct_semantics (std::vector< const rct::rctSig * > rvv)
 Verify the semantics of a group of RingCT signatures as a batch (if applicable).
bool cryptonote::ver_non_input_consensus (const transaction &tx, tx_verification_context &tvc, std::uint8_t hf_version)
 Verify every non-input consensus rule for a group of non-coinbase transactions.
bool cryptonote::ver_non_input_consensus (const pool_supplement &ps, tx_verification_context &tvc, const std::uint8_t hf_version)

Macro Definition Documentation

◆ MONERO_DEFAULT_LOG_CATEGORY

#define MONERO_DEFAULT_LOG_CATEGORY   "blockchain"

◆ VER_ASSERT

#define VER_ASSERT ( cond,
msgexpr )
Value:
CHECK_AND_ASSERT_MES(cond, false, msgexpr)

Function Documentation

◆ calc_tx_mixring_hash()

crypto::hash calc_tx_mixring_hash ( const transaction & tx,
const rct::ctkeyM & mix_ring )
static

◆ expand_tx_and_ver_rct_non_sem()

bool expand_tx_and_ver_rct_non_sem ( transaction & tx,
const rct::ctkeyM & mix_ring )
static

◆ is_canonical_bulletproof_layout()

bool is_canonical_bulletproof_layout ( const std::vector< rct::Bulletproof > & proofs)
static

◆ is_canonical_bulletproof_plus_layout()

bool is_canonical_bulletproof_plus_layout ( const std::vector< rct::BulletproofPlus > & proofs)
static

◆ ver_non_input_consensus_templated()

template<class TxForwardIt>
bool ver_non_input_consensus_templated ( TxForwardIt tx_begin,
TxForwardIt tx_end,
tx_verification_context & tvc,
std::uint8_t hf_version )
static