aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2019-03-04 21:32:41 +0200
committerRiccardo Spagni <ric@spagni.net>2019-03-04 21:32:42 +0200
commit6984a4d69cebb7cda6d5a0701a48f0a510a6d090 (patch)
tree296b139b1d7938be34f562f878aba93f657c73bb
parentMerge pull request #5146 (diff)
parentwallet-rpc: get transfers for all accounts and subaddresses (diff)
downloadmonero-6984a4d69cebb7cda6d5a0701a48f0a510a6d090.tar.xz
Merge pull request #5154
8a1ff079 wallet-rpc: get transfers for all accounts and subaddresses (Jethro Grassie)
-rw-r--r--src/wallet/wallet_rpc_server.cpp16
-rw-r--r--src/wallet/wallet_rpc_server_commands_defs.h2
2 files changed, 14 insertions, 4 deletions
diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp
index b57c8aea1..82e9be520 100644
--- a/src/wallet/wallet_rpc_server.cpp
+++ b/src/wallet/wallet_rpc_server.cpp
@@ -2309,10 +2309,18 @@ namespace tools
max_height = req.max_height <= max_height ? req.max_height : max_height;
}
+ boost::optional<uint32_t> account_index = req.account_index;
+ std::set<uint32_t> subaddr_indices = req.subaddr_indices;
+ if (req.all_accounts)
+ {
+ account_index = boost::none;
+ subaddr_indices.clear();
+ }
+
if (req.in)
{
std::list<std::pair<crypto::hash, tools::wallet2::payment_details>> payments;
- m_wallet->get_payments(payments, min_height, max_height, req.account_index, req.subaddr_indices);
+ m_wallet->get_payments(payments, min_height, max_height, account_index, subaddr_indices);
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::transfer_entry());
fill_transfer_entry(res.in.back(), i->second.m_tx_hash, i->first, i->second);
@@ -2322,7 +2330,7 @@ namespace tools
if (req.out)
{
std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>> payments;
- m_wallet->get_payments_out(payments, min_height, max_height, req.account_index, req.subaddr_indices);
+ m_wallet->get_payments_out(payments, min_height, max_height, account_index, subaddr_indices);
for (std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>>::const_iterator i = payments.begin(); i != payments.end(); ++i) {
res.out.push_back(wallet_rpc::transfer_entry());
fill_transfer_entry(res.out.back(), i->first, i->second);
@@ -2331,7 +2339,7 @@ namespace tools
if (req.pending || req.failed) {
std::list<std::pair<crypto::hash, tools::wallet2::unconfirmed_transfer_details>> upayments;
- m_wallet->get_unconfirmed_payments_out(upayments, req.account_index, req.subaddr_indices);
+ m_wallet->get_unconfirmed_payments_out(upayments, account_index, subaddr_indices);
for (std::list<std::pair<crypto::hash, tools::wallet2::unconfirmed_transfer_details>>::const_iterator i = upayments.begin(); i != upayments.end(); ++i) {
const tools::wallet2::unconfirmed_transfer_details &pd = i->second;
bool is_failed = pd.m_state == tools::wallet2::unconfirmed_transfer_details::failed;
@@ -2348,7 +2356,7 @@ namespace tools
m_wallet->update_pool_state();
std::list<std::pair<crypto::hash, tools::wallet2::pool_payment_details>> payments;
- m_wallet->get_unconfirmed_payments(payments, req.account_index, req.subaddr_indices);
+ m_wallet->get_unconfirmed_payments(payments, account_index, subaddr_indices);
for (std::list<std::pair<crypto::hash, tools::wallet2::pool_payment_details>>::const_iterator i = payments.begin(); i != payments.end(); ++i) {
res.pool.push_back(wallet_rpc::transfer_entry());
fill_transfer_entry(res.pool.back(), i->first, i->second);
diff --git a/src/wallet/wallet_rpc_server_commands_defs.h b/src/wallet/wallet_rpc_server_commands_defs.h
index 8907b219a..441ae02ed 100644
--- a/src/wallet/wallet_rpc_server_commands_defs.h
+++ b/src/wallet/wallet_rpc_server_commands_defs.h
@@ -1418,6 +1418,7 @@ namespace wallet_rpc
uint64_t max_height;
uint32_t account_index;
std::set<uint32_t> subaddr_indices;
+ bool all_accounts;
BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE(in);
@@ -1430,6 +1431,7 @@ namespace wallet_rpc
KV_SERIALIZE_OPT(max_height, (uint64_t)CRYPTONOTE_MAX_BLOCK_NUMBER);
KV_SERIALIZE(account_index);
KV_SERIALIZE(subaddr_indices);
+ KV_SERIALIZE_OPT(all_accounts, false);
END_KV_SERIALIZE_MAP()
};