mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2024-12-24 12:46:45 +00:00
handle invalid values from mempool.get_fee_histogram
This commit is contained in:
parent
c5b09189df
commit
94088f795c
2 changed files with 14 additions and 8 deletions
|
@ -14,6 +14,7 @@ import com.sparrowwallet.sparrow.event.WalletHistoryStatusEvent;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.math.BigInteger;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -236,12 +237,14 @@ public class BatchedElectrumServerRpc implements ElectrumServerRpc {
|
||||||
public Map<Long, Long> getFeeRateHistogram(Transport transport) {
|
public Map<Long, Long> getFeeRateHistogram(Transport transport) {
|
||||||
try {
|
try {
|
||||||
JsonRpcClient client = new JsonRpcClient(transport);
|
JsonRpcClient client = new JsonRpcClient(transport);
|
||||||
Long[][] feesArray = new RetryLogic<Long[][]>(MAX_RETRIES, RETRY_DELAY, IllegalStateException.class).getResult(() ->
|
BigInteger[][] feesArray = new RetryLogic<BigInteger[][]>(MAX_RETRIES, RETRY_DELAY, IllegalStateException.class).getResult(() ->
|
||||||
client.createRequest().returnAs(Long[][].class).method("mempool.get_fee_histogram").id(idCounter.incrementAndGet()).execute());
|
client.createRequest().returnAs(BigInteger[][].class).method("mempool.get_fee_histogram").id(idCounter.incrementAndGet()).execute());
|
||||||
|
|
||||||
Map<Long, Long> feeRateHistogram = new TreeMap<>();
|
Map<Long, Long> feeRateHistogram = new TreeMap<>();
|
||||||
for(Long[] feePair : feesArray) {
|
for(BigInteger[] feePair : feesArray) {
|
||||||
feeRateHistogram.put(feePair[0], feePair[1]);
|
if(feePair[0].longValue() > 0) {
|
||||||
|
feeRateHistogram.put(feePair[0].longValue(), feePair[1].longValue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return feeRateHistogram;
|
return feeRateHistogram;
|
||||||
|
|
|
@ -13,6 +13,7 @@ import com.sparrowwallet.sparrow.event.WalletHistoryStatusEvent;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.math.BigInteger;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
|
|
||||||
|
@ -257,12 +258,14 @@ public class SimpleElectrumServerRpc implements ElectrumServerRpc {
|
||||||
public Map<Long, Long> getFeeRateHistogram(Transport transport) {
|
public Map<Long, Long> getFeeRateHistogram(Transport transport) {
|
||||||
try {
|
try {
|
||||||
JsonRpcClient client = new JsonRpcClient(transport);
|
JsonRpcClient client = new JsonRpcClient(transport);
|
||||||
Long[][] feesArray = new RetryLogic<Long[][]>(MAX_RETRIES, RETRY_DELAY, IllegalStateException.class).getResult(() ->
|
BigInteger[][] feesArray = new RetryLogic<BigInteger[][]>(MAX_RETRIES, RETRY_DELAY, IllegalStateException.class).getResult(() ->
|
||||||
client.createRequest().returnAs(Long[][].class).method("mempool.get_fee_histogram").id(idCounter.incrementAndGet()).execute());
|
client.createRequest().returnAs(BigInteger[][].class).method("mempool.get_fee_histogram").id(idCounter.incrementAndGet()).execute());
|
||||||
|
|
||||||
Map<Long, Long> feeRateHistogram = new TreeMap<>();
|
Map<Long, Long> feeRateHistogram = new TreeMap<>();
|
||||||
for(Long[] feePair : feesArray) {
|
for(BigInteger[] feePair : feesArray) {
|
||||||
feeRateHistogram.put(feePair[0], feePair[1]);
|
if(feePair[0].longValue() > 0) {
|
||||||
|
feeRateHistogram.put(feePair[0].longValue(), feePair[1].longValue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return feeRateHistogram;
|
return feeRateHistogram;
|
||||||
|
|
Loading…
Reference in a new issue