|
|
|
@ -699,26 +699,43 @@ namespace tools
|
|
|
|
|
explicit tx_too_big(std::string&& loc, const cryptonote::transaction& tx, uint64_t tx_weight_limit)
|
|
|
|
|
: transfer_error(std::move(loc), "transaction is too big")
|
|
|
|
|
, m_tx(tx)
|
|
|
|
|
, m_tx_valid(true)
|
|
|
|
|
, m_tx_weight(cryptonote::get_transaction_weight(tx))
|
|
|
|
|
, m_tx_weight_limit(tx_weight_limit)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
explicit tx_too_big(std::string&& loc, uint64_t tx_weight, uint64_t tx_weight_limit)
|
|
|
|
|
: transfer_error(std::move(loc), "transaction would be too big")
|
|
|
|
|
, m_tx_valid(false)
|
|
|
|
|
, m_tx_weight(tx_weight)
|
|
|
|
|
, m_tx_weight_limit(tx_weight_limit)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool tx_valid() const { return m_tx_valid; }
|
|
|
|
|
const cryptonote::transaction& tx() const { return m_tx; }
|
|
|
|
|
uint64_t tx_weight() const { return m_tx_weight; }
|
|
|
|
|
uint64_t tx_weight_limit() const { return m_tx_weight_limit; }
|
|
|
|
|
|
|
|
|
|
std::string to_string() const
|
|
|
|
|
{
|
|
|
|
|
std::ostringstream ss;
|
|
|
|
|
cryptonote::transaction tx = m_tx;
|
|
|
|
|
ss << transfer_error::to_string() <<
|
|
|
|
|
", tx_weight_limit = " << m_tx_weight_limit <<
|
|
|
|
|
", tx weight = " << get_transaction_weight(m_tx) <<
|
|
|
|
|
", tx:\n" << cryptonote::obj_to_json_str(tx);
|
|
|
|
|
", tx weight = " << m_tx_weight;
|
|
|
|
|
if (m_tx_valid)
|
|
|
|
|
{
|
|
|
|
|
cryptonote::transaction tx = m_tx;
|
|
|
|
|
ss << ", tx:\n" << cryptonote::obj_to_json_str(tx);
|
|
|
|
|
}
|
|
|
|
|
return ss.str();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
cryptonote::transaction m_tx;
|
|
|
|
|
bool m_tx_valid;
|
|
|
|
|
uint64_t m_tx_weight;
|
|
|
|
|
uint64_t m_tx_weight_limit;
|
|
|
|
|
};
|
|
|
|
|
//----------------------------------------------------------------------------------------------------
|
|
|
|
|