define MoneroTransferRequest meetsCriteria

This commit is contained in:
woodser
2019-06-17 15:51:17 -04:00
parent eb8bd2b68d
commit c611abf080
3 changed files with 15 additions and 13 deletions
+6 -12
View File
@@ -543,11 +543,9 @@ namespace monero {
cout << "vector<shared_ptr<MoneroTransfer>> getTransfers(request)" << endl;
// normalize request
// TODO: this will modify original request, construct copy? add test
MoneroTxRequest txReq = *(request.txRequest != boost::none ? *request.txRequest : shared_ptr<MoneroTxRequest>(new MoneroTxRequest()));
//MoneroTxRequest txReq = MoneroTxRequest();
//if (request.txRequest != boost::none) txReq = **request.txRequest;
// build parameters for wallet2->get_payments()
uint64_t minHeight = txReq.minHeight == boost::none ? 0 : *txReq.minHeight;
uint64_t maxHeight = txReq.maxHeight == boost::none ? CRYPTONOTE_MAX_BLOCK_NUMBER : min((uint64_t) CRYPTONOTE_MAX_BLOCK_NUMBER, *txReq.maxHeight);
@@ -598,18 +596,14 @@ namespace monero {
//throw runtime_error("isPool not implemented");
}
// TODO: apply filtering
// collect resulting transfers
// filter and return transfers
vector<shared_ptr<MoneroTransfer>> transfers;
for (int i = 0; i < txs.size(); i++) {
shared_ptr<MoneroTxWallet> tx = txs[i];
for (int j = 0; j < tx->incomingTransfers.size(); j++) {
transfers.push_back(tx->incomingTransfers[j]);
for (const shared_ptr<MoneroTxWallet>& tx : txs) {
if (tx->outgoingTransfer != boost::none && request.meetsCriteria(&(**tx->outgoingTransfer))) transfers.push_back(*tx->outgoingTransfer);
for (const shared_ptr<MoneroIncomingTransfer>& incomingTransfer : tx->incomingTransfers) {
if (request.meetsCriteria(&(*incomingTransfer))) transfers.push_back(incomingTransfer); // TODO: replace this with e.g. incomingTransfer.get()
}
if (tx->outgoingTransfer != boost::none) transfers.push_back(*tx->outgoingTransfer);
}
return transfers;
}
+8 -1
View File
@@ -13,6 +13,9 @@ using namespace epee; // TODO: delete?
*/
namespace monero {
// ----------------------- UNDECLARED PRIVATE HELPERS -----------------------
// -------------------------- MODEL SERIALIZATION ---------------------------
boost::property_tree::ptree MoneroAccount::toPropertyTree() const {
@@ -115,6 +118,10 @@ namespace monero {
// return txNode;
//}
// ----------------------- UNDECLARED PRIVATE HELPERS -----------------------
// --------------------------------- REQUESTS -------------------------------
bool MoneroTransferRequest::meetsCriteria(const MoneroTransfer* transfer) const {
//return true; // TODO
return false;
}
}
+1
View File
@@ -159,6 +159,7 @@ namespace monero {
vector<shared_ptr<MoneroDestination>> destinations;
boost::optional<bool> hasDestinations;
boost::optional<shared_ptr<MoneroTxRequest>> txRequest;
bool meetsCriteria(const MoneroTransfer* transfer) const;
};
/**