support creating offer from grpc api

fee payment currency is xmr
scale atomic units from grpc api to centineros for consistency
implement ParsingUtils.atomicUnitsToCentineros()
This commit is contained in:
woodser 2021-09-13 18:11:06 -04:00
parent 2b80385928
commit d136815552
3 changed files with 16 additions and 4 deletions

View file

@ -91,7 +91,7 @@ public class OfferUtil {
private final TradeStatisticsManager tradeStatisticsManager;
private final Predicate<String> isValidFeePaymentCurrencyCode = (c) ->
c.equalsIgnoreCase("BSQ") || c.equalsIgnoreCase("BTC");
c.equalsIgnoreCase("XMR");
@Inject
public OfferUtil(AccountAgeWitnessService accountAgeWitnessService,

View file

@ -19,6 +19,8 @@ public class ParsingUtils {
/**
* Multiplier to convert centineros (the base XMR unit of Coin) to atomic units.
*
* TODO: change base unit to atomic units and long
*/
private static BigInteger CENTINEROS_AU_MULTIPLIER = BigInteger.valueOf(10000);
@ -42,6 +44,16 @@ public class ParsingUtils {
return BigInteger.valueOf(centineros).multiply(ParsingUtils.CENTINEROS_AU_MULTIPLIER);
}
/**
* Convert atomic units to centineros.
*
* @param atomicUnits is an amount in atomic units
* @return the amount in centineros
*/
public static long atomicUnitsToCentineros(long atomicUnits) {
return atomicUnits / CENTINEROS_AU_MULTIPLIER.longValue();
}
public static Coin parseToCoin(String input, CoinFormatter coinFormatter) {
return parseToCoin(input, coinFormatter.getMonetaryFormat());
}

View file

@ -21,7 +21,7 @@ import bisq.core.api.CoreApi;
import bisq.core.api.model.OfferInfo;
import bisq.core.offer.Offer;
import bisq.core.offer.OpenOffer;
import bisq.core.util.ParsingUtils;
import bisq.proto.grpc.CancelOfferReply;
import bisq.proto.grpc.CancelOfferRequest;
import bisq.proto.grpc.CreateOfferReply;
@ -149,8 +149,8 @@ class GrpcOffersService extends OffersImplBase {
req.getPrice(),
req.getUseMarketBasedPrice(),
req.getMarketPriceMargin(),
req.getAmount(),
req.getMinAmount(),
ParsingUtils.atomicUnitsToCentineros(req.getAmount()), // scale atomic unit to centineros for consistency TODO switch base to atomic units?
ParsingUtils.atomicUnitsToCentineros(req.getMinAmount()),
req.getBuyerSecurityDeposit(),
req.getTriggerPrice(),
req.getPaymentAccountId(),