diff --git a/src/wallet/asyncrpcoperation_sendmany.cpp b/src/wallet/asyncrpcoperation_sendmany.cpp index ad3a415de..50d63c89f 100644 --- a/src/wallet/asyncrpcoperation_sendmany.cpp +++ b/src/wallet/asyncrpcoperation_sendmany.cpp @@ -331,7 +331,7 @@ bool AsyncRPCOperation_sendmany::main_impl() { uint256 inputAnchor; std::vector> vInputWitnesses; pwalletMain->GetNoteWitnesses(vOutPoints, vInputWitnesses, inputAnchor); - jsopWitnessAnchorMap[ jso.ToString() ] = WitnessAnchorData{ vInputWitnesses, inputAnchor }; + jsopWitnessAnchorMap[ jso.ToString() ] = WitnessAnchorData{ vInputWitnesses[0], inputAnchor }; } } @@ -587,7 +587,6 @@ bool AsyncRPCOperation_sendmany::main_impl() { std::vector vOutPoints; std::vector> vInputWitnesses; uint256 inputAnchor; - WitnessAnchorData wad; int numInputsNeeded = (jsChange>0) ? 1 : 0; while (numInputsNeeded++ < ZC_NUM_JS_INPUTS && zInputsDeque.size() > 0) { SendManyInputJSOP t = zInputsDeque.front(); @@ -596,10 +595,8 @@ bool AsyncRPCOperation_sendmany::main_impl() { CAmount noteFunds = std::get<2>(t); zInputsDeque.pop_front(); - wad = jsopWitnessAnchorMap[ jso.ToString() ]; - for (auto & w : wad.witnesses) { - vInputWitnesses.push_back(w); - } + WitnessAnchorData wad = jsopWitnessAnchorMap[ jso.ToString() ]; + vInputWitnesses.push_back(wad.witness); if (inputAnchor.IsNull()) { inputAnchor = wad.anchor; } else if (inputAnchor != wad.anchor) { diff --git a/src/wallet/asyncrpcoperation_sendmany.h b/src/wallet/asyncrpcoperation_sendmany.h index 1c0cbbbfe..b9ff4f20f 100644 --- a/src/wallet/asyncrpcoperation_sendmany.h +++ b/src/wallet/asyncrpcoperation_sendmany.h @@ -42,9 +42,9 @@ struct AsyncJoinSplitInfo CAmount vpub_new = 0; }; -// A struct to help us track the witnesses and anchor for a given JSOutPoint +// A struct to help us track the witness and anchor for a given JSOutPoint struct WitnessAnchorData { - std::vector> witnesses; + boost::optional witness; uint256 anchor; };