ready to implement subaddress index filter in getSubaddressAux()

This commit is contained in:
woodser
2019-05-31 17:37:02 -04:00
parent 7ba1e05659
commit 7caef26a65
2 changed files with 14 additions and 8 deletions
+13 -7
View File
@@ -281,7 +281,7 @@ namespace monero {
account.primaryAddress = getAddress(0, 0);
account.balance = wallet2->balance(accountIdx);
account.unlockedBalance = wallet2->unlocked_balance(accountIdx);
if (includeSubaddresses) account.subaddresses = getSubaddressesAux(accountIdx, transfers);
if (includeSubaddresses) account.subaddresses = getSubaddressesAux(accountIdx, vector<uint32_t>(), transfers);
accounts.push_back(account);
}
@@ -303,13 +303,23 @@ namespace monero {
vector<MoneroSubaddress> MoneroWallet::getSubaddresses(const uint32_t accountIdx) const {
vector<tools::wallet2::transfer_details> transfers;
wallet2->get_transfers(transfers);
return getSubaddressesAux(accountIdx, transfers);
return getSubaddressesAux(accountIdx, vector<uint32_t>(), transfers);
}
vector<MoneroSubaddress> MoneroWallet::getSubaddresses(const uint32_t accountIdx, const vector<uint32_t> subaddressIndices) const {
cout << "getSubaddresses(" << accountIdx << ", " << subaddressIndices.size() << ")" << endl;
vector<tools::wallet2::transfer_details> transfers;
wallet2->get_transfers(transfers);
return getSubaddressesAux(accountIdx, subaddressIndices, transfers);
}
// private helper to initialize subaddresses using transfer details
vector<MoneroSubaddress> MoneroWallet::getSubaddressesAux(const uint32_t accountIdx, vector<tools::wallet2::transfer_details> transfers) const {
vector<MoneroSubaddress> MoneroWallet::getSubaddressesAux(const uint32_t accountIdx, vector<uint32_t> subaddressIndices, vector<tools::wallet2::transfer_details> transfers) const {
vector<MoneroSubaddress> subaddresses;
// TODO implement
if (!subaddressIndices.empty()) throw runtime_error("getting by subaddress index not yet supported");
// get balances per subaddress as maps
map<uint32_t, uint64_t> balancePerSubaddress = wallet2->balance_per_subaddress(accountIdx);
map<uint32_t, std::pair<uint64_t, uint64_t>> unlockedBalancePerSubaddress = wallet2->unlocked_balance_per_subaddress(accountIdx);
@@ -333,10 +343,6 @@ namespace monero {
return subaddresses;
}
vector<MoneroSubaddress> MoneroWallet::getSubaddresses(const uint32_t accountIdx, const vector<uint32_t> subaddressIndices) const {
throw runtime_error("Not implemented");
}
MoneroSubaddress MoneroWallet::getSubaddress(const uint32_t accountIdx, const uint32_t subaddressIdx) const {
throw runtime_error("Not implemented");
}
+1 -1
View File
@@ -1111,6 +1111,6 @@ namespace monero {
MoneroWalletListener* listener; // wallet's external listener
MoneroSyncResult syncAux(uint64_t* startHeight, uint64_t* endHeight, MoneroSyncListener* listener);
vector<MoneroSubaddress> getSubaddressesAux(uint32_t accountIdx, vector<tools::wallet2::transfer_details> transfers) const;
vector<MoneroSubaddress> getSubaddressesAux(uint32_t accountIdx, vector<uint32_t> subaddressIndices, vector<tools::wallet2::transfer_details> transfers) const;
};
}