reprocess offer on republish if arbitrator signature is missing (#2010)

This commit is contained in:
woodser 2025-10-11 09:19:13 -04:00 committed by GitHub
parent e592ad557d
commit dd3fe5b09e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2165,7 +2165,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe
ThreadUtils.execute(() -> {
// skip if prevented from publishing
if (preventedFromPublishing(openOffer)) {
if (preventedFromPublishing(openOffer, false)) {
if (completeHandler != null) completeHandler.run();
return;
}
@ -2178,7 +2178,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe
latch.countDown();
// skip if prevented from publishing
if (preventedFromPublishing(openOffer)) {
if (preventedFromPublishing(openOffer, true)) {
if (completeHandler != null) completeHandler.run();
return;
}
@ -2216,11 +2216,11 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe
}, THREAD_ID);
}
private boolean preventedFromPublishing(OpenOffer openOffer) {
private boolean preventedFromPublishing(OpenOffer openOffer, boolean checkSignature) {
if (!Boolean.TRUE.equals(xmrConnectionService.isConnected())) return true;
return openOffer.isDeactivated() ||
openOffer.isCanceled() ||
openOffer.getOffer().getOfferPayload().getArbitratorSigner() == null ||
(checkSignature && openOffer.getOffer().getOfferPayload().getArbitratorSigner() == null) ||
hasConflictingClone(openOffer);
}
@ -2277,7 +2277,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe
}
private void maybeRefreshOffer(OpenOffer openOffer, int numAttempts, int maxAttempts) {
if (preventedFromPublishing(openOffer)) return;
if (preventedFromPublishing(openOffer, true)) return;
offerBookService.refreshTTL(openOffer.getOffer().getOfferPayload(),
() -> log.debug("Successful refreshed TTL for offer"),
(errorMessage) -> {