package com.mygeopay.core.exchange.shapeshift.data;
import com.mygeopay.core.coins.CoinID;
import com.mygeopay.core.coins.CoinType;
import com.mygeopay.core.coins.Value;
import com.mygeopay.core.exchange.shapeshift.ShapeShift;
import com.mygeopay.core.util.ExchangeRate;
import org.json.JSONException;
import org.json.JSONObject;
import java.math.BigDecimal;
import java.math.RoundingMode;
import static com.mygeopay.core.Preconditions.checkState;
/**
* @author John L. Jegutanis
*/
public class ShapeShiftMarketInfo extends ShapeShiftPairBase {
public final ShapeShiftExchangeRate rate;
public final Value limit;
public final Value minimum;
public ShapeShiftMarketInfo(JSONObject data) throws ShapeShiftException {
super(data);
if (!isError) {
// In market info minerFee is mandatory
if (!data.has("minerFee")) {
throw new ShapeShiftException("Missing value minerfee");
}
try {
CoinType[] types = ShapeShift.parsePair(pair);
rate = new ShapeShiftExchangeRate(types[0], types[1],
data.getString("rate"), data.getString("minerFee"));
limit = parseValue(types[0], data.getString("limit"), RoundingMode.DOWN);
minimum = parseValue(types[0], data.getString("minimum"), RoundingMode.UP);
} catch (JSONException e) {
throw new ShapeShiftException("Could not parse object", e);
}
} else {
rate = null;
limit = null;
minimum = null;
}
}
}