void WalletUnconfirmedTransactions::add(const cryptonote::Transaction& tx, TransactionId transactionId, uint64_t amount, const std::list<TransactionOutputInformation>& usedOutputs) { auto cryptoHash = cryptonote::get_transaction_hash(tx); TransactionHash hash = reinterpret_cast<const TransactionHash&>(cryptoHash); UnconfirmedTransferDetails& utd = m_unconfirmedTxs[hash]; utd.amount = amount; utd.sentTime = time(nullptr); utd.tx = tx; utd.transactionId = transactionId; uint64_t outsAmount = 0; // process used outputs utd.usedOutputs.reserve(usedOutputs.size()); for (const auto& out : usedOutputs) { auto id = getOutputId(out); utd.usedOutputs.push_back(id); m_usedOutputs.insert(id); outsAmount += out.amount; } utd.outsAmount = outsAmount; }
void WalletUnconfirmedTransactions::add(const Transaction& tx, TransactionId transactionId, uint64_t amount, const std::list<TransactionOutputInformation>& usedOutputs) { UnconfirmedTransferDetails& utd = m_unconfirmedTxs[getObjectHash(tx)]; utd.amount = amount; utd.sentTime = time(nullptr); utd.tx = tx; utd.transactionId = transactionId; uint64_t outsAmount = 0; // process used outputs utd.usedOutputs.reserve(usedOutputs.size()); for (const auto& out : usedOutputs) { auto id = getOutputId(out); utd.usedOutputs.push_back(id); m_usedOutputs.insert(id); outsAmount += out.amount; } utd.outsAmount = outsAmount; }
bool WalletUnconfirmedTransactions::isUsed(const TransactionOutputInformation& out) const { return m_usedOutputs.find(getOutputId(out)) != m_usedOutputs.end(); }