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

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> 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>> 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 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