mirror of
https://github.com/wownero/wownero-cpp.git
synced 2026-10-18 07:41:32 +02:00
ready to implement subaddress index filter in getSubaddressAux()
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user