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 TradeStatisticsManager tradeStatisticsManager;
private final Predicate<String> isValidFeePaymentCurrencyCode = (c) -> private final Predicate<String> isValidFeePaymentCurrencyCode = (c) ->
c.equalsIgnoreCase("BSQ") || c.equalsIgnoreCase("BTC"); c.equalsIgnoreCase("XMR");
@Inject @Inject
public OfferUtil(AccountAgeWitnessService accountAgeWitnessService, 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. * 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); 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); 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) { public static Coin parseToCoin(String input, CoinFormatter coinFormatter) {
return parseToCoin(input, coinFormatter.getMonetaryFormat()); 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.api.model.OfferInfo;
import bisq.core.offer.Offer; import bisq.core.offer.Offer;
import bisq.core.offer.OpenOffer; import bisq.core.offer.OpenOffer;
import bisq.core.util.ParsingUtils;
import bisq.proto.grpc.CancelOfferReply; import bisq.proto.grpc.CancelOfferReply;
import bisq.proto.grpc.CancelOfferRequest; import bisq.proto.grpc.CancelOfferRequest;
import bisq.proto.grpc.CreateOfferReply; import bisq.proto.grpc.CreateOfferReply;
@ -149,8 +149,8 @@ class GrpcOffersService extends OffersImplBase {
req.getPrice(), req.getPrice(),
req.getUseMarketBasedPrice(), req.getUseMarketBasedPrice(),
req.getMarketPriceMargin(), req.getMarketPriceMargin(),
req.getAmount(), ParsingUtils.atomicUnitsToCentineros(req.getAmount()), // scale atomic unit to centineros for consistency TODO switch base to atomic units?
req.getMinAmount(), ParsingUtils.atomicUnitsToCentineros(req.getMinAmount()),
req.getBuyerSecurityDeposit(), req.getBuyerSecurityDeposit(),
req.getTriggerPrice(), req.getTriggerPrice(),
req.getPaymentAccountId(), req.getPaymentAccountId(),