From 68a7e7c9c5e89c2b40792b6027618ad4fb541901 Mon Sep 17 00:00:00 2001 From: Mike Rosseel Date: Mon, 4 Sep 2017 19:59:40 +0200 Subject: [PATCH] check that the corrent paymentaccount is used for this offer --- api/src/main/java/io/bisq/api/BisqProxy.java | 9 +++++++++ gui/src/main/java/io/bisq/gui/app/BisqApp.java | 8 ++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/io/bisq/api/BisqProxy.java b/api/src/main/java/io/bisq/api/BisqProxy.java index aa4f38a35f..abd1c59c13 100644 --- a/api/src/main/java/io/bisq/api/BisqProxy.java +++ b/api/src/main/java/io/bisq/api/BisqProxy.java @@ -166,6 +166,12 @@ public class BisqProxy { public Optional offerMake(String accountId, OfferPayload.Direction direction, BigDecimal amount, BigDecimal minAmount, boolean useMarketBasedPrice, Double marketPriceMargin, String baseCurrencyCode, String counterCurrencyCode, String fiatPrice) { + + // exception from gui code is not clear enough, so this check is added. Missing money is another possible check but that's clear in the gui exception. + if(user.getAcceptedArbitratorAddresses().size() == 0) { + return BisqProxyError.getOptional("No arbitrator has been chosen"); + } + // Checked that if fixed we have a fixed price, if percentage we have a percentage if (marketPriceMargin == null && useMarketBasedPrice) { return BisqProxyError.getOptional("When choosing PERCENTAGE price, fill in percentage_from_market_price"); @@ -267,6 +273,9 @@ public class BisqProxy { Offer offer = new Offer(offerPayload); offer.setPriceFeedService(priceFeedService); + if(!PaymentAccountUtil.isPaymentAccountValidForOffer(offer, paymentAccount)) { + return BisqProxyError.getOptional("PaymentAccount is not valid for offer"); + } // use countdownlatch to block this method until there's a success/error callback call CountDownLatch loginLatch = new CountDownLatch(1); diff --git a/gui/src/main/java/io/bisq/gui/app/BisqApp.java b/gui/src/main/java/io/bisq/gui/app/BisqApp.java index 7e17e3db9f..2b19f02405 100644 --- a/gui/src/main/java/io/bisq/gui/app/BisqApp.java +++ b/gui/src/main/java/io/bisq/gui/app/BisqApp.java @@ -176,6 +176,10 @@ public class BisqApp extends Application { injector = Guice.createInjector(bisqAppModule); injector.getInstance(InjectorViewFactory.class).setInjector(injector); + if(Boolean.valueOf(bisqEnvironment.getRequiredProperty(AppOptionKeys.ENABLE_API))) { + injector.getInstance(DropwizardApplication.class).run("server", "bisq-api.yml"); + } + // All classes which are persisting objects need to be added here // Maintain order! ArrayList persistedDataHosts = new ArrayList<>(); @@ -215,10 +219,6 @@ public class BisqApp extends Application { mainView.setPersistedFilesCorrupted(corruptedDatabaseFiles); }); - if(Boolean.valueOf(bisqEnvironment.getRequiredProperty(AppOptionKeys.ENABLE_API))) { - injector.getInstance(DropwizardApplication.class).run("server", "bisq-api.yml"); - } - // load the main view and create the main scene CachingViewLoader viewLoader = injector.getInstance(CachingViewLoader.class); mainView = (MainView) viewLoader.load(MainView.class);