mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-06-06 22:29:10 -04:00
do not refresh or republish offers if disconnected from xmr node
This commit is contained in:
parent
bedd38748e
commit
251a973fd6
1 changed files with 22 additions and 19 deletions
|
@ -1978,6 +1978,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean preventedFromPublishing(OpenOffer openOffer) {
|
private boolean preventedFromPublishing(OpenOffer openOffer) {
|
||||||
|
if (!Boolean.TRUE.equals(xmrConnectionService.isConnected())) return true;
|
||||||
return openOffer.isDeactivated() || openOffer.isCanceled() || openOffer.getOffer().getOfferPayload().getArbitratorSigner() == null;
|
return openOffer.isDeactivated() || openOffer.isCanceled() || openOffer.getOffer().getOfferPayload().getArbitratorSigner() == null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2000,25 +2001,27 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe
|
||||||
if (periodicRefreshOffersTimer == null)
|
if (periodicRefreshOffersTimer == null)
|
||||||
periodicRefreshOffersTimer = UserThread.runPeriodically(() -> {
|
periodicRefreshOffersTimer = UserThread.runPeriodically(() -> {
|
||||||
if (!stopped) {
|
if (!stopped) {
|
||||||
int size = openOffers.size();
|
synchronized (openOffers) {
|
||||||
//we clone our list as openOffers might change during our delayed call
|
int size = openOffers.size();
|
||||||
final ArrayList<OpenOffer> openOffersList = new ArrayList<>(openOffers.getList());
|
//we clone our list as openOffers might change during our delayed call
|
||||||
for (int i = 0; i < size; i++) {
|
final ArrayList<OpenOffer> openOffersList = new ArrayList<>(openOffers.getList());
|
||||||
// we delay to avoid reaching throttle limits
|
for (int i = 0; i < size; i++) {
|
||||||
// roughly 4 offers per second
|
// we delay to avoid reaching throttle limits
|
||||||
|
// roughly 4 offers per second
|
||||||
long delay = 300;
|
|
||||||
final long minDelay = (i + 1) * delay;
|
long delay = 300;
|
||||||
final long maxDelay = (i + 2) * delay;
|
final long minDelay = (i + 1) * delay;
|
||||||
final OpenOffer openOffer = openOffersList.get(i);
|
final long maxDelay = (i + 2) * delay;
|
||||||
UserThread.runAfterRandomDelay(() -> {
|
final OpenOffer openOffer = openOffersList.get(i);
|
||||||
// we need to check if in the meantime the offer has been removed
|
UserThread.runAfterRandomDelay(() -> {
|
||||||
boolean contained = false;
|
// we need to check if in the meantime the offer has been removed
|
||||||
synchronized (openOffers) {
|
boolean contained = false;
|
||||||
contained = openOffers.contains(openOffer);
|
synchronized (openOffers) {
|
||||||
}
|
contained = openOffers.contains(openOffer);
|
||||||
if (contained) maybeRefreshOffer(openOffer, 0, 1);
|
}
|
||||||
}, minDelay, maxDelay, TimeUnit.MILLISECONDS);
|
if (contained) maybeRefreshOffer(openOffer, 0, 1);
|
||||||
|
}, minDelay, maxDelay, TimeUnit.MILLISECONDS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.debug("We have stopped already. We ignore that periodicRefreshOffersTimer.run call.");
|
log.debug("We have stopped already. We ignore that periodicRefreshOffersTimer.run call.");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue