// Copyright (c) 2012-2013 The Cryptonote developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #pragma once #include #include #include #include #include #include "crypto/crypto.h" #include "cryptonote_core/cryptonote_basic.h" namespace CryptoNote { struct TransactionContextInfo { std::vector requestedOuts; std::vector globalIndices; cryptonote::transaction transaction; crypto::public_key transactionPubKey; }; struct SynchronizationState { SynchronizationState() : blockIdx(0), transactionIdx(0), minersTxProcessed(false) {} size_t blockIdx; //block index within context->new_blocks array to be processed size_t transactionIdx; //tx index within the block to be processed bool minersTxProcessed; //is miner's tx in the block processed }; struct SynchronizationContext { std::list newBlocks; uint64_t startHeight; std::unordered_map transactionContext; SynchronizationState progress; }; } //namespace CryptoNote