package io.bitsquare.btc.blockchain.providers; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import io.bitsquare.app.Log; import io.bitsquare.http.HttpClient; import io.bitsquare.http.HttpException; import org.bitcoinj.core.Coin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; import java.io.IOException; public class BlockrIOProvider extends FeeProvider { private static final Logger log = LoggerFactory.getLogger(BlockrIOProvider.class); @Inject public BlockrIOProvider(HttpClient httpClient) { super(httpClient, "https://btc.blockr.io/api/v1/tx/info/"); } @Override public Coin getFee(String transactionId) throws IOException, HttpException { Log.traceCall("transactionId=" + transactionId); try { JsonObject data = new JsonParser() .parse(httpClient.requestWithGET(transactionId, "User-Agent", "")) .getAsJsonObject() .get("data") .getAsJsonObject(); return Coin.parseCoin(data .get("fee") .getAsString()); } catch (IOException | HttpException e) { log.debug("Error at requesting transaction data from block explorer " + httpClient + "\n" + "Error =" + e.getMessage()); throw e; } } @Override public String toString() { return "BlockrIOProvider{" + '}'; } }