
estonlabs.cxtl.exchanges.binance.fapi.lib.BinanceCex Maven / Gradle / Ivy
package estonlabs.cxtl.exchanges.binance.fapi.lib;
import estonlabs.cxtl.common.auth.Credentials;
import estonlabs.cxtl.exchanges.a.specification.domain.*;
import estonlabs.cxtl.exchanges.a.specification.lib.Cex;
import estonlabs.cxtl.exchanges.binance.fapi.domain.ListenKey;
import estonlabs.cxtl.exchanges.binance.fapi.domain.OrderQuery;
import estonlabs.cxtl.exchanges.binance.fapi.domain.OrderRequest;
import reactor.core.publisher.Mono;
import java.util.List;
import java.util.Map;
public class BinanceCex implements Cex {
private final BinanceFuturesRestClient fapi;
public BinanceCex(BinanceFuturesRestClient fapi) {
this.fapi = fapi;
}
@Override
public Mono extends List extends Trade>> getLatestPublicTrades(AssetClass assetClass, String symbol) {
switch (assetClass) {
case PERP:
return fapi.getLatestPublicTrades(symbol);
default:
throw new UnsupportedOperationException("Asset class not supported: " + assetClass);
}
}
@Override
public Mono extends Map>> getTickers() {
return fapi.getTickers().map(tickers -> Map.of(AssetClass.PERP, tickers));
}
@Override
public Exchange getExchange() {
return Exchange.BINANCE;
}
@Override
public AssetClass[] getSupportedAssetClasses() {
return new AssetClass[]{AssetClass.PERP};
}
@Override
public Mono placeOrder(Credentials credentials, OrderRequest order) {
return fapi.placeOrder(credentials, order);
}
@Override
public Mono extends Ack> cancelOrder(Credentials credentials, OrderQuery request) {
return fapi.cancelOrder(credentials, request);
}
@Override
public Mono> getOrders(Credentials credentials, OrderQuery orderQuery) {
return fapi.getOrders(credentials, orderQuery);
}
@Override
public Mono getOrder(Credentials credentials, OrderQuery orderQuery) {
return fapi.getOrder(credentials, orderQuery);
}
public Mono createListenKey(Credentials credentials){
return fapi.createListenKey(credentials);
}
public Mono refreshListenKey(Credentials credentials){
return fapi.refreshListenKey(credentials);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy