getTransfers() removes unrequested txs;

fix tx.getIsOutoging(), tx.getIsIncoming() flipped
This commit is contained in:
woodser
2019-06-26 15:49:35 -04:00
parent 29c8e628a7
commit c6ad55c340
2 changed files with 9 additions and 7 deletions
+6 -3
View File
@@ -712,7 +712,7 @@ namespace monero {
shared_ptr<MoneroTxWallet> tx = txIter->second;
// collect outgoing transfer, erase if filtered TODO: java/js do not erase filtered transfers
if (tx->outgoingTransfer != boost::none && request.meetsCriteria((*tx->outgoingTransfer).get())) transfers.push_back(*tx->outgoingTransfer);
if (tx->outgoingTransfer != boost::none && request.meetsCriteria(tx->outgoingTransfer.get().get())) transfers.push_back(tx->outgoingTransfer.get());
else tx->outgoingTransfer = boost::none;
// collect incoming transfers, erase if filtered
@@ -725,6 +725,9 @@ namespace monero {
iter = tx->incomingTransfers.erase(iter);
}
}
// remove unrequested txs
if (tx->outgoingTransfer == boost::none && tx->incomingTransfers.empty()) tx->block.get()->txs.erase(std::remove(tx->block.get()->txs.begin(), tx->block.get()->txs.end(), tx), tx->block.get()->txs.end()); // TODO, no way to use const_iterator?
}
//cout << "7" << endl;
cout << "MoneroWallet.cpp getTransfers() returning " << transfers.size() << " transfers" << endl;
@@ -769,11 +772,11 @@ namespace monero {
vouts.push_back(voutWallet);
voutIter++;
} else {
voutIter = tx->vouts.erase(voutIter); // remove irrelevant vouts
voutIter = tx->vouts.erase(voutIter); // remove unrequested vouts
}
}
// remove irrelevant txs
// remove txs without requested transfer
if (tx->vouts.empty()) tx->block.get()->txs.erase(std::remove(tx->block.get()->txs.begin(), tx->block.get()->txs.end(), tx), tx->block.get()->txs.end()); // TODO, no way to use const_iterator?
}
return vouts;
+3 -4
View File
@@ -63,11 +63,11 @@ namespace monero {
return node;
}
bool MoneroTxWallet::getIsIncoming() const {
bool MoneroTxWallet::getIsOutgoing() const {
return outgoingTransfer != boost::none;
}
bool MoneroTxWallet::getIsOutgoing() const {
bool MoneroTxWallet::getIsIncoming() const {
return !incomingTransfers.empty();
}
@@ -153,8 +153,7 @@ namespace monero {
// filter on outgoing
if (isOutgoing != boost::none) {
if (*isOutgoing && !tx->getIsOutgoing()) return false;
if (!*isOutgoing && tx->getIsOutgoing()) return false;
if (isOutgoing.get() != tx->getIsOutgoing()) return false;
}
//cout << "6" << endl;