// Path: src/main/java/com/github/sbouclier/input/InfoInput.java
// public enum InfoInput {
// 
//     ALL("info"),
//     LEVERAGE("leverage"),
//     FEES("fees"),
//     MARGIN("margin");
// 
//     private String value;
// 
//     InfoInput(String value) {
//         this.value = value;
//     }
// 
//     @JsonValue
//     public String getValue() {
//         return value;
//     }
// }
// 
// Path: src/main/java/com/github/sbouclier/input/Interval.java
// public enum Interval {
// 
//     ONE_MINUTE(1),
//     FIVE_MINUTES(5),
//     FIFTEEN_MINUTES(15),
//     THIRTY_MINUTES(30),
//     ONE_HOUR(60),
//     FOUR_HOURS(240),
//     ONE_DAY(1440),
//     ONE_WEEK(10080),
//     FIFTEEN_DAYS(21600);
// 
//     private int minutes;
// 
//     Interval(int minutes) {
//         this.minutes = minutes;
//     }
// 
//     public int getMinutes() {
//         return minutes;
//     }
// }


import com.github.sbouclier.input.InfoInput;
import com.github.sbouclier.input.Interval;
import com.github.sbouclier.result.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

        return client.callPublic(BASE_URL, KrakenApiMethod.ASSET_PAIRS, AssetPairsResult.class, params);
    }

    /**
     * Get ticker information of pairs
     *
     * @param pairs list of pair
     * @return ticker information
     * @throws KrakenApiException
     */
    public TickerInformationResult getTickerInformation(List<String> pairs) throws KrakenApiException {
        HttpApiClient<TickerInformationResult> client = (HttpApiClient<TickerInformationResult>) this.clientFactory.getHttpApiClient(KrakenApiMethod.TICKER_INFORMATION);

        Map<String, String> params = new HashMap<>();
        params.put("pair", String.join(",", pairs));

        return client.callPublic(BASE_URL, KrakenApiMethod.TICKER_INFORMATION, TickerInformationResult.class, params);
    }


    /**
     * Get OHLC data
     *
     * @param pair     currency pair
     * @param interval interval of time
     * @param since    data since given id
     * @return data (OHLC + last id)
     * @throws KrakenApiException
     */
// Path: src/main/java/com/github/sbouclier/input/InfoInput.java
// public enum InfoInput {
// 
//     ALL("info"),
//     LEVERAGE("leverage"),
//     FEES("fees"),
//     MARGIN("margin");
// 
//     private String value;
// 
//     InfoInput(String value) {
//         this.value = value;
//     }
// 
//     @JsonValue
//     public String getValue() {
//         return value;
//     }
// }
// 
// Path: src/main/java/com/github/sbouclier/input/Interval.java
// public enum Interval {
// 
//     ONE_MINUTE(1),
//     FIVE_MINUTES(5),
//     FIFTEEN_MINUTES(15),
//     THIRTY_MINUTES(30),
//     ONE_HOUR(60),
//     FOUR_HOURS(240),
//     ONE_DAY(1440),
//     ONE_WEEK(10080),
//     FIFTEEN_DAYS(21600);
// 
//     private int minutes;
// 
//     Interval(int minutes) {
//         this.minutes = minutes;
//     }
// 
//     public int getMinutes() {
//         return minutes;
//     }
// }


// Path: src/main/java/com/github/sbouclier/KrakenAPIClient.java
import com.github.sbouclier.input.InfoInput;
import com.github.sbouclier.input.Interval;
import com.github.sbouclier.result.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;


        return client.callPublic(BASE_URL, KrakenApiMethod.ASSET_PAIRS, AssetPairsResult.class, params);
    }

    /**
     * Get ticker information of pairs
     *
     * @param pairs list of pair
     * @return ticker information
     * @throws KrakenApiException
     */
    public TickerInformationResult getTickerInformation(List<String> pairs) throws KrakenApiException {
        HttpApiClient<TickerInformationResult> client = (HttpApiClient<TickerInformationResult>) this.clientFactory.getHttpApiClient(KrakenApiMethod.TICKER_INFORMATION);

        Map<String, String> params = new HashMap<>();
        params.put("pair", String.join(",", pairs));

        return client.callPublic(BASE_URL, KrakenApiMethod.TICKER_INFORMATION, TickerInformationResult.class, params);
    }


    /**
     * Get OHLC data
     *
     * @param pair     currency pair
     * @param interval interval of time
     * @param since    data since given id
     * @return data (OHLC + last id)
     * @throws KrakenApiException
     */
    public OHLCResult getOHLC(String pair, Interval interval, Integer since) throws KrakenApiException {