102 m_bob_account = boost::get<account_base>(events[3]);
103 m_alice_account = boost::get<account_base>(events[4]);
105 std::vector<block>
blocks;
109 std::vector<cryptonote::block> chain;
123 std::vector<block>
blocks;
127 std::vector<cryptonote::block> chain;
183 m_bob_account = boost::get<account_base>(events[1]);
184 m_alice_account = boost::get<account_base>(events[2]);
186 std::vector<block>
blocks;
190 std::vector<cryptonote::block> chain;
204 std::vector<block>
blocks;
208 std::vector<cryptonote::block> chain;
239 std::vector<account_base> accounts(m_test_size);
240 std::vector<block>
blocks;
248 for (
size_t i = 0; i < m_test_size; ++i)
251 accounts[i] = an_account;
255 size_t blk_0r_idx = events.size();
258 for (
size_t i = blk_0r_idx; i < events.size(); ++i)
260 blocks.push_back(boost::get<block>(events[i]));
263 for (
size_t i = 0; i < m_test_size; ++i)
266 MAKE_TX_LIST_START(events, txs_blk_i, miner_account, accounts[i], m_tx_amount, blk_with_unlocked_out);
267 for (
size_t j = 0; j <= i; ++j)
274 std::vector<cryptonote::block> chain;
278 std::cout << i <<
": " <<
get_balance(accounts[i], chain, mtx) << std::endl;
282 MAKE_TX_MIX(events, tx_0, accounts[0], alice_account, m_tx_amount, m_test_size - 1,
blocks.back());
293 m_bob_account = boost::get<account_base>(events[1]);
294 m_alice_account = boost::get<account_base>(events[1 + m_test_size]);
296 std::vector<block>
blocks;
300 std::vector<cryptonote::block> chain;
307 for (
size_t i = 2; i < 1 + m_test_size; ++i)
309 const account_base& an_account = boost::get<account_base>(events[i]);
321 std::vector<block>
blocks;
325 std::vector<cryptonote::block> chain;
332 for (
size_t i = 2; i < 1 + m_test_size; ++i)
334 const account_base& an_account = boost::get<account_base>(events[i]);
339 std::vector<size_t> tx_outs;
341 const transaction& tx = boost::get<transaction>(events[events.size() - 3]);
#define CRYPTONOTE_MINED_ETN_UNLOCK_WINDOW
#define MAKE_NEXT_BLOCK_TX1(VEC_EVENTS, BLK_NAME, PREV_BLOCK, MINER_ACC, TX1)
bool generate(std::vector< test_event_entry > &events) const
bool find_block_chain(const std::vector< test_event_entry > &events, std::vector< cryptonote::block > &blockchain, map_hash2tx_t &mtx, const crypto::hash &head)
#define CHECK_AND_NO_ASSERT_MES(expr, fail_ret_val, message)
#define MAKE_NEXT_BLOCK(VEC_EVENTS, BLK_NAME, PREV_BLOCK, MINER_ACC)
#define TESTS_DEFAULT_FEE
uint64_t get_balance(const cryptonote::account_base &addr, const std::vector< cryptonote::block > &blockchain, const map_hash2tx_t &mtx)
#define MAKE_TX_LIST(VEC_EVENTS, SET_NAME, FROM, TO, AMOUNT, HEAD)
#define CHECK_TEST_CONDITION(cond)
const account_keys & get_keys() const
bool get_blocks(uint64_t start_offset, size_t count, std::vector< std::pair< cryptonote::blobdata, block >> &blocks, std::vector< cryptonote::blobdata > &txs) const
Holds cryptonote related classes and helpers.
std::unordered_map< crypto::hash, const cryptonote::transaction * > map_hash2tx_t
#define MAKE_TX_MIX(VEC_EVENTS, TX_NAME, FROM, TO, AMOUNT, NMIX, HEAD)
handles core cryptonote functionality
#define MAKE_GENESIS_BLOCK(VEC_EVENTS, BLK_NAME, MINER_ACC, TS)
#define REGISTER_CALLBACK(CB_NAME, CLBACK)
unsigned __int64 uint64_t
bool check_balances_2(cryptonote::core &c, size_t ev_index, const std::vector< test_event_entry > &events)
bool check_balances_1(cryptonote::core &c, size_t ev_index, const std::vector< test_event_entry > &events)
bool check_balances_1(cryptonote::core &c, size_t ev_index, const std::vector< test_event_entry > &events)
crypto::public_key get_tx_pub_key_from_extra(const std::vector< uint8_t > &tx_extra, size_t pk_index)
#define MAKE_TX_LIST_START(VEC_EVENTS, SET_NAME, FROM, TO, AMOUNT, HEAD)
bool generate(std::vector< test_event_entry > &events) const
#define MAKE_ACCOUNT(VEC_EVENTS, account)
#define REWIND_BLOCKS(VEC_EVENTS, BLK_NAME, PREV_BLOCK, MINER_ACC)
bool generate(std::vector< test_event_entry > &events) const
crypto::hash get_block_hash(uint64_t height)
std::vector< crypto::public_key > get_additional_tx_pub_keys_from_extra(const std::vector< uint8_t > &tx_extra)
#define GENERATE_ACCOUNT(account)
bool check_balances_2(cryptonote::core &c, size_t ev_index, const std::vector< test_event_entry > &events)
bool check_balances_2(cryptonote::core &c, size_t ev_index, const std::vector< test_event_entry > &events)
#define DEFINE_TESTS_ERROR_CONTEXT(text)
#define DO_CALLBACK(VEC_EVENTS, CB_NAME)
#define MAKE_NEXT_BLOCK_TX_LIST(VEC_EVENTS, BLK_NAME, PREV_BLOCK, MINER_ACC, TXLIST)
bool check_balances_1(cryptonote::core &c, size_t ev_index, const std::vector< test_event_entry > &events)
bool lookup_acc_outs(const account_keys &acc, const transaction &tx, std::vector< size_t > &outs, uint64_t &etn_transfered)