mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 07:07:43 +01:00
Remove market price based fee calculation
This commit is contained in:
parent
1c14b07fa1
commit
af439a86ad
4 changed files with 16 additions and 49 deletions
|
@ -73,17 +73,12 @@ public class OfferUtil {
|
||||||
* @param bsqWalletService
|
* @param bsqWalletService
|
||||||
* @param preferences preferences are used to see if the user indicated a preference for paying fees in BTC
|
* @param preferences preferences are used to see if the user indicated a preference for paying fees in BTC
|
||||||
* @param amount
|
* @param amount
|
||||||
* @param marketPriceAvailable
|
|
||||||
* @param marketPriceMargin
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public static Coin getMakerFee(BsqWalletService bsqWalletService, Preferences preferences, Coin amount, boolean marketPriceAvailable, double marketPriceMargin) {
|
public static Coin getMakerFee(BsqWalletService bsqWalletService, Preferences preferences, Coin amount) {
|
||||||
final boolean isCurrencyForMakerFeeBtc = isCurrencyForMakerFeeBtc(preferences, bsqWalletService, amount, marketPriceAvailable, marketPriceMargin);
|
boolean isCurrencyForMakerFeeBtc = isCurrencyForMakerFeeBtc(preferences, bsqWalletService, amount);
|
||||||
return getMakerFee(isCurrencyForMakerFeeBtc,
|
return getMakerFee(isCurrencyForMakerFeeBtc, amount);
|
||||||
amount,
|
|
||||||
marketPriceAvailable,
|
|
||||||
marketPriceMargin);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -91,27 +86,13 @@ public class OfferUtil {
|
||||||
*
|
*
|
||||||
* @param isCurrencyForMakerFeeBtc
|
* @param isCurrencyForMakerFeeBtc
|
||||||
* @param amount
|
* @param amount
|
||||||
* @param marketPriceAvailable
|
|
||||||
* @param marketPriceMargin
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public static Coin getMakerFee(boolean isCurrencyForMakerFeeBtc, @Nullable Coin amount, boolean marketPriceAvailable, double marketPriceMargin) {
|
public static Coin getMakerFee(boolean isCurrencyForMakerFeeBtc, @Nullable Coin amount) {
|
||||||
if (amount != null) {
|
if (amount != null) {
|
||||||
Coin feePerBtc = CoinUtil.getFeePerBtc(FeeService.getMakerFeePerBtc(isCurrencyForMakerFeeBtc), amount);
|
Coin feePerBtc = CoinUtil.getFeePerBtc(FeeService.getMakerFeePerBtc(isCurrencyForMakerFeeBtc), amount);
|
||||||
double makerFeeAsDouble = (double) feePerBtc.value;
|
return CoinUtil.maxCoin(feePerBtc, FeeService.getMinMakerFee(isCurrencyForMakerFeeBtc));
|
||||||
if (marketPriceAvailable) {
|
|
||||||
if (marketPriceMargin > 0)
|
|
||||||
makerFeeAsDouble = makerFeeAsDouble * Math.sqrt(marketPriceMargin * 100);
|
|
||||||
else
|
|
||||||
makerFeeAsDouble = 0;
|
|
||||||
|
|
||||||
// For BTC we round so min value change is 100 satoshi
|
|
||||||
if (isCurrencyForMakerFeeBtc)
|
|
||||||
makerFeeAsDouble = MathUtils.roundDouble(makerFeeAsDouble / 100, 0) * 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
return CoinUtil.maxCoin(Coin.valueOf(MathUtils.doubleToLong(makerFeeAsDouble)), FeeService.getMinMakerFee(isCurrencyForMakerFeeBtc));
|
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -124,14 +105,11 @@ public class OfferUtil {
|
||||||
* @param preferences
|
* @param preferences
|
||||||
* @param bsqWalletService
|
* @param bsqWalletService
|
||||||
* @param amount
|
* @param amount
|
||||||
* @param marketPriceAvailable
|
|
||||||
* @param marketPriceMargin
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static boolean isCurrencyForMakerFeeBtc(Preferences preferences, BsqWalletService bsqWalletService, Coin amount,
|
public static boolean isCurrencyForMakerFeeBtc(Preferences preferences, BsqWalletService bsqWalletService, Coin amount) {
|
||||||
boolean marketPriceAvailable, double marketPriceMargin) {
|
|
||||||
boolean payFeeInBtc = preferences.getPayFeeInBtc();
|
boolean payFeeInBtc = preferences.getPayFeeInBtc();
|
||||||
boolean bsqForFeeAvailable = isBsqForMakerFeeAvailable(bsqWalletService, amount, marketPriceAvailable, marketPriceMargin);
|
boolean bsqForFeeAvailable = isBsqForMakerFeeAvailable(bsqWalletService, amount);
|
||||||
return payFeeInBtc || !bsqForFeeAvailable;
|
return payFeeInBtc || !bsqForFeeAvailable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,13 +118,11 @@ public class OfferUtil {
|
||||||
*
|
*
|
||||||
* @param bsqWalletService
|
* @param bsqWalletService
|
||||||
* @param amount
|
* @param amount
|
||||||
* @param marketPriceAvailable
|
|
||||||
* @param marketPriceMargin
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static boolean isBsqForMakerFeeAvailable(BsqWalletService bsqWalletService, @Nullable Coin amount, boolean marketPriceAvailable, double marketPriceMargin) {
|
public static boolean isBsqForMakerFeeAvailable(BsqWalletService bsqWalletService, @Nullable Coin amount) {
|
||||||
Coin availableBalance = bsqWalletService.getAvailableBalance();
|
Coin availableBalance = bsqWalletService.getAvailableBalance();
|
||||||
Coin makerFee = getMakerFee(false, amount, marketPriceAvailable, marketPriceMargin);
|
Coin makerFee = getMakerFee(false, amount);
|
||||||
|
|
||||||
// If we don't know yet the maker fee (amount is not set) we return true, otherwise we would disable BSQ
|
// If we don't know yet the maker fee (amount is not set) we return true, otherwise we would disable BSQ
|
||||||
// fee each time we open the create offer screen as there the amount is not set.
|
// fee each time we open the create offer screen as there the amount is not set.
|
||||||
|
|
|
@ -53,7 +53,6 @@ import bisq.core.trade.statistics.ReferralIdService;
|
||||||
import bisq.core.user.Preferences;
|
import bisq.core.user.Preferences;
|
||||||
import bisq.core.user.User;
|
import bisq.core.user.User;
|
||||||
import bisq.core.util.BSFormatter;
|
import bisq.core.util.BSFormatter;
|
||||||
import bisq.core.util.BsqFormatter;
|
|
||||||
|
|
||||||
import bisq.network.p2p.P2PService;
|
import bisq.network.p2p.P2PService;
|
||||||
|
|
||||||
|
@ -110,7 +109,6 @@ public abstract class MutableOfferDataModel extends OfferDataModel implements Bs
|
||||||
private final TradeWalletService tradeWalletService;
|
private final TradeWalletService tradeWalletService;
|
||||||
private final FeeService feeService;
|
private final FeeService feeService;
|
||||||
private final ReferralIdService referralIdService;
|
private final ReferralIdService referralIdService;
|
||||||
private final BsqFormatter bsqFormatter;
|
|
||||||
private final BSFormatter btcFormatter;
|
private final BSFormatter btcFormatter;
|
||||||
private final String offerId;
|
private final String offerId;
|
||||||
private final BalanceListener btcBalanceListener;
|
private final BalanceListener btcBalanceListener;
|
||||||
|
@ -153,7 +151,7 @@ public abstract class MutableOfferDataModel extends OfferDataModel implements Bs
|
||||||
Preferences preferences, User user, KeyRing keyRing, P2PService p2PService,
|
Preferences preferences, User user, KeyRing keyRing, P2PService p2PService,
|
||||||
PriceFeedService priceFeedService, FilterManager filterManager,
|
PriceFeedService priceFeedService, FilterManager filterManager,
|
||||||
AccountAgeWitnessService accountAgeWitnessService, TradeWalletService tradeWalletService,
|
AccountAgeWitnessService accountAgeWitnessService, TradeWalletService tradeWalletService,
|
||||||
FeeService feeService, ReferralIdService referralIdService, BsqFormatter bsqFormatter,
|
FeeService feeService, ReferralIdService referralIdService,
|
||||||
BSFormatter btcFormatter) {
|
BSFormatter btcFormatter) {
|
||||||
super(btcWalletService);
|
super(btcWalletService);
|
||||||
|
|
||||||
|
@ -169,7 +167,6 @@ public abstract class MutableOfferDataModel extends OfferDataModel implements Bs
|
||||||
this.tradeWalletService = tradeWalletService;
|
this.tradeWalletService = tradeWalletService;
|
||||||
this.feeService = feeService;
|
this.feeService = feeService;
|
||||||
this.referralIdService = referralIdService;
|
this.referralIdService = referralIdService;
|
||||||
this.bsqFormatter = bsqFormatter;
|
|
||||||
this.btcFormatter = btcFormatter;
|
this.btcFormatter = btcFormatter;
|
||||||
|
|
||||||
offerId = Utilities.getRandomPrefix(5, 8) + "-" +
|
offerId = Utilities.getRandomPrefix(5, 8) + "-" +
|
||||||
|
@ -825,23 +822,23 @@ public abstract class MutableOfferDataModel extends OfferDataModel implements Bs
|
||||||
}
|
}
|
||||||
|
|
||||||
public Coin getMakerFee(boolean isCurrencyForMakerFeeBtc) {
|
public Coin getMakerFee(boolean isCurrencyForMakerFeeBtc) {
|
||||||
return OfferUtil.getMakerFee(isCurrencyForMakerFeeBtc, amount.get(), marketPriceAvailable, marketPriceMargin);
|
return OfferUtil.getMakerFee(isCurrencyForMakerFeeBtc, amount.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Coin getMakerFee() {
|
public Coin getMakerFee() {
|
||||||
return OfferUtil.getMakerFee(bsqWalletService, preferences, amount.get(), marketPriceAvailable, marketPriceMargin);
|
return OfferUtil.getMakerFee(bsqWalletService, preferences, amount.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Coin getMakerFeeInBtc() {
|
public Coin getMakerFeeInBtc() {
|
||||||
return OfferUtil.getMakerFee(true, amount.get(), marketPriceAvailable, marketPriceMargin);
|
return OfferUtil.getMakerFee(true, amount.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Coin getMakerFeeInBsq() {
|
public Coin getMakerFeeInBsq() {
|
||||||
return OfferUtil.getMakerFee(false, amount.get(), marketPriceAvailable, marketPriceMargin);
|
return OfferUtil.getMakerFee(false, amount.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isCurrencyForMakerFeeBtc() {
|
public boolean isCurrencyForMakerFeeBtc() {
|
||||||
return OfferUtil.isCurrencyForMakerFeeBtc(preferences, bsqWalletService, amount.get(), marketPriceAvailable, marketPriceMargin);
|
return OfferUtil.isCurrencyForMakerFeeBtc(preferences, bsqWalletService, amount.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isPreferredFeeCurrencyBtc() {
|
public boolean isPreferredFeeCurrencyBtc() {
|
||||||
|
@ -849,7 +846,7 @@ public abstract class MutableOfferDataModel extends OfferDataModel implements Bs
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isBsqForFeeAvailable() {
|
public boolean isBsqForFeeAvailable() {
|
||||||
return OfferUtil.isBsqForMakerFeeAvailable(bsqWalletService, amount.get(), marketPriceAvailable, marketPriceMargin);
|
return OfferUtil.isBsqForMakerFeeAvailable(bsqWalletService, amount.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isHalCashAccount() {
|
public boolean isHalCashAccount() {
|
||||||
|
|
|
@ -35,7 +35,6 @@ import bisq.core.trade.statistics.ReferralIdService;
|
||||||
import bisq.core.user.Preferences;
|
import bisq.core.user.Preferences;
|
||||||
import bisq.core.user.User;
|
import bisq.core.user.User;
|
||||||
import bisq.core.util.BSFormatter;
|
import bisq.core.util.BSFormatter;
|
||||||
import bisq.core.util.BsqFormatter;
|
|
||||||
|
|
||||||
import bisq.network.p2p.P2PService;
|
import bisq.network.p2p.P2PService;
|
||||||
|
|
||||||
|
@ -64,7 +63,6 @@ class CreateOfferDataModel extends MutableOfferDataModel {
|
||||||
TradeWalletService tradeWalletService,
|
TradeWalletService tradeWalletService,
|
||||||
FeeService feeService,
|
FeeService feeService,
|
||||||
ReferralIdService referralIdService,
|
ReferralIdService referralIdService,
|
||||||
BsqFormatter bsqFormatter,
|
|
||||||
BSFormatter btcFormatter) {
|
BSFormatter btcFormatter) {
|
||||||
super(openOfferManager,
|
super(openOfferManager,
|
||||||
btcWalletService,
|
btcWalletService,
|
||||||
|
@ -79,7 +77,6 @@ class CreateOfferDataModel extends MutableOfferDataModel {
|
||||||
tradeWalletService,
|
tradeWalletService,
|
||||||
feeService,
|
feeService,
|
||||||
referralIdService,
|
referralIdService,
|
||||||
bsqFormatter,
|
|
||||||
btcFormatter);
|
btcFormatter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,6 @@ import bisq.core.trade.statistics.ReferralIdService;
|
||||||
import bisq.core.user.Preferences;
|
import bisq.core.user.Preferences;
|
||||||
import bisq.core.user.User;
|
import bisq.core.user.User;
|
||||||
import bisq.core.util.BSFormatter;
|
import bisq.core.util.BSFormatter;
|
||||||
import bisq.core.util.BsqFormatter;
|
|
||||||
|
|
||||||
import bisq.network.p2p.P2PService;
|
import bisq.network.p2p.P2PService;
|
||||||
|
|
||||||
|
@ -69,7 +68,6 @@ class EditOfferDataModel extends MutableOfferDataModel {
|
||||||
TradeWalletService tradeWalletService,
|
TradeWalletService tradeWalletService,
|
||||||
FeeService feeService,
|
FeeService feeService,
|
||||||
ReferralIdService referralIdService,
|
ReferralIdService referralIdService,
|
||||||
BsqFormatter bsqFormatter,
|
|
||||||
BSFormatter btcFormatter,
|
BSFormatter btcFormatter,
|
||||||
CorePersistenceProtoResolver corePersistenceProtoResolver) {
|
CorePersistenceProtoResolver corePersistenceProtoResolver) {
|
||||||
super(openOfferManager,
|
super(openOfferManager,
|
||||||
|
@ -85,7 +83,6 @@ class EditOfferDataModel extends MutableOfferDataModel {
|
||||||
tradeWalletService,
|
tradeWalletService,
|
||||||
feeService,
|
feeService,
|
||||||
referralIdService,
|
referralIdService,
|
||||||
bsqFormatter,
|
|
||||||
btcFormatter);
|
btcFormatter);
|
||||||
this.corePersistenceProtoResolver = corePersistenceProtoResolver;
|
this.corePersistenceProtoResolver = corePersistenceProtoResolver;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue