Merge pull request #824

09dddf2 wallet: add a filter_by_height field to get_transfers (moneromooo-monero)
This commit is contained in:
Riccardo Spagni 2016-04-29 10:42:39 +02:00
commit aee3214d86
No known key found for this signature in database
GPG Key ID: 55432DF31CCD4FCD
2 changed files with 12 additions and 2 deletions

View File

@ -842,10 +842,17 @@ namespace tools
return false; return false;
} }
uint64_t min_height = 0, max_height = (uint64_t)-1;
if (req.filter_by_height)
{
min_height = req.min_height;
max_height = req.max_height;
}
if (req.in) if (req.in)
{ {
std::list<std::pair<crypto::hash, tools::wallet2::payment_details>> payments; std::list<std::pair<crypto::hash, tools::wallet2::payment_details>> payments;
m_wallet.get_payments(payments, req.min_height, req.max_height); m_wallet.get_payments(payments, min_height, max_height);
for (std::list<std::pair<crypto::hash, tools::wallet2::payment_details>>::const_iterator i = payments.begin(); i != payments.end(); ++i) { for (std::list<std::pair<crypto::hash, tools::wallet2::payment_details>>::const_iterator i = payments.begin(); i != payments.end(); ++i) {
res.in.push_back(wallet_rpc::COMMAND_RPC_GET_TRANSFERS::entry()); res.in.push_back(wallet_rpc::COMMAND_RPC_GET_TRANSFERS::entry());
wallet_rpc::COMMAND_RPC_GET_TRANSFERS::entry &entry = res.in.back(); wallet_rpc::COMMAND_RPC_GET_TRANSFERS::entry &entry = res.in.back();
@ -866,7 +873,7 @@ namespace tools
if (req.out) if (req.out)
{ {
std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>> payments; std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>> payments;
m_wallet.get_payments_out(payments, req.min_height, req.max_height); m_wallet.get_payments_out(payments, min_height, max_height);
for (std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>>::const_iterator i = payments.begin(); i != payments.end(); ++i) { for (std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>>::const_iterator i = payments.begin(); i != payments.end(); ++i) {
res.in.push_back(wallet_rpc::COMMAND_RPC_GET_TRANSFERS::entry()); res.in.push_back(wallet_rpc::COMMAND_RPC_GET_TRANSFERS::entry());
wallet_rpc::COMMAND_RPC_GET_TRANSFERS::entry &entry = res.in.back(); wallet_rpc::COMMAND_RPC_GET_TRANSFERS::entry &entry = res.in.back();

View File

@ -496,6 +496,8 @@ namespace wallet_rpc
bool out; bool out;
bool pending; bool pending;
bool failed; bool failed;
bool filter_by_height;
uint64_t min_height; uint64_t min_height;
uint64_t max_height; uint64_t max_height;
@ -504,6 +506,7 @@ namespace wallet_rpc
KV_SERIALIZE(out); KV_SERIALIZE(out);
KV_SERIALIZE(pending); KV_SERIALIZE(pending);
KV_SERIALIZE(failed); KV_SERIALIZE(failed);
KV_SERIALIZE(filter_by_height);
KV_SERIALIZE(min_height); KV_SERIALIZE(min_height);
KV_SERIALIZE(max_height); KV_SERIALIZE(max_height);
END_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP()