Browse Source

Fix bugs in excluding multiple zsweep zaddrs and report all excluded zsweep zaddrs in z_sweepstatus

pull/195/head
Duke Leto 2 years ago
parent
commit
35f376c8b5
  1. 13
      src/wallet/asyncrpcoperation_sweep.cpp
  2. 7
      src/wallet/rpcwallet.cpp

13
src/wallet/asyncrpcoperation_sweep.cpp

@ -80,15 +80,16 @@ bool IsExcludedAddress(libzcash::SaplingPaymentAddress zaddr) {
auto zAddressExclude = DecodePaymentAddress(sweepExcludeAddress);
if (boost::get<libzcash::SaplingPaymentAddress>(&zAddressExclude) != nullptr) {
sweepExcludeAddress = boost::get<libzcash::SaplingPaymentAddress>(zAddressExclude);
auto excludeAddress = boost::get<libzcash::SaplingPaymentAddress>(zAddressExclude);
if (excludeAddress == zaddr) {
return true;
}
} else {
// This is an invalid sapling zaddr
LogPrintf("%s: Invalid zsweepexclude zaddr %s, ignoring\n", opid, sweepExcludeAddress);
LogPrintf("%s: Invalid zsweepexclude zaddr %s, ignoring\n", sweepExcludeAddress);
continue;
}
if (sweepExcludeAddress == entry.address) {
return true;
}
}
return false;
@ -142,7 +143,7 @@ bool AsyncRPCOperation_sweep::main_impl() {
// Map all notes (zutxos) by address
for (auto & entry : saplingEntries) {
// do not need to sweep Excluded Addresses
if(IsExcludedAddress(entry.address) {
if(IsExcludedAddress(entry.address)) {
continue;
}

7
src/wallet/rpcwallet.cpp

@ -3370,10 +3370,9 @@ UniValue z_sweepstatus(const UniValue& params, bool fHelp, const CPubKey& mypk)
ret.push_back(Pair("zsweepinterval", pwalletMain->sweepInterval));
ret.push_back(Pair("zsweepaddress", pwalletMain->sweepAddress));
UniValue excludes(UniValue::VARR);
// BOOST_FOREACH(const std::string& exclude, pwalletMain->sweepExcludeAddresses ) {
// excludes.push_back(exclude);
// }
excludes.push_back( pwalletMain->sweepExcludeAddress );
BOOST_FOREACH(const std::string& exclude, pwalletMain->sweepExcludeAddresses ) {
excludes.push_back(exclude);
}
ret.push_back(Pair("zsweepexclude", excludes));
ret.push_back(Pair("zsweepmaxinputs", pwalletMain->sweepMaxInputs));
ret.push_back(Pair("zsweepfee", pwalletMain->sweepFee));

Loading…
Cancel
Save