package org.knowm.xchange.kraken.dto.marketdata;

import java.math.BigDecimal;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;

public class KrakenAssetPair {

  private final String altName;
  private final String classBase;
  private final String base;
  private final String classQuote;
  private final String quote;
  private final String volumeLotSize;
  private final int pairScale;
  private final int volumeLotScale;
  private final BigDecimal volumeMultiplier;
  private final List<String> leverage;
  private final List<KrakenFee> fees;
  private final String feeVolumeCurrency;
  private final BigDecimal marginCall;
  private final BigDecimal marginStop;

  /**
   * Constructor
   *
   * @param altName
   * @param classBase
   * @param base
   * @param classQuote
   * @param quote
   * @param volumeLotSize
   * @param pairScale
   * @param volumeLotScale
   * @param volumeMultiplier
   * @param leverage
   * @param fees
   * @param feeVolumeCurrency
   * @param marginCall
   * @param marginStop
   */
  public KrakenAssetPair(@JsonProperty("altname") String altName, @JsonProperty("aclass_base") String classBase, @JsonProperty("base") String base,
      @JsonProperty("aclass_quote") String classQuote, @JsonProperty("quote") String quote, @JsonProperty("lot") String volumeLotSize,
      @JsonProperty("pair_decimals") int pairScale, @JsonProperty("lot_decimals") int volumeLotScale,
      @JsonProperty("lot_multiplier") BigDecimal volumeMultiplier, @JsonProperty("leverage") List<String> leverage,
      @JsonProperty("fees") List<KrakenFee> fees, @JsonProperty("fee_volume_currency") String feeVolumeCurrency,
      @JsonProperty("margin_call") BigDecimal marginCall, @JsonProperty("margin_stop") BigDecimal marginStop) {

    this.altName = altName;
    this.classBase = classBase;
    this.base = base;
    this.classQuote = classQuote;
    this.quote = quote;
    this.volumeLotSize = volumeLotSize;
    this.pairScale = pairScale;
    this.volumeLotScale = volumeLotScale;
    this.volumeMultiplier = volumeMultiplier;
    this.leverage = leverage;
    this.fees = fees;
    this.feeVolumeCurrency = feeVolumeCurrency;
    this.marginCall = marginCall;
    this.marginStop = marginStop;
  }

  public String getAltName() {

    return altName;
  }

  public String getClassBase() {

    return classBase;
  }

  public String getBase() {

    return base;
  }

  public String getClassQuote() {

    return classQuote;
  }

  public String getQuote() {

    return quote;
  }

  public String getVolumeLotSize() {

    return volumeLotSize;
  }

  public int getPairScale() {

    return pairScale;
  }

  public int getVolumeLotScale() {

    return volumeLotScale;
  }

  public BigDecimal getVolumeMultiplier() {

    return volumeMultiplier;
  }

  public List<String> getLeverage() {

    return leverage;
  }

  public List<KrakenFee> getFees() {

    return fees;
  }

  public String getFeeVolumeCurrency() {

    return feeVolumeCurrency;
  }

  public BigDecimal getMarginCall() {

    return marginCall;
  }

  public BigDecimal getMarginStop() {

    return marginStop;
  }

  @Override
  public String toString() {

    return "KrakenAssetPairInfo [altName=" + altName + ", classBase=" + classBase + ", base=" + base + ", classQuote=" + classQuote + ", quote="
        + quote + ", volumeLotSize=" + volumeLotSize + ", pairScale=" + pairScale + ", volumeLotScale=" + volumeLotScale + ", volumeMultiplier="
        + volumeMultiplier + ", leverage=" + leverage + ", fees=" + fees + ", feeVolumeCurrency=" + feeVolumeCurrency + ", marginCall=" + marginCall
        + ", marginStop=" + marginStop + "]";
  }

}

@@ -534,46 +534,138 @@
 rage
-;%0A  private final List%3CKrakenFee%3E fees
+_buy;%0A  private final List%3CString%3E leverage_sell;%0A  private final List%3CKrakenFee%3E fees;%0A  private final List%3CKrakenFee%3E fees_maker
 ;%0A  
@@ -1587,16 +1587,23 @@
 iplier, 
+%0A      
 @JsonPro
@@ -1613,47 +1613,36 @@
 ty(%22
-leverage%22) List%3CString%3E leverage,%0A     
+fees%22) List%3CKrakenFee%3E fees,
  @Js
@@ -1649,32 +1649,38 @@
 onProperty(%22fees
+_maker
 %22) List%3CKrakenFe
@@ -1678,32 +1678,38 @@
 %3CKrakenFee%3E fees
+_maker
 , @JsonProperty(
@@ -1865,16 +1865,139 @@
 rginStop
+, %0A      @JsonProperty(%22leverage_buy%22) List%3CString%3E leverage_buy, @JsonProperty(%22leverage_sell%22) List%3CString%3E leverage_sell
 ) %7B%0A%0A   
@@ -2293,16 +2293,72 @@
 iplier;%0A
+    this.fees = fees;%0A    this.fees_maker = fees_maker;%0A
     this
@@ -2366,16 +2366,20 @@
 leverage
+_buy
  = lever
@@ -2377,24 +2377,28 @@
 y = leverage
+_buy
 ;%0A    this.f
@@ -2392,35 +2392,53 @@
 y;%0A    this.
-fees = fees
+leverage_sell = leverage_sell
 ;%0A    this.f
@@ -3140,22 +3140,27 @@
 Leverage
+_buy
 () %7B%0A%0A
+%09
     retu
@@ -3174,73 +3174,225 @@
 rage
-;%0A  %7D%0A%0A  public List%3CKrakenFee%3E getFees() %7B%0A%0A    return fees;%0A  %7D
+_buy;%0A  %7D%0A%0A  public List%3CString%3E getLeverage_sell() %7B%0A%0A%09    return leverage_sell;%0A  %7D%0A%0A  public List%3CKrakenFee%3E getFees() %7B%0A%0A    return fees;%0A  %7D%0A  %0A  public List%3CKrakenFee%3E getFees_maker() %7B%0A%0A%09return fees_maker;%0A  %7D%0A
 %0A%0A  
@@ -3972,16 +3972,20 @@
 leverage
+_buy
 =%22 + lev
@@ -3989,19 +3989,59 @@
 leverage
+_buy + %22, leverage_sell=%22 + leverage_sell
  +
- 
 %22, fees=

Update KrakenAssetPair.java