All Downloads are FREE. Search and download functionalities are using the official Maven repository.

estonlabs.cxtl.exchanges.binance.fapi.domain.ExchangeInfo Maven / Gradle / Ivy

The newest version!
package estonlabs.cxtl.exchanges.binance.fapi.domain;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import estonlabs.cxtl.exchanges.a.specification.domain.Ticker;
import lombok.Data;
import lombok.Getter;
import lombok.ToString;

import java.util.List;

@Getter
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@ToString
public class ExchangeInfo extends Response{

    @JsonProperty("timezone")
    private String timezone;

    @JsonProperty("serverTime")
    private long serverTime;

    @JsonProperty("futuresType")
    private String futuresType;

    @JsonProperty("rateLimits")
    private List rateLimits;

    @JsonProperty("exchangeFilters")
    private List exchangeFilters;

    @JsonProperty("assets")
    private List assets;

    @JsonProperty("symbols")
    private List symbols;

    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonIgnoreProperties(ignoreUnknown = true)
    @ToString
    public static class RateLimit {
        @JsonProperty("rateLimitType")
        private String rateLimitType;

        @JsonProperty("interval")
        private String interval;

        @JsonProperty("intervalNum")
        private int intervalNum;

        @JsonProperty("limit")
        private int limit;
    }

    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonIgnoreProperties(ignoreUnknown = true)
    @ToString
    public static class Asset {
        @JsonProperty("asset")
        private String asset;

        @JsonProperty("marginAvailable")
        private boolean marginAvailable;

        @JsonProperty("autoAssetExchange")
        private String autoAssetExchange;
    }

    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonIgnoreProperties(ignoreUnknown = true)
    @ToString
    public static class Symbol implements Ticker {
        @JsonProperty("symbol")
        private String symbol;

        @JsonProperty("pair")
        private String pair;

        @JsonProperty("contractType")
        private String contractType;

        @JsonProperty("contractStatus")
        private String contractStatus;

        @JsonProperty("deliveryDate")
        private Long deliveryDate;

        @JsonProperty("onboardDate")
        private Long onboardDate;

        @JsonProperty("status")
        private String status;

        @JsonProperty("maintMarginPercent")
        private String maintMarginPercent;

        @JsonProperty("requiredMarginPercent")
        private String requiredMarginPercent;

        @JsonProperty("baseAsset")
        private String baseAsset;

        @JsonProperty("quoteAsset")
        private String quoteAsset;

        @JsonProperty("marginAsset")
        private String marginAsset;

        @JsonProperty("pricePrecision")
        private int pricePrecision;

        @JsonProperty("quantityPrecision")
        private int quantityPrecision;

        @JsonProperty("baseAssetPrecision")
        private int baseAssetPrecision;

        @JsonProperty("quotePrecision")
        private int quotePrecision;

        @JsonProperty("underlyingType")
        private String underlyingType;

        @JsonProperty("underlyingSubType")
        private List underlyingSubType;

        @JsonProperty("settlePlan")
        private Long settlePlan;

        @JsonProperty("triggerProtect")
        private String triggerProtect;

        @JsonProperty("liquidationFee")
        private String liquidationFee;

        @JsonProperty("marketTakeBound")
        private String marketTakeBound;

        @JsonProperty("maxMoveOrderLimit")
        private int maxMoveOrderLimit;

        @JsonProperty("filters")
        private List filters;

        @JsonProperty("orderTypes")
        private List orderTypes;

        @JsonProperty("timeInForce")
        private List timeInForce;
    }

    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonIgnoreProperties(ignoreUnknown = true)
    @ToString
    public static class Filter {
        @JsonProperty("filterType")
        private String filterType;

        @JsonProperty("maxPrice")
        private String maxPrice;

        @JsonProperty("minPrice")
        private String minPrice;

        @JsonProperty("tickSize")
        private String tickSize;

        @JsonProperty("stepSize")
        private String stepSize;

        @JsonProperty("minQty")
        private String minQty;

        @JsonProperty("maxQty")
        private String maxQty;

        @JsonProperty("limit")
        private int limit;

        @JsonProperty("notional")
        private String notional;

        @JsonProperty("multiplierUp")
        private String multiplierUp;

        @JsonProperty("multiplierDown")
        private String multiplierDown;

        @JsonProperty("multiplierDecimal")
        private String multiplierDecimal;
    }
}