skip offer signature validation for cloned offer until signed

This commit is contained in:
woodser 2025-04-16 12:37:04 -04:00 committed by woodser
parent bbfc5d5fed
commit 8eccbcce43

View file

@ -1101,17 +1101,20 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe
} else { } else {
// validate non-pending state // validate non-pending state
try { boolean skipValidation = openOffer.isDeactivated() && hasConflictingClone(openOffer) && openOffer.getOffer().getOfferPayload().getArbitratorSignature() == null; // clone with conflicting offer is deactivated and unsigned at first
validateSignedState(openOffer); if (!skipValidation) {
resultHandler.handleResult(null); // done processing if non-pending state is valid try {
return; validateSignedState(openOffer);
} catch (Exception e) { resultHandler.handleResult(null); // done processing if non-pending state is valid
log.warn(e.getMessage()); return;
} catch (Exception e) {
log.warn(e.getMessage());
// reset arbitrator signature // reset arbitrator signature
openOffer.getOffer().getOfferPayload().setArbitratorSignature(null); openOffer.getOffer().getOfferPayload().setArbitratorSignature(null);
openOffer.getOffer().getOfferPayload().setArbitratorSigner(null); openOffer.getOffer().getOfferPayload().setArbitratorSigner(null);
if (openOffer.isAvailable()) openOffer.setState(OpenOffer.State.PENDING); if (openOffer.isAvailable()) openOffer.setState(OpenOffer.State.PENDING);
}
} }
} }