mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 15:10:44 +01:00
Fix bug with failed offer removal. Fix reduced fees to avoid negative amounts
This commit is contained in:
parent
860ffd2aff
commit
be108a3035
7 changed files with 26 additions and 11 deletions
|
@ -50,7 +50,7 @@ public class FeePolicy {
|
|||
public static final Coin DUST = Coin.valueOf(546);
|
||||
|
||||
//TODO for testing
|
||||
public static final Coin CREATE_OFFER_FEE = Coin.valueOf(10000); // 0.0001 BTC 0.1% of 1 BTC about 0.2 EUR @ 200 EUR/BTC
|
||||
public static final Coin CREATE_OFFER_FEE = Coin.valueOf(40000); // 0.0001 BTC 0.1% of 1 BTC about 0.2 EUR @ 200 EUR/BTC
|
||||
//public static final Coin CREATE_OFFER_FEE = Coin.valueOf(100000); // 0.001 BTC 0.1% of 1 BTC about 0.2 EUR @ 200 EUR/BTC
|
||||
public static final Coin TAKE_OFFER_FEE = CREATE_OFFER_FEE;
|
||||
//TODO for testing
|
||||
|
|
|
@ -141,6 +141,7 @@ public class TradeWalletService {
|
|||
public Transaction createTradingFeeTx(AddressEntry addressEntry, Coin tradingFee, String feeReceiverAddresses)
|
||||
throws InsufficientMoneyException, AddressFormatException {
|
||||
Transaction tradingFeeTx = new Transaction(params);
|
||||
Preconditions.checkArgument(tradingFee.compareTo(FeePolicy.TX_FEE) > 0);
|
||||
Coin outPutAmount = tradingFee.subtract(FeePolicy.TX_FEE);
|
||||
tradingFeeTx.addOutput(outPutAmount, new Address(params, feeReceiverAddresses));
|
||||
|
||||
|
|
|
@ -220,23 +220,37 @@ public class OpenOfferManager {
|
|||
|
||||
public void onRemoveOpenOffer(Offer offer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
|
||||
Optional<OpenOffer> openOfferOptional = findOpenOffer(offer.getId());
|
||||
if (openOfferOptional.isPresent())
|
||||
if (openOfferOptional.isPresent()) {
|
||||
onRemoveOpenOffer(openOfferOptional.get(), resultHandler, errorMessageHandler);
|
||||
} else {
|
||||
log.warn("Offer was not found in our list of open offers. We still try to remove it from the offerbook.");
|
||||
errorMessageHandler.handleErrorMessage("Offer was not found in our list of open offers. " +
|
||||
"We still try to remove it from the offerbook.");
|
||||
onRemoveOffer(offer);
|
||||
}
|
||||
}
|
||||
|
||||
public void onRemoveOpenOffer(OpenOffer openOffer, ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler) {
|
||||
offerBookService.removeOffer(openOffer.getOffer(),
|
||||
Offer offer = openOffer.getOffer();
|
||||
offerBookService.removeOffer(offer,
|
||||
() -> {
|
||||
openOffer.getOffer().setState(Offer.State.REMOVED);
|
||||
offer.setState(Offer.State.REMOVED);
|
||||
openOffer.setState(OpenOffer.State.CANCELED);
|
||||
openOffers.remove(openOffer);
|
||||
closedTradableManager.add(openOffer);
|
||||
//disposeCheckOfferAvailabilityRequest(offer);
|
||||
resultHandler.handleResult();
|
||||
},
|
||||
errorMessageHandler);
|
||||
}
|
||||
|
||||
// That should not be needed, but there are cases where the openOffer is removed but the offer still in the
|
||||
// offerbook
|
||||
public void onRemoveOffer(Offer offer) {
|
||||
offerBookService.removeOffer(offer,
|
||||
() -> offer.setState(Offer.State.REMOVED),
|
||||
null);
|
||||
}
|
||||
|
||||
public void reserveOpenOffer(OpenOffer openOffer) {
|
||||
openOffer.setState(OpenOffer.State.RESERVED);
|
||||
}
|
||||
|
|
|
@ -249,7 +249,6 @@ class MainViewModel implements ViewModel {
|
|||
FxTimer.runLater(Duration.ofMillis(2000), () -> setBitcoinNetworkSyncProgress(walletService.downloadPercentageProperty().get()));*/
|
||||
|
||||
walletService.numPeersProperty().addListener((observable, oldValue, newValue) -> {
|
||||
log.debug("Bitcoin peers " + newValue);
|
||||
numBTCPeers = (int) newValue;
|
||||
numBTCPeersAsString.set(String.valueOf(newValue) + " peers");
|
||||
if (blockchainSyncProgress.get() >= 1 && numBTCPeers > 0)
|
||||
|
|
|
@ -188,7 +188,7 @@ class CreateOfferDataModel extends ActivatableDataModel {
|
|||
// UI actions
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Offer getOffer() {
|
||||
Offer createAndGetOffer() {
|
||||
long fiatPrice = priceAsFiat.get() != null ? priceAsFiat.get().getValue() : 0L;
|
||||
long amount = amountAsCoin.get() != null ? amountAsCoin.get().getValue() : 0L;
|
||||
long minAmount = minAmountAsCoin.get() != null ? minAmountAsCoin.get().getValue() : 0L;
|
||||
|
|
|
@ -200,7 +200,7 @@ public class CreateOfferView extends ActivatableViewAndModel<AnchorPane, CreateO
|
|||
|
||||
private void onPlaceOffer() {
|
||||
if (model.isAuthenticated()) {
|
||||
Offer offer = model.getOffer();
|
||||
Offer offer = model.createAndGetOffer();
|
||||
if (model.getShowPlaceOfferConfirmation()) {
|
||||
offerDetailsPopup.onPlaceOffer(o -> model.onPlaceOffer(o)).show(offer);
|
||||
} else {
|
||||
|
|
|
@ -95,6 +95,7 @@ class CreateOfferViewModel extends ActivatableWithDataModel<CreateOfferDataModel
|
|||
private ChangeListener<Boolean> requestPlaceOfferSuccessListener;
|
||||
private ChangeListener<String> requestPlaceOfferErrorMessageListener;
|
||||
private ChangeListener<String> errorMessageListener;
|
||||
private Offer offer;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -276,7 +277,6 @@ class CreateOfferViewModel extends ActivatableWithDataModel<CreateOfferDataModel
|
|||
requestPlaceOfferSuccess.removeListener(requestPlaceOfferSuccessListener);
|
||||
errorMessage.removeListener(requestPlaceOfferErrorMessageListener);
|
||||
|
||||
Offer offer = dataModel.getOffer();
|
||||
if (offer != null && errorMessageListener != null)
|
||||
offer.errorMessageProperty().removeListener(errorMessageListener);
|
||||
}
|
||||
|
@ -476,8 +476,9 @@ class CreateOfferViewModel extends ActivatableWithDataModel<CreateOfferDataModel
|
|||
return paymentLabel;
|
||||
}
|
||||
|
||||
public Offer getOffer() {
|
||||
return dataModel.getOffer();
|
||||
public Offer createAndGetOffer() {
|
||||
offer = dataModel.createAndGetOffer();
|
||||
return offer;
|
||||
}
|
||||
|
||||
boolean hasAcceptedArbitrators() {
|
||||
|
|
Loading…
Add table
Reference in a new issue