getSubaddresses() uses overloaded impl;

const correctness on getSubaddresses() given indices
This commit is contained in:
woodser
2019-07-28 11:58:03 -04:00
parent 1ecc53aec2
commit b9fd83e19d
2 changed files with 12 additions and 12 deletions
+10 -10
View File
@@ -1227,13 +1227,11 @@ namespace monero {
return account;
}
vector<MoneroSubaddress> MoneroWallet::getSubaddresses(const uint32_t accountIdx) const { // TODO **: this should call one below
vector<tools::wallet2::transfer_details> transfers;
wallet2->get_transfers(transfers);
return getSubaddressesAux(accountIdx, vector<uint32_t>(), transfers);
vector<MoneroSubaddress> MoneroWallet::getSubaddresses(const uint32_t accountIdx) const {
return getSubaddresses(accountIdx, vector<uint32_t>());
}
vector<MoneroSubaddress> MoneroWallet::getSubaddresses(const uint32_t accountIdx, const vector<uint32_t> subaddressIndices) const {
vector<MoneroSubaddress> MoneroWallet::getSubaddresses(const uint32_t accountIdx, const vector<uint32_t>& subaddressIndices) const {
MTRACE("getSubaddresses(" << accountIdx << ", ...)");
MTRACE("Subaddress indices size: " << subaddressIndices.size());
@@ -2380,7 +2378,7 @@ namespace monero {
}
// private helper to initialize subaddresses using transfer details
vector<MoneroSubaddress> MoneroWallet::getSubaddressesAux(const uint32_t accountIdx, vector<uint32_t> subaddressIndices, const vector<tools::wallet2::transfer_details>& transfers) const {
vector<MoneroSubaddress> MoneroWallet::getSubaddressesAux(const uint32_t accountIdx, const vector<uint32_t>& subaddressIndices, const vector<tools::wallet2::transfer_details>& transfers) const {
vector<MoneroSubaddress> subaddresses;
// get balances per subaddress as maps
@@ -2388,18 +2386,20 @@ namespace monero {
map<uint32_t, std::pair<uint64_t, uint64_t>> unlockedBalancePerSubaddress = wallet2->unlocked_balance_per_subaddress(accountIdx);
// get all indices if no indices given
vector<uint32_t> subaddressIndicesReq;
if (subaddressIndices.empty()) {
subaddressIndices = vector<uint32_t>();
for (uint32_t subaddressIdx = 0; subaddressIdx < wallet2->get_num_subaddresses(accountIdx); subaddressIdx++) {
subaddressIndices.push_back(subaddressIdx);
subaddressIndicesReq.push_back(subaddressIdx);
}
} else {
subaddressIndicesReq = subaddressIndices;
}
// initialize subaddresses at indices
for (uint32_t subaddressIndicesIdx = 0; subaddressIndicesIdx < subaddressIndices.size(); subaddressIndicesIdx++) {
for (uint32_t subaddressIndicesIdx = 0; subaddressIndicesIdx < subaddressIndicesReq.size(); subaddressIndicesIdx++) {
MoneroSubaddress subaddress;
subaddress.accountIndex = accountIdx;
uint32_t subaddressIdx = subaddressIndices.at(subaddressIndicesIdx);
uint32_t subaddressIdx = subaddressIndicesReq.at(subaddressIndicesIdx);
subaddress.index = subaddressIdx;
subaddress.address = getAddress(accountIdx, subaddressIdx);
subaddress.label = wallet2->get_subaddress_label({accountIdx, subaddressIdx});
+2 -2
View File
@@ -588,7 +588,7 @@ namespace monero {
* @param subaddressIndices are specific subaddresses to get (optional)
* @return the retrieved subaddresses
*/
vector<MoneroSubaddress> getSubaddresses(const uint32_t accountIdx, const vector<uint32_t> subaddressIndices) const;
vector<MoneroSubaddress> getSubaddresses(const uint32_t accountIdx, const vector<uint32_t>& subaddressIndices) const;
/**
* Get a subaddress.
@@ -1220,7 +1220,7 @@ namespace monero {
boost::optional<MoneroWalletListener&> listener = boost::none; // wallet's external listener
void initCommon();
vector<MoneroSubaddress> getSubaddressesAux(uint32_t accountIdx, vector<uint32_t> subaddressIndices, const vector<tools::wallet2::transfer_details>& transfers) const;
vector<MoneroSubaddress> getSubaddressesAux(uint32_t accountIdx, const vector<uint32_t>& subaddressIndices, const vector<tools::wallet2::transfer_details>& transfers) const;
// blockchain sync management
mutable std::atomic<bool> isSynced; // whether or not wallet is synced