mirror of
https://github.com/bisq-network/bisq.git
synced 2025-03-13 11:09:10 +01:00
Fix fees, update to libdohj 0.14.2
This commit is contained in:
parent
b2f6d7435c
commit
edb5de0ac6
6 changed files with 47 additions and 37 deletions
|
@ -79,16 +79,15 @@ public enum BaseCurrencyNetwork {
|
|||
public Coin getDefaultMinFee() {
|
||||
switch (BisqEnvironment.getBaseCurrencyNetwork().getCurrencyCode()) {
|
||||
case "BTC":
|
||||
return org.bitcoinj.core.Transaction.REFERENCE_DEFAULT_MIN_TX_FEE;
|
||||
return FeeService.BTC_REFERENCE_DEFAULT_MIN_TX_FEE;
|
||||
case "LTC":
|
||||
return Coin.valueOf(FeeService.LTC_DEFAULT_TX_FEE);
|
||||
return FeeService.LTC_REFERENCE_DEFAULT_MIN_TX_FEE;
|
||||
case "DOGE":
|
||||
return Coin.valueOf(FeeService.DOGE_DEFAULT_TX_FEE);
|
||||
return FeeService.DOGE_REFERENCE_DEFAULT_MIN_TX_FEE;
|
||||
case "DASH":
|
||||
return Coin.valueOf(FeeService.DASH_DEFAULT_TX_FEE);
|
||||
return FeeService.DASH_REFERENCE_DEFAULT_MIN_TX_FEE;
|
||||
default:
|
||||
// TODO check what is the right fee at DOGE
|
||||
return Coin.valueOf(100000);
|
||||
throw new RuntimeException("Unsupported code at getDefaultMinFee: " + BisqEnvironment.getBaseCurrencyNetwork().getCurrencyCode());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ public class Restrictions {
|
|||
case "DOGE":
|
||||
MIN_TRADE_AMOUNT = Coin.valueOf(1_000_000_000L); // 0.03 EUR at DOGE price 0.003 EUR;
|
||||
case "DASH":
|
||||
MIN_TRADE_AMOUNT = Coin.valueOf(20_000L); // 0.03 EUR at DOGE price 0.003 EUR;
|
||||
MIN_TRADE_AMOUNT = Coin.valueOf(20_000L); // 0.03 EUR at @ 150 EUR/DASH;
|
||||
break;
|
||||
}
|
||||
return MIN_TRADE_AMOUNT;
|
||||
|
@ -76,7 +76,7 @@ public class Restrictions {
|
|||
MAX_BUYER_SECURITY_DEPOSIT = Coin.valueOf(20_000_000_000_000L); // 500 EUR @ 0.0025 EUR/DOGE;
|
||||
break;
|
||||
case "DASH":
|
||||
MAX_BUYER_SECURITY_DEPOSIT = Coin.valueOf(333_333_333L); // 500 EUR @ 0.0025 EUR/DOGE;
|
||||
MAX_BUYER_SECURITY_DEPOSIT = Coin.valueOf(300_000_000L); // 450 EUR @ 150 EUR/DASH;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -90,13 +90,13 @@ public class Restrictions {
|
|||
MIN_BUYER_SECURITY_DEPOSIT = Coin.valueOf(100_000); // 2.5 EUR @ 2500 EUR/BTC
|
||||
break;
|
||||
case "LTC":
|
||||
MIN_BUYER_SECURITY_DEPOSIT = Coin.valueOf(6_000_000); // 2.5 EUR @ 40 EUR/LTC
|
||||
MIN_BUYER_SECURITY_DEPOSIT = Coin.valueOf(6_000_000); // 2.4 EUR @ 40 EUR/LTC
|
||||
break;
|
||||
case "DOGE":
|
||||
MIN_BUYER_SECURITY_DEPOSIT = Coin.valueOf(100_000_000_000L); // 2.5 EUR @ 0.0025 EUR/DOGE;
|
||||
break;
|
||||
case "DASH":
|
||||
MIN_BUYER_SECURITY_DEPOSIT = Coin.valueOf(1_666_666L); // 2.5 EUR @ 0.0025 EUR/DOGE;
|
||||
MIN_BUYER_SECURITY_DEPOSIT = Coin.valueOf(1_500_000L); // 2.5 EUR @ 150 EUR/DASH;
|
||||
break;
|
||||
}
|
||||
return MIN_BUYER_SECURITY_DEPOSIT;
|
||||
|
@ -134,7 +134,7 @@ public class Restrictions {
|
|||
SELLER_SECURITY_DEPOSIT = Coin.valueOf(1_000_000_000_000L); // 25 EUR @ 0.0025 EUR/DOGE;
|
||||
break;
|
||||
case "DASH":
|
||||
SELLER_SECURITY_DEPOSIT = Coin.valueOf(16_666_666L); // 25 EUR @ 150 EUR/DASH;
|
||||
SELLER_SECURITY_DEPOSIT = Coin.valueOf(15_000_000L); // 25 EUR @ 150 EUR/DASH;
|
||||
break;
|
||||
}
|
||||
return SELLER_SECURITY_DEPOSIT;
|
||||
|
|
|
@ -139,8 +139,8 @@ public final class PaymentMethod implements PersistablePayload, Comparable {
|
|||
break;
|
||||
case "DASH":
|
||||
// av. price June 2017: 150 EUR/DASH
|
||||
maxTradeLimitMidRisk = Coin.parseCoin("8");
|
||||
maxTradeLimitLowRisk = Coin.parseCoin("16");
|
||||
maxTradeLimitMidRisk = Coin.parseCoin("10");
|
||||
maxTradeLimitLowRisk = Coin.parseCoin("20");
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -29,6 +29,7 @@ import javafx.beans.property.IntegerProperty;
|
|||
import javafx.beans.property.ReadOnlyIntegerProperty;
|
||||
import javafx.beans.property.SimpleIntegerProperty;
|
||||
import org.bitcoinj.core.Coin;
|
||||
import org.bitcoinj.core.Transaction;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -42,15 +43,23 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
|||
public class FeeService {
|
||||
private static final Logger log = LoggerFactory.getLogger(FeeService.class);
|
||||
|
||||
// https://litecoin.info/Transaction_fees
|
||||
//0.001 (LTC)/kb -> 0.00100000 sat/kb -> 100 sat/byte
|
||||
public static final long LTC_DEFAULT_TX_FEE = 500; // min fee is 0.001 LTC 200 bytes with 500 -> 100000
|
||||
public static final long BTC_DEFAULT_TX_FEE = 200;
|
||||
public static final long DOGE_DEFAULT_TX_FEE = 500000; // min tx size is about 200 bytes -> 1 DOGE
|
||||
public static final long DASH_DEFAULT_TX_FEE = 10000; // 10000 now, 1000 in sept 2017
|
||||
// fixed min fee
|
||||
public static final Coin BTC_REFERENCE_DEFAULT_MIN_TX_FEE = Transaction.REFERENCE_DEFAULT_MIN_TX_FEE; // 5000
|
||||
// https://litecoin.info/Transaction_fees min fee is 100_000
|
||||
public static final Coin LTC_REFERENCE_DEFAULT_MIN_TX_FEE = Coin.valueOf(100_000);
|
||||
// min fee is 1 DOGE
|
||||
public static final Coin DOGE_REFERENCE_DEFAULT_MIN_TX_FEE = Coin.valueOf(1_000_000_000);
|
||||
//TODO check
|
||||
// min tx fee per tx is 10000 now, 1000 in sept 2017
|
||||
public static final Coin DASH_REFERENCE_DEFAULT_MIN_TX_FEE = Coin.valueOf(10_000);
|
||||
|
||||
// DEFAULT_TX_FEE used in FeeRequestService for non-BTC currencies and for BTC only if we cannot access fee service
|
||||
// fees are per byte
|
||||
public static final long BTC_DEFAULT_TX_FEE = 200; // fees are between 50-400 sat/byte so we try to stay in average
|
||||
public static final long LTC_DEFAULT_TX_FEE = LTC_REFERENCE_DEFAULT_MIN_TX_FEE.value / 200;
|
||||
public static final long DOGE_DEFAULT_TX_FEE = DOGE_REFERENCE_DEFAULT_MIN_TX_FEE.value / 200; // 200 bytes tx -> 200*5_000_000L=1_000_000_000 (1 DOGE)
|
||||
public static final long DASH_DEFAULT_TX_FEE = DASH_REFERENCE_DEFAULT_MIN_TX_FEE.value / 200; // 200 bytes tx -> 200*50=10000
|
||||
|
||||
// Dust limit for LTC is 100 000 sat
|
||||
// https://litecoin.info/Transaction_fees
|
||||
private static long MIN_MAKER_FEE_IN_BASE_CUR;
|
||||
private static long MIN_TAKER_FEE_IN_BASE_CUR;
|
||||
private static long DEFAULT_MAKER_FEE_IN_BASE_CUR;
|
||||
|
@ -85,36 +94,38 @@ public class FeeService {
|
|||
baseCurrencyCode = BisqEnvironment.getBaseCurrencyNetwork().getCurrencyCode();
|
||||
|
||||
/* How to calculate:
|
||||
def nr_satoshi(price_per_one, target_price):
|
||||
return target_price*100000000/price_per_one
|
||||
MIN_MAKER_FEE_IN_BASE_CUR = target fiat price * 100000000 / price (in btc: 0.5*100000000/2500)
|
||||
DEFAULT_MAKER_FEE_IN_BASE_CUR = target fiat price * (100000000 / price) / maxTradeAmount
|
||||
(in btc: 5*100000000/2500 / 1)
|
||||
(in ltc: 5*100000000/40 / 50)
|
||||
*/
|
||||
switch (baseCurrencyCode) {
|
||||
case "BTC":
|
||||
MIN_MAKER_FEE_IN_BASE_CUR = 20_000; // 0.5 USD at BTC price 2500 USD for 1 BTC
|
||||
MIN_MAKER_FEE_IN_BASE_CUR = 20_000; // 0.5 USD at BTC price 2500 USD
|
||||
MIN_TAKER_FEE_IN_BASE_CUR = 20_000;
|
||||
DEFAULT_MAKER_FEE_IN_BASE_CUR = 200_000; // 5 USD at BTC price 2500 USD
|
||||
DEFAULT_MAKER_FEE_IN_BASE_CUR = 200_000; // 5 USD at BTC price 2500 USD for 1 BTC (maxTradeAmount)
|
||||
DEFAULT_TAKER_FEE_IN_BASE_CUR = 300_000; // 7.5 USD at BTC price 2500 USD
|
||||
txFeePerByte = BTC_DEFAULT_TX_FEE;
|
||||
break;
|
||||
case "LTC":
|
||||
MIN_MAKER_FEE_IN_BASE_CUR = 1_200_000; // 0.5 USD at LTC price 40 USD for 50 LTC
|
||||
MIN_MAKER_FEE_IN_BASE_CUR = 1_200_000; // 0.5 USD at LTC price 40 USD
|
||||
MIN_TAKER_FEE_IN_BASE_CUR = 1_200_000;
|
||||
DEFAULT_MAKER_FEE_IN_BASE_CUR = 240_000; // 5 USD at LTC price 40 USD
|
||||
DEFAULT_MAKER_FEE_IN_BASE_CUR = 240_000; // 5 USD at LTC price 40 USD for 50 LTC (maxTradeAmount)
|
||||
DEFAULT_TAKER_FEE_IN_BASE_CUR = 360_000; // 7.5 USD at LTC price 40 USD
|
||||
txFeePerByte = LTC_DEFAULT_TX_FEE;
|
||||
break;
|
||||
case "DOGE":
|
||||
MIN_MAKER_FEE_IN_BASE_CUR = 32_000; // 0.5 USD at DOGE price 0.003 USD 80_000_000_000L
|
||||
MIN_TAKER_FEE_IN_BASE_CUR = 32_000;
|
||||
DEFAULT_MAKER_FEE_IN_BASE_CUR = 320_000; // 5 USD at DOGE price 0.003 USD 800_000_000_000L
|
||||
DEFAULT_TAKER_FEE_IN_BASE_CUR = 480_000; // 7.5 USD at DOGE price 0.003 USD 1_200_000_000_000L
|
||||
MIN_MAKER_FEE_IN_BASE_CUR = 20_000_000_000L; // 0.5 USD at DOGE price 0.003 USD
|
||||
MIN_TAKER_FEE_IN_BASE_CUR = 20_000_000_000L;
|
||||
DEFAULT_MAKER_FEE_IN_BASE_CUR = 200_000; // 5 USD at DOGE price 0.003 USD for 800 000 DOGE (maxTradeAmount)
|
||||
DEFAULT_TAKER_FEE_IN_BASE_CUR = 300_000; // 7.5 USD at DOGE price 0.003 USD
|
||||
txFeePerByte = DOGE_DEFAULT_TX_FEE;
|
||||
break;
|
||||
case "DASH":
|
||||
MIN_MAKER_FEE_IN_BASE_CUR = 333_333; // 0.5 USD at DASH price 150 USD
|
||||
MIN_TAKER_FEE_IN_BASE_CUR = 333_333;
|
||||
DEFAULT_MAKER_FEE_IN_BASE_CUR = 3_333_333; // 5 USD at DOGE price 0.003 USD
|
||||
DEFAULT_TAKER_FEE_IN_BASE_CUR = 5_000_000; // 7.5 USD at DOGE price 0.003 USD
|
||||
MIN_MAKER_FEE_IN_BASE_CUR = 300_000; // 0.5 USD at DASH price 150 USD
|
||||
MIN_TAKER_FEE_IN_BASE_CUR = 300_000;
|
||||
DEFAULT_MAKER_FEE_IN_BASE_CUR = 160_000; // 5 USD at DASH price 150 USD
|
||||
DEFAULT_TAKER_FEE_IN_BASE_CUR = 240_000; // 7.5 USD at DASH price 150 USD for 20 DASH (maxTradeAmount)
|
||||
txFeePerByte = DASH_DEFAULT_TX_FEE;
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -231,8 +231,8 @@ public class PriceFeedService {
|
|||
cache.putAll(priceMap);
|
||||
break;
|
||||
case "LTC":
|
||||
case "DASH":
|
||||
case "DOGE":
|
||||
case "DASH":
|
||||
// apply conversion of btc based price to baseCurrencyCode based with btc/baseCurrencyCode price
|
||||
MarketPrice baseCurrencyPrice = priceMap.get(baseCurrencyCode);
|
||||
Map<String, MarketPrice> convertedPriceMap = new HashMap<>();
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -99,7 +99,7 @@
|
|||
<dependency>
|
||||
<groupId>org.libdohj</groupId>
|
||||
<artifactId>libdohj-core</artifactId>
|
||||
<version>0.14.1</version>
|
||||
<version>0.14.2</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.google.code.findbugs</groupId>
|
||||
|
|
Loading…
Add table
Reference in a new issue