package org.knowm.xchange.bitbay; import java.io.IOException; import java.math.BigDecimal; import java.util.List; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import org.knowm.xchange.bitbay.dto.acount.BitbayAccountInfoResponse; import org.knowm.xchange.bitbay.dto.trade.BitbayCancelResponse; import org.knowm.xchange.bitbay.dto.trade.BitbayOrder; import org.knowm.xchange.bitbay.dto.trade.BitbayTradeResponse; import si.mazi.rescu.ParamsDigest; import si.mazi.rescu.SynchronizedValueFactory; /** * @author Z. Dolezal */ @Path("/Trading/tradingApi.php") @Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Produces(MediaType.APPLICATION_JSON) public interface BitbayAuthenticated { /** * info - returns information about account balances */ @POST @FormParam("method") BitbayAccountInfoResponse info(@HeaderParam("API-Key") String apiKey, @HeaderParam("API-Hash") ParamsDigest sign, @FormParam("moment") SynchronizedValueFactory<Long> timestamp) throws IOException; /** * trade - places offer at the stock market * <p> * Input: * <p> * type : offer type bid/buy or ask/sell * currency : shortcut of main currency for offer (e.g. “BTC”) * amount : quantity of main currency * payment_currency : shortcut of currency used to pay for offer (e.g. “PLN”) * rate : rate for offer */ @POST @FormParam("method") BitbayTradeResponse trade(@HeaderParam("API-Key") String apiKey, @HeaderParam("API-Hash") ParamsDigest sign, @FormParam("moment") SynchronizedValueFactory<Long> timestamp, @FormParam("type") String type, @FormParam("currency") String currency, @FormParam("amount") BigDecimal amount, @FormParam("payment_currency") String paymentCurrency, @FormParam("rate") BigDecimal rate) throws IOException; /** * cancel - removes offer from the stock market * <p> * Input: * <p> * id : id used to recognize offer; you get it from trade method output */ @POST @FormParam("method") BitbayCancelResponse cancel(@HeaderParam("API-Key") String apiKey, @HeaderParam("API-Hash") ParamsDigest sign, @FormParam("moment") SynchronizedValueFactory<Long> timestamp, @FormParam("id") long id) throws IOException; /** * orders - list of all your offers * <p> * Input: * <p> * (optional) limit : number of rows to show; if no specified, returns latest 50 orders */ @POST @FormParam("method") List<BitbayOrder> orders(@HeaderParam("API-Key") String apiKey, @HeaderParam("API-Hash") ParamsDigest sign, @FormParam("moment") SynchronizedValueFactory<Long> timestamp) throws IOException; }