class BitfinexWebSocketAuthTrade extends BitfinexWebSocketAuthPreTrade {
  private final BigDecimal fee;
  private final String feeCurrency;

  public BitfinexWebSocketAuthTrade(
      long id,
      String pair,
      long mtsCreate,
      long orderId,
      BigDecimal execAmount,
      BigDecimal execPrice,
      String orderType,
      BigDecimal orderPrice,
      long maker,
      BigDecimal fee,
      String feeCurrency) {
    super(id, pair, mtsCreate, orderId, execAmount, execPrice, orderType, orderPrice, maker);
    this.fee = fee;
    this.feeCurrency = feeCurrency;
  }

  public BigDecimal getFee() {
    return fee;
  }

  public String getFeeCurrency() {
    return feeCurrency;
  }

  @Override
  public String toString() {<FILL_FUNCTION_BODY>}

  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (!(o instanceof BitfinexWebSocketAuthTrade)) return false;
    if (!super.equals(o)) return false;
    BitfinexWebSocketAuthTrade that = (BitfinexWebSocketAuthTrade) o;
    return Objects.equals(fee, that.fee) && Objects.equals(feeCurrency, that.feeCurrency);
  }

  @Override
  public int hashCode() {
    return Objects.hash(super.hashCode(), fee, feeCurrency);
  }
}

    return "BitfinexWebSocketAuthenticatedTrade{"
        + "id="
        + getId()
        + ", pair='"
        + getPair()
        + '\''
        + ", mtsCreate="
        + getMtsCreate()
        + ", orderId="
        + getOrderId()
        + ", execAmount="
        + getExecAmount()
        + ", execPrice="
        + getExecPrice()
        + ", orderType='"
        + getOrderType()
        + '\''
        + ", orderPrice="
        + getOrderPrice()
        + ", maker="
        + getMtsCreate()
        + ", fee="
        + fee
        + ", feeCurrency='"
        + feeCurrency
        + '\''
        + '}';
  
<methods>public void <init>(long, java.lang.String, long, long, java.math.BigDecimal, java.math.BigDecimal, java.lang.String, java.math.BigDecimal, long) ,public boolean equals(java.lang.Object) ,public java.math.BigDecimal getExecAmount() ,public java.math.BigDecimal getExecPrice() ,public long getId() ,public long getMaker() ,public long getMtsCreate() ,public long getOrderId() ,public java.math.BigDecimal getOrderPrice() ,public java.lang.String getOrderType() ,public java.lang.String getPair() ,public int hashCode() ,public java.lang.String toString() <variables>private final non-sealed java.math.BigDecimal execAmount,private final non-sealed java.math.BigDecimal execPrice,private final non-sealed long id,private final non-sealed long maker,private final non-sealed long mtsCreate,private final non-sealed long orderId,private final non-sealed java.math.BigDecimal orderPrice,private final non-sealed java.lang.String orderType,private final non-sealed java.lang.String pair