Update formatter to new lower reg. fee (miner fee dropped 10 fold)

This commit is contained in:
Manfred Karrer 2014-11-17 20:26:20 +01:00
parent 46a56e4e4f
commit 976a76411f
4 changed files with 46 additions and 20 deletions

View File

@ -28,15 +28,11 @@ import javax.inject.Inject;
public class FeePolicy {
public static final Coin TX_FEE = Transaction.REFERENCE_DEFAULT_MIN_TX_FEE;
public static final Coin TX_FEE = Transaction.REFERENCE_DEFAULT_MIN_TX_FEE; // dropped down to 0.00001 BTC
// The min. REGISTRATION_FEE calculated with Transaction.MIN_NONDUST_OUTPUT would be
// 0.00015460 which might lead to problems for the spending wallet.
// Some web wallets don't allow more then 4 decimal places (need more investigation)
// So we use 0.0002 as that fits also to our 4 decimal places restriction for BTC values.
// The remaining 0.0000454 BTC is given to miners at the moment as it is lower then dust.
// TODO: Change REGISTRATION_FEE to 0.00001 (See https://github.com/bitsquare/bitsquare/issues/228)
public static final Coin REGISTRATION_FEE = TX_FEE.add(TX_FEE);
public static final Coin CREATE_OFFER_FEE = REGISTRATION_FEE; // 0.0002
public static final Coin CREATE_OFFER_FEE = Coin.valueOf(20000); // 0.00002 BTC
public static final Coin TAKE_OFFER_FEE = CREATE_OFFER_FEE;
private final BitcoinNetwork bitcoinNetwork;

View File

@ -29,7 +29,6 @@ import org.bitcoinj.utils.Fiat;
import org.bitcoinj.utils.MonetaryFormat;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DateFormat;
import java.text.DecimalFormat;
@ -67,8 +66,7 @@ public class BSFormatter {
// Input of a group separator (1,123,45) lead to an validation error.
// Note: BtcFormat was intended to be used, but it lead to many problems (automatic format to mBit,
// no way to remove grouping separator). It seems to be not optimal for user input formatting.
private MonetaryFormat coinFormat = MonetaryFormat.BTC.optionalDecimals(2)
.roundingMode(RoundingMode.HALF_UP);
private MonetaryFormat coinFormat = MonetaryFormat.BTC.repeatOptionalDecimals(2, 2);
private String currencyCode = Currency.getInstance(Locale.getDefault()).getCurrencyCode();
@ -110,9 +108,9 @@ public class BSFormatter {
private MonetaryFormat getMonetaryFormat() {
if (useMilliBit)
return MonetaryFormat.MBTC.repeatOptionalDecimals(2, 1);
return MonetaryFormat.MBTC;
else
return MonetaryFormat.BTC.repeatOptionalDecimals(2, 1);
return MonetaryFormat.BTC.repeatOptionalDecimals(2, 2);
}
public void setFiatCurrencyCode(String currencyCode) {

View File

@ -54,6 +54,22 @@ public class CreateOfferPMTest {
presenter.initialize();
}
@Test
public void testAmount() {
presenter.amount.set("0.0001");
model.calculateAmount();
assertEquals("0.0001", presenter.amount.get());
assertEquals(Coin.parseCoin("0.0001"), model.amountAsCoin.get());
presenter.amount.set("0.0009");
model.calculateAmount();
assertEquals("0.0009", presenter.amount.get());
assertEquals(Coin.parseCoin("0.0009"), model.amountAsCoin.get());
presenter.amount.set("0.0029");
model.calculateAmount();
assertEquals("0.0029", presenter.amount.get());
assertEquals(Coin.parseCoin("0.0029"), model.amountAsCoin.get());
}
@Test
public void testBindings() {

View File

@ -74,12 +74,20 @@ public class BSFormatterTest {
assertEquals("1.0120", formatter.formatCoin(Coin.parseCoin("1.012")));
assertEquals("1012.30", formatter.formatCoin(Coin.parseCoin("1012.3")));
assertEquals("1.0120", formatter.formatCoin(Coin.parseCoin("1.01200")));
assertEquals("1.0123", formatter.formatCoin(Coin.parseCoin("1.01234")));
assertEquals("1.000123", formatter.formatCoin(Coin.parseCoin("1.0001234")));
assertEquals("0.10", formatter.formatCoin(Coin.parseCoin("0.1")));
assertEquals("0.01", formatter.formatCoin(Coin.parseCoin("0.01")));
assertEquals("0.0010", formatter.formatCoin(Coin.parseCoin("0.001")));
assertEquals("0.0001", formatter.formatCoin(Coin.parseCoin("0.0001")));
assertEquals("0.000010", formatter.formatCoin(Coin.parseCoin("0.00001")));
assertEquals("0.000001", formatter.formatCoin(Coin.parseCoin("0.000001")));
assertEquals("0.00", formatter.formatCoin(Coin.parseCoin("0.0000001")));
assertEquals("1.2345", formatter.formatCoin(Coin.parseCoin("1.2345")));
assertEquals("1.2346", formatter.formatCoin(Coin.parseCoin("1.23456")));
assertEquals("1.2346", formatter.formatCoin(Coin.parseCoin("1.234567")));
assertEquals("1.2345", formatter.formatCoin(Coin.parseCoin("1.23448")));
assertEquals("1.002346", formatter.formatCoin(Coin.parseCoin("1.0023456")));
assertEquals("1.002346", formatter.formatCoin(Coin.parseCoin("1.00234567")));
assertEquals("1.002345", formatter.formatCoin(Coin.parseCoin("1.0023448")));
assertEquals("1.00", formatter.formatCoin(Coin.COIN));
assertEquals("1012.30", formatter.formatCoin(Coin.parseCoin("1012.3")));
@ -100,12 +108,20 @@ public class BSFormatterTest {
assertEquals("1.0120 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.012")));
assertEquals("1012.30 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1012.3")));
assertEquals("1.0120 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.01200")));
assertEquals("1.0123 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.01234")));
assertEquals("1.012340 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.01234")));
assertEquals("1.012345 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.012345")));
assertEquals("1.012345 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.0123454")));
assertEquals("1.012346 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.0123455")));
assertEquals("0.10 BTC", formatter.formatCoinWithCode(Coin.parseCoin("0.1")));
assertEquals("0.01 BTC", formatter.formatCoinWithCode(Coin.parseCoin("0.01")));
assertEquals("0.0010 BTC", formatter.formatCoinWithCode(Coin.parseCoin("0.001")));
assertEquals("0.0001 BTC", formatter.formatCoinWithCode(Coin.parseCoin("0.0001")));
assertEquals("1.2345 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.2345")));
assertEquals("1.2346 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.23456")));
assertEquals("1.2346 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.234567")));
assertEquals("1.2345 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.23448")));
assertEquals("1.002346 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.0023456")));
assertEquals("1.002346 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.00234567")));
assertEquals("1.002345 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1.0023448")));
assertEquals("1.00 BTC", formatter.formatCoinWithCode(Coin.COIN));
assertEquals("1012.30 BTC", formatter.formatCoinWithCode(Coin.parseCoin("1012.3")));