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

com.binance4j.mining.client.MiningClient Maven / Gradle / Ivy

package com.binance4j.mining.client;

import java.util.Map;

import com.binance4j.core.Request;
import com.binance4j.core.client.RestClient;
import com.binance4j.core.param.FramedPaging;
import com.binance4j.core.param.Paging;
import com.binance4j.core.param.Params;
import com.binance4j.mining.dto.AccountListResponse;
import com.binance4j.mining.dto.AccountProfitsResponse;
import com.binance4j.mining.dto.AlgorithmsResponse;
import com.binance4j.mining.dto.CoinsResponse;
import com.binance4j.mining.dto.HashrateResaleCancellationResponse;
import com.binance4j.mining.dto.HashrateResaleDetailResponse;
import com.binance4j.mining.dto.HashrateResaleListResponse;
import com.binance4j.mining.dto.HashrateResaleResponse;
import com.binance4j.mining.dto.MinerDetailsResponse;
import com.binance4j.mining.dto.OtherProfitsResponse;
import com.binance4j.mining.dto.ProfitResponse;
import com.binance4j.mining.dto.StatisticsResponse;
import com.binance4j.mining.dto.WorkersResponse;
import com.binance4j.mining.param.AccountListParams;
import com.binance4j.mining.param.AccountProfitsParams;
import com.binance4j.mining.param.AlgorithmsAquisitionParams;
import com.binance4j.mining.param.CoinsAquisitionParams;
import com.binance4j.mining.param.HashrateResaleCancellationParams;
import com.binance4j.mining.param.HashrateResaleDetailParam;
import com.binance4j.mining.param.HashrateResaleListParams;
import com.binance4j.mining.param.HashrateResaleParams;
import com.binance4j.mining.param.MinerDetailsParams;
import com.binance4j.mining.param.MinersParams;
import com.binance4j.mining.param.ProfitsParams;
import com.binance4j.mining.param.StatisticsParams;

/**
 * Api client for the NFT endpoints
 * 
 * @see Documentation
 */
public class MiningClient extends RestClient {
	/**
	 * @param key    API public key.
	 * @param secret API secret key.
	 */
	public MiningClient(String key, String secret) {
		super(MiningMapping.class, key, secret);
	}

	/**
	 * Acquiring algorithms.
	 *
	 * @return The request to execute.
	 */
	public Request getAlgorithms() {
		return new Request<>(service.getAlgorithms(new AlgorithmsAquisitionParams().toMap()));
	}

	/**
	 * Acquiring coin name.
	 *
	 * @return The request to execute.
	 */
	public Request getCoins() {
		return new Request<>(service.getCoins(new CoinsAquisitionParams().toMap()));
	}

	/**
	 * Request for detail miner list.
	 *
	 * @param params Request params.
	 * @return The request to execute.
	 */
	public Request getMinersDetails(MinerDetailsParams params) {
		return new Request<>(service.getMinersDetails(params.toMap()));
	}

	/**
	 * Request for miner list.
	 *
	 * @param params Request params.
	 * @return The request to execute.
	 */
	public Request getMiners(MinersParams params) {
		return new Request<>(service.getMiners(params.toMap()));
	}

	/**
	 * Get earnings list.
	 *
	 * @param params Request params.
	 * @param paging Paging.
	 * @return The request to execute.
	 */
	public Request getProfits(ProfitsParams params, FramedPaging paging) {
		var replace = Map.of("startTime", "startDate", "endTime", "endDate", "page", "pageIndex", "limit", "pageSize");
		return new Request<>(service.getProfits(Params.merge(params.toMap(), paging.toMap(replace))));
	}

	/**
	 * Get extra bonus list.
	 *
	 * @param params Request params.
	 * @param paging Paging.
	 * @return The request to execute.
	 */
	public Request getOtherProfits(ProfitsParams params, FramedPaging paging) {
		var replace = Map.of("startTime", "startDate", "endTime", "endDate", "page", "pageIndex", "limit", "pageSize");
		return new Request<>(service.getOtherProfits(Params.merge(params.toMap(), paging.toMap(replace))));
	}

	/**
	 * Get mining account earning.
	 *
	 * @param params Request params.
	 * @return The request to execute.
	 */
	public Request getAccountProfits(AccountProfitsParams params) {
		return new Request<>(service.getAccountProfits(params.toMap()));
	}

	/**
	 * Get mining account earning.
	 *
	 * @param params Request params.
	 * @param paging Paging.
	 * @return The request to execute.
	 */
	public Request getAccountProfits(AccountProfitsParams params, FramedPaging paging) {
		var replace = Map.of("startTime", "startDate", "endTime", "endDate", "page", "pageIndex", "limit", "pageSize");
		return new Request<>(service.getAccountProfits(Params.merge(params.toMap(), paging.toMap(replace))));
	}

	/**
	 * Get hashrate resale list.
	 * 
	 * @return The request to execute.
	 */
	public Request getHashrateResales() {
		return new Request<>(service.getHashrateResales(new HashrateResaleListParams().toMap()));
	}

	/**
	 * Get hashrate resale list.
	 *
	 * @param paging Paging.
	 * @return The request to execute.
	 */
	public Request getHashrateResales(Paging paging) {
		var replace = Map.of("page", "pageIndex", "limit", "pageSize");
		return new Request<>(service
				.getHashrateResales(Params.merge(new HashrateResaleListParams().toMap(), paging.toMap(replace))));
	}

	/**
	 * Get hashrate resale detail.
	 *
	 * @param params Request params.
	 * @return The request to execute.
	 */
	public Request getHashrateResalesDetails(HashrateResaleDetailParam params) {
		return new Request<>(service.getHashrateResalesDetails(params.toMap()));
	}

	/**
	 * Get hashrate resale detail.
	 *
	 * @param params Request params.
	 * @param paging Paging.
	 * @return The request to execute.
	 */
	public Request getHashrateResalesDetails(HashrateResaleDetailParam params,
			Paging paging) {
		var replace = Map.of("page", "pageIndex", "limit", "pageSize");
		return new Request<>(service.getHashrateResalesDetails(Params.merge(params.toMap(), paging.toMap(replace))));
	}

	/**
	 * Hashrate resale request.
	 *
	 * @param params Request params.
	 * @return The request to execute.
	 */
	public Request resellHashrate(HashrateResaleParams params) {
		return new Request<>(service.resellHashrate(params.toMap()));
	}

	/**
	 * Cancel hashrate resale configuration.
	 *
	 * @param params Request params.
	 * @return The request to execute.
	 */
	public Request cancelHashrateResaleConfiguration(
			HashrateResaleCancellationParams params) {
		return new Request<>(service.cancelHashrateResaleConfiguration(params.toMap()));
	}

	/**
	 * Get Statistic list.
	 *
	 * @param params Request params.
	 * @return The request to execute.
	 */
	public Request getStatistics(StatisticsParams params) {
		return new Request<>(service.getStatistics(params.toMap()));
	}

	/**
	 * Get Account list.
	 *
	 * @param params Request params.
	 * @return The request to execute.
	 */
	public Request getAccounts(AccountListParams params) {
		return new Request<>(service.getAccounts(params.toMap()));
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy