wallet-rpc: take subaddress account as arg for get_transfer_by_txid

This commit is contained in:
stoffu 2018-01-30 19:55:39 +09:00
parent 7712509644
commit a99ef17695
No known key found for this signature in database
GPG Key ID: 41DAB8343A9EC012
2 changed files with 13 additions and 4 deletions

View File

@ -1889,8 +1889,15 @@ namespace tools
return false; return false;
} }
if (req.account_index >= m_wallet->get_num_subaddress_accounts())
{
er.code = WALLET_RPC_ERROR_CODE_ACCOUNT_INDEX_OUT_OF_BOUNDS;
er.message = "Account index is out of bound";
return false;
}
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, 0); m_wallet->get_payments(payments, 0, (uint64_t)-1, req.account_index);
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) {
if (i->second.m_tx_hash == txid) if (i->second.m_tx_hash == txid)
{ {
@ -1900,7 +1907,7 @@ namespace tools
} }
std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>> payments_out; std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>> payments_out;
m_wallet->get_payments_out(payments_out, 0); m_wallet->get_payments_out(payments_out, 0, (uint64_t)-1, req.account_index);
for (std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>>::const_iterator i = payments_out.begin(); i != payments_out.end(); ++i) { for (std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>>::const_iterator i = payments_out.begin(); i != payments_out.end(); ++i) {
if (i->first == txid) if (i->first == txid)
{ {
@ -1910,7 +1917,7 @@ namespace tools
} }
std::list<std::pair<crypto::hash, tools::wallet2::unconfirmed_transfer_details>> upayments; std::list<std::pair<crypto::hash, tools::wallet2::unconfirmed_transfer_details>> upayments;
m_wallet->get_unconfirmed_payments_out(upayments); m_wallet->get_unconfirmed_payments_out(upayments, req.account_index);
for (std::list<std::pair<crypto::hash, tools::wallet2::unconfirmed_transfer_details>>::const_iterator i = upayments.begin(); i != upayments.end(); ++i) { for (std::list<std::pair<crypto::hash, tools::wallet2::unconfirmed_transfer_details>>::const_iterator i = upayments.begin(); i != upayments.end(); ++i) {
if (i->first == txid) if (i->first == txid)
{ {
@ -1922,7 +1929,7 @@ namespace tools
m_wallet->update_pool_state(); m_wallet->update_pool_state();
std::list<std::pair<crypto::hash, tools::wallet2::pool_payment_details>> pool_payments; std::list<std::pair<crypto::hash, tools::wallet2::pool_payment_details>> pool_payments;
m_wallet->get_unconfirmed_payments(pool_payments); m_wallet->get_unconfirmed_payments(pool_payments, req.account_index);
for (std::list<std::pair<crypto::hash, tools::wallet2::pool_payment_details>>::const_iterator i = pool_payments.begin(); i != pool_payments.end(); ++i) { for (std::list<std::pair<crypto::hash, tools::wallet2::pool_payment_details>>::const_iterator i = pool_payments.begin(); i != pool_payments.end(); ++i) {
if (i->second.m_pd.m_tx_hash == txid) if (i->second.m_pd.m_tx_hash == txid)
{ {

View File

@ -1291,9 +1291,11 @@ namespace wallet_rpc
struct request struct request
{ {
std::string txid; std::string txid;
uint32_t account_index;
BEGIN_KV_SERIALIZE_MAP() BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE(txid); KV_SERIALIZE(txid);
KV_SERIALIZE_OPT(account_index, (uint32_t)0)
END_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP()
}; };