mirror of
https://github.com/boldsuck/haveno.git
synced 2025-03-21 06:38:46 +00:00
commit
c8a91de1b2
10 changed files with 126 additions and 127 deletions
|
@ -610,7 +610,7 @@ configure(project(':desktop')) {
|
||||||
apply plugin: 'com.github.johnrengelman.shadow'
|
apply plugin: 'com.github.johnrengelman.shadow'
|
||||||
apply from: 'package/package.gradle'
|
apply from: 'package/package.gradle'
|
||||||
|
|
||||||
version = '1.0.13-SNAPSHOT'
|
version = '1.0.14-SNAPSHOT'
|
||||||
|
|
||||||
jar.manifest.attributes(
|
jar.manifest.attributes(
|
||||||
"Implementation-Title": project.name,
|
"Implementation-Title": project.name,
|
||||||
|
|
|
@ -28,7 +28,7 @@ import static com.google.common.base.Preconditions.checkArgument;
|
||||||
public class Version {
|
public class Version {
|
||||||
// The application versions
|
// The application versions
|
||||||
// We use semantic versioning with major, minor and patch
|
// We use semantic versioning with major, minor and patch
|
||||||
public static final String VERSION = "1.0.13";
|
public static final String VERSION = "1.0.14";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds a list of the tagged resource files for optimizing the getData requests.
|
* Holds a list of the tagged resource files for optimizing the getData requests.
|
||||||
|
|
|
@ -32,6 +32,7 @@ import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -76,11 +77,11 @@ public class FileUtil {
|
||||||
|
|
||||||
public static List<File> getBackupFiles(File dir, String fileName) {
|
public static List<File> getBackupFiles(File dir, String fileName) {
|
||||||
File backupDir = new File(Paths.get(dir.getAbsolutePath(), BACKUP_DIR).toString());
|
File backupDir = new File(Paths.get(dir.getAbsolutePath(), BACKUP_DIR).toString());
|
||||||
if (!backupDir.exists()) return null;
|
if (!backupDir.exists()) return new ArrayList<File>();
|
||||||
String dirName = "backups_" + fileName;
|
String dirName = "backups_" + fileName;
|
||||||
if (dirName.contains(".")) dirName = dirName.replace(".", "_");
|
if (dirName.contains(".")) dirName = dirName.replace(".", "_");
|
||||||
File backupFileDir = new File(Paths.get(backupDir.getAbsolutePath(), dirName).toString());
|
File backupFileDir = new File(Paths.get(backupDir.getAbsolutePath(), dirName).toString());
|
||||||
if (!backupFileDir.exists()) return null;
|
if (!backupFileDir.exists()) return new ArrayList<File>();
|
||||||
File[] files = backupFileDir.listFiles();
|
File[] files = backupFileDir.listFiles();
|
||||||
return Arrays.asList(files);
|
return Arrays.asList(files);
|
||||||
}
|
}
|
||||||
|
|
|
@ -467,7 +467,7 @@ public final class Dispute implements NetworkPayload, PersistablePayload {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOpen() {
|
public boolean isOpen() {
|
||||||
return this.disputeState == State.OPEN || this.disputeState == State.REOPENED;
|
return isNew() || this.disputeState == State.OPEN || this.disputeState == State.REOPENED;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isClosed() {
|
public boolean isClosed() {
|
||||||
|
|
|
@ -359,6 +359,13 @@ public abstract class DisputeManager<T extends DisputeList<Dispute>> extends Sup
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// skip if payout is confirmed
|
||||||
|
if (trade.isPayoutConfirmed()) {
|
||||||
|
String errorMsg = "Cannot open dispute because payout is already confirmed for " + trade.getClass().getSimpleName() + " " + trade.getId();
|
||||||
|
faultHandler.handleFault(errorMsg, new IllegalStateException(errorMsg));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
synchronized (disputeList.getObservableList()) {
|
synchronized (disputeList.getObservableList()) {
|
||||||
if (disputeList.contains(dispute)) {
|
if (disputeList.contains(dispute)) {
|
||||||
String msg = "We got a dispute msg that we have already stored. TradeId = " + dispute.getTradeId() + ", DisputeId = " + dispute.getId();
|
String msg = "We got a dispute msg that we have already stored. TradeId = " + dispute.getTradeId() + ", DisputeId = " + dispute.getId();
|
||||||
|
@ -368,8 +375,7 @@ public abstract class DisputeManager<T extends DisputeList<Dispute>> extends Sup
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional<Dispute> storedDisputeOptional = findDispute(dispute);
|
Optional<Dispute> storedDisputeOptional = findDispute(dispute);
|
||||||
boolean reOpen = storedDisputeOptional.isPresent() && storedDisputeOptional.get().isClosed();
|
boolean reOpen = storedDisputeOptional.isPresent();
|
||||||
if (!storedDisputeOptional.isPresent() || reOpen) {
|
|
||||||
|
|
||||||
// add or re-open dispute
|
// add or re-open dispute
|
||||||
if (reOpen) {
|
if (reOpen) {
|
||||||
|
@ -472,12 +478,6 @@ public abstract class DisputeManager<T extends DisputeList<Dispute>> extends Sup
|
||||||
errorMessage, new DisputeMessageDeliveryFailedException());
|
errorMessage, new DisputeMessageDeliveryFailedException());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
String msg = "We got a dispute already open for that trade and trading peer.\n" +
|
|
||||||
"TradeId = " + dispute.getTradeId();
|
|
||||||
log.warn(msg);
|
|
||||||
faultHandler.handleFault(msg, new DisputeAlreadyOpenException());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
requestPersistence();
|
requestPersistence();
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
<!-- See: https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -->
|
<!-- See: https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -->
|
||||||
|
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.0.13</string>
|
<string>1.0.14</string>
|
||||||
|
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.0.13</string>
|
<string>1.0.14</string>
|
||||||
|
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>Haveno</string>
|
<string>Haveno</string>
|
||||||
|
|
|
@ -308,7 +308,7 @@ public abstract class MutableOfferView<M extends MutableOfferViewModel<?>> exten
|
||||||
if (CurrencyUtil.isTraditionalCurrency(tradeCurrency.getCode())) {
|
if (CurrencyUtil.isTraditionalCurrency(tradeCurrency.getCode())) {
|
||||||
placeOfferButtonLabel = Res.get("createOffer.placeOfferButton", Res.get("shared.buy"));
|
placeOfferButtonLabel = Res.get("createOffer.placeOfferButton", Res.get("shared.buy"));
|
||||||
} else {
|
} else {
|
||||||
placeOfferButtonLabel = Res.get("createOffer.placeOfferButtonCrypto", Res.get("shared.buy"), tradeCurrency.getCode());
|
placeOfferButtonLabel = Res.get("createOffer.placeOfferButtonCrypto", Res.get("shared.sell"), tradeCurrency.getCode());
|
||||||
}
|
}
|
||||||
nextButton.setId("buy-button");
|
nextButton.setId("buy-button");
|
||||||
fundFromSavingsWalletButton.setId("buy-button");
|
fundFromSavingsWalletButton.setId("buy-button");
|
||||||
|
@ -317,7 +317,7 @@ public abstract class MutableOfferView<M extends MutableOfferViewModel<?>> exten
|
||||||
if (CurrencyUtil.isTraditionalCurrency(tradeCurrency.getCode())) {
|
if (CurrencyUtil.isTraditionalCurrency(tradeCurrency.getCode())) {
|
||||||
placeOfferButtonLabel = Res.get("createOffer.placeOfferButton", Res.get("shared.sell"));
|
placeOfferButtonLabel = Res.get("createOffer.placeOfferButton", Res.get("shared.sell"));
|
||||||
} else {
|
} else {
|
||||||
placeOfferButtonLabel = Res.get("createOffer.placeOfferButtonCrypto", Res.get("shared.sell"), tradeCurrency.getCode());
|
placeOfferButtonLabel = Res.get("createOffer.placeOfferButtonCrypto", Res.get("shared.buy"), tradeCurrency.getCode());
|
||||||
}
|
}
|
||||||
nextButton.setId("sell-button");
|
nextButton.setId("sell-button");
|
||||||
fundFromSavingsWalletButton.setId("sell-button");
|
fundFromSavingsWalletButton.setId("sell-button");
|
||||||
|
@ -707,10 +707,10 @@ public abstract class MutableOfferView<M extends MutableOfferViewModel<?>> exten
|
||||||
triggerPriceInputTextField.clear();
|
triggerPriceInputTextField.clear();
|
||||||
if (!CurrencyUtil.isTraditionalCurrency(newValue)) {
|
if (!CurrencyUtil.isTraditionalCurrency(newValue)) {
|
||||||
if (model.isShownAsBuyOffer()) {
|
if (model.isShownAsBuyOffer()) {
|
||||||
placeOfferButton.updateText(Res.get("createOffer.placeOfferButtonCrypto", Res.get("shared.buy"),
|
placeOfferButton.updateText(Res.get("createOffer.placeOfferButtonCrypto", Res.get("shared.sell"),
|
||||||
model.getTradeCurrency().getCode()));
|
model.getTradeCurrency().getCode()));
|
||||||
} else {
|
} else {
|
||||||
placeOfferButton.updateText(Res.get("createOffer.placeOfferButtonCrypto", Res.get("shared.sell"),
|
placeOfferButton.updateText(Res.get("createOffer.placeOfferButtonCrypto", Res.get("shared.buy"),
|
||||||
model.getTradeCurrency().getCode()));
|
model.getTradeCurrency().getCode()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -402,9 +402,7 @@ abstract class OfferBookViewModel extends ActivatableViewModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<Double> getMarketBasedPrice(Offer offer) {
|
public Optional<Double> getMarketBasedPrice(Offer offer) {
|
||||||
OfferDirection displayDirection = offer.isTraditionalOffer() ? direction :
|
return priceUtil.getMarketBasedPrice(offer, direction);
|
||||||
direction.equals(OfferDirection.BUY) ? OfferDirection.SELL : OfferDirection.BUY;
|
|
||||||
return priceUtil.getMarketBasedPrice(offer, displayDirection);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String formatMarketPriceMarginPct(Offer offer) {
|
String formatMarketPriceMarginPct(Offer offer) {
|
||||||
|
|
|
@ -306,12 +306,12 @@ public class TakeOfferView extends ActivatableViewAndModel<AnchorPane, TakeOffer
|
||||||
takeOfferButton.setId("buy-button-big");
|
takeOfferButton.setId("buy-button-big");
|
||||||
nextButton.setId("buy-button");
|
nextButton.setId("buy-button");
|
||||||
fundFromSavingsWalletButton.setId("buy-button");
|
fundFromSavingsWalletButton.setId("buy-button");
|
||||||
takeOfferButton.updateText(getTakeOfferLabel(offer, Res.get("shared.buy")));
|
takeOfferButton.updateText(getTakeOfferLabel(offer, false));
|
||||||
} else {
|
} else {
|
||||||
takeOfferButton.setId("sell-button-big");
|
takeOfferButton.setId("sell-button-big");
|
||||||
nextButton.setId("sell-button");
|
nextButton.setId("sell-button");
|
||||||
fundFromSavingsWalletButton.setId("sell-button");
|
fundFromSavingsWalletButton.setId("sell-button");
|
||||||
takeOfferButton.updateText(getTakeOfferLabel(offer, Res.get("shared.sell")));
|
takeOfferButton.updateText(getTakeOfferLabel(offer, true));
|
||||||
}
|
}
|
||||||
priceAsPercentageDescription.setText(model.getPercentagePriceDescription());
|
priceAsPercentageDescription.setText(model.getPercentagePriceDescription());
|
||||||
|
|
||||||
|
@ -1232,11 +1232,11 @@ public class TakeOfferView extends ActivatableViewAndModel<AnchorPane, TakeOffer
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private String getTakeOfferLabel(Offer offer, String direction) {
|
private String getTakeOfferLabel(Offer offer, boolean isBuyOffer) {
|
||||||
return offer.isTraditionalOffer() ?
|
return offer.isTraditionalOffer() ?
|
||||||
Res.get("takeOffer.takeOfferButton", direction) :
|
Res.get("takeOffer.takeOfferButton", isBuyOffer ? Res.get("shared.sell") : Res.get("shared.buy")) :
|
||||||
Res.get("takeOffer.takeOfferButtonCrypto",
|
Res.get("takeOffer.takeOfferButtonCrypto",
|
||||||
direction,
|
isBuyOffer ? Res.get("shared.buy") : Res.get("shared.sell"),
|
||||||
offer.getCurrencyCode());
|
offer.getCurrencyCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class SeedNodeMain extends ExecutableForAppWithP2p {
|
public class SeedNodeMain extends ExecutableForAppWithP2p {
|
||||||
private static final long CHECK_CONNECTION_LOSS_SEC = 30;
|
private static final long CHECK_CONNECTION_LOSS_SEC = 30;
|
||||||
private static final String VERSION = "1.0.13";
|
private static final String VERSION = "1.0.14";
|
||||||
private SeedNode seedNode;
|
private SeedNode seedNode;
|
||||||
private Timer checkConnectionLossTime;
|
private Timer checkConnectionLossTime;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue