use of com.github.arteam.simplejsonrpc.client.Transport in project bitcoin-spring-boot-starter by theborakompanioni.
the class ElectrumClientFactoryImpl method create.
@Override
public ElectrumClient create(URI uri, String username, String password) {
CloseableHttpClient httpClient = httpClient();
Transport transport = transport(httpClient, uri, username, password);
ElectrumDaemonRpcService delegate = electrumDaemonRpcService(transport);
return new ElectrumClientImpl(delegate);
}
use of com.github.arteam.simplejsonrpc.client.Transport in project sparrow by sparrowwallet.
the class SimpleElectrumServerRpc method getFeeEstimates.
@Override
public Map<Integer, Double> getFeeEstimates(Transport transport, List<Integer> targetBlocks) {
JsonRpcClient client = new JsonRpcClient(transport);
Map<Integer, Double> result = new LinkedHashMap<>();
for (Integer targetBlock : targetBlocks) {
if (targetBlock <= MAX_TARGET_BLOCKS) {
try {
Double targetBlocksFeeRateBtcKb = new RetryLogic<Double>(MAX_RETRIES, RETRY_DELAY, IllegalStateException.class).getResult(() -> client.createRequest().returnAs(Double.class).method("blockchain.estimatefee").id(idCounter.incrementAndGet()).params(targetBlock).execute());
result.put(targetBlock, targetBlocksFeeRateBtcKb);
} catch (JsonRpcException e) {
throw new ElectrumServerRpcException("Failed to retrieve fee rate for target blocks: " + targetBlock, e);
} catch (Exception e) {
log.warn("Failed to retrieve fee rate for target blocks: " + targetBlock + " (" + e.getMessage() + ")");
result.put(targetBlock, result.values().stream().mapToDouble(v -> v).min().orElse(0.0001d));
}
} else {
result.put(targetBlock, result.values().stream().mapToDouble(v -> v).min().orElse(0.0001d));
}
}
return result;
}
Aggregations