Skip to content

Commit aae1546

Browse files
committed
[1.2.1]
TxInternal equal and toString asserts added [1.2.1] DTO internal fields exposure removed BasicProvider fake adapters registered [1.2.1] Code style fixed [1.2.1] TxInternal#getTraceId return 0 if null
1 parent 1d1aa6f commit aae1546

File tree

11 files changed

+40
-18
lines changed

11 files changed

+40
-18
lines changed

Diff for: src/main/java/io/api/etherscan/core/impl/BasicProvider.java

+5-16
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
import java.time.LocalDate;
1414
import java.time.LocalDateTime;
15-
import java.time.format.DateTimeFormatter;
1615
import java.util.Map;
1716

1817
/**
@@ -44,21 +43,11 @@ abstract class BasicProvider {
4443
this.baseUrl = baseUrl;
4544
this.executor = executor;
4645
this.gson = new GsonBuilder()
47-
.registerTypeAdapter(LocalDateTime.class,
48-
(JsonSerializer<LocalDateTime>) (src, typeOfSrc, context) -> new JsonPrimitive(
49-
src.format(DateTimeFormatter.ISO_DATE_TIME)))
50-
.registerTypeAdapter(LocalDate.class,
51-
(JsonSerializer<LocalDate>) (src, typeOfSrc,
52-
context) -> new JsonPrimitive(src.format(DateTimeFormatter.ISO_DATE)))
53-
.registerTypeAdapter(LocalDateTime.class, (JsonDeserializer<LocalDateTime>) (json, type, context) -> {
54-
String datetime = json.getAsJsonPrimitive().getAsString();
55-
return LocalDateTime.parse(datetime, DateTimeFormatter.ISO_DATE_TIME);
56-
})
57-
.registerTypeAdapter(LocalDate.class, (JsonDeserializer<LocalDate>) (json, type, context) -> {
58-
String datetime = json.getAsJsonPrimitive().getAsString();
59-
return LocalDate.parse(datetime, DateTimeFormatter.ISO_DATE);
60-
}).create();
61-
46+
.registerTypeAdapter(LocalDateTime.class, (JsonSerializer<LocalDateTime>) (src, t, c) -> new JsonPrimitive(""))
47+
.registerTypeAdapter(LocalDate.class, (JsonSerializer<LocalDate>) (src, t, context) -> new JsonPrimitive(""))
48+
.registerTypeAdapter(LocalDateTime.class, (JsonDeserializer<LocalDateTime>) (json, t, c) -> null)
49+
.registerTypeAdapter(LocalDate.class, (JsonDeserializer<LocalDate>) (json, t, c) -> null)
50+
.create();
6251
}
6352

6453
<T> T convert(final String json, final Class<T> tClass) {

Diff for: src/main/java/io/api/etherscan/model/BaseTx.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.api.etherscan.model;
22

3+
import com.google.gson.annotations.Expose;
34
import io.api.etherscan.util.BasicUtils;
45

56
import java.math.BigInteger;
@@ -17,6 +18,7 @@ abstract class BaseTx {
1718

1819
private long blockNumber;
1920
private String timeStamp;
21+
@Expose(serialize = false, deserialize = false)
2022
private LocalDateTime _timeStamp;
2123
private String hash;
2224
private String from;

Diff for: src/main/java/io/api/etherscan/model/Block.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.api.etherscan.model;
22

3+
import com.google.gson.annotations.Expose;
34
import io.api.etherscan.util.BasicUtils;
45

56
import java.math.BigInteger;
@@ -17,6 +18,7 @@ public class Block {
1718
private long blockNumber;
1819
private BigInteger blockReward;
1920
private String timeStamp;
21+
@Expose(serialize = false, deserialize = false)
2022
private LocalDateTime _timeStamp;
2123

2224
// <editor-fold desc="Getter">

Diff for: src/main/java/io/api/etherscan/model/Log.java

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.api.etherscan.model;
22

3+
import com.google.gson.annotations.Expose;
34
import io.api.etherscan.util.BasicUtils;
45

56
import java.math.BigInteger;
@@ -17,20 +18,26 @@
1718
public class Log {
1819

1920
private String blockNumber;
21+
@Expose(serialize = false, deserialize = false)
2022
private Long _blockNumber;
2123
private String address;
2224
private String transactionHash;
2325
private String transactionIndex;
26+
@Expose(serialize = false, deserialize = false)
2427
private Long _transactionIndex;
2528
private String timeStamp;
29+
@Expose(serialize = false, deserialize = false)
2630
private LocalDateTime _timeStamp;
2731
private String data;
2832
private String gasPrice;
33+
@Expose(serialize = false, deserialize = false)
2934
private BigInteger _gasPrice;
3035
private String gasUsed;
36+
@Expose(serialize = false, deserialize = false)
3137
private BigInteger _gasUsed;
3238
private List<String> topics;
3339
private String logIndex;
40+
@Expose(serialize = false, deserialize = false)
3441
private Long _logIndex;
3542

3643
// <editor-fold desc="Getters">

Diff for: src/main/java/io/api/etherscan/model/Price.java

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.api.etherscan.model;
22

3+
import com.google.gson.annotations.Expose;
4+
35
import java.time.LocalDateTime;
46
import java.time.ZoneOffset;
57

@@ -15,7 +17,9 @@ public class Price {
1517
private double ethbtc;
1618
private String ethusd_timestamp;
1719
private String ethbtc_timestamp;
20+
@Expose(serialize = false, deserialize = false)
1821
private LocalDateTime _ethusd_timestamp;
22+
@Expose(serialize = false, deserialize = false)
1923
private LocalDateTime _ethbtc_timestamp;
2024

2125
public double inUsd() {

Diff for: src/main/java/io/api/etherscan/model/TxInternal.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public String getType() {
2121
}
2222

2323
public long getTraceId() {
24-
return Long.parseLong(traceId);
24+
return (traceId == null) ? 0 : Long.parseLong(traceId);
2525
}
2626

2727
public String getTraceIdAsString() {

Diff for: src/main/java/io/api/etherscan/model/proxy/BlockProxy.java

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.api.etherscan.model.proxy;
22

3+
import com.google.gson.annotations.Expose;
34
import io.api.etherscan.util.BasicUtils;
45

56
import java.math.BigInteger;
@@ -16,15 +17,18 @@
1617
public class BlockProxy {
1718

1819
private String number;
20+
@Expose(serialize = false, deserialize = false)
1921
private Long _number;
2022
private String hash;
2123
private String parentHash;
2224
private String stateRoot;
2325
private String size;
26+
@Expose(serialize = false, deserialize = false)
2427
private Long _size;
2528
private String difficulty;
2629
private String totalDifficulty;
2730
private String timestamp;
31+
@Expose(serialize = false, deserialize = false)
2832
private LocalDateTime _timestamp;
2933

3034
private String miner;
@@ -33,8 +37,10 @@ public class BlockProxy {
3337
private String logsBloom;
3438
private String mixHash;
3539
private String gasUsed;
40+
@Expose(serialize = false, deserialize = false)
3641
private BigInteger _gasUsed;
3742
private String gasLimit;
43+
@Expose(serialize = false, deserialize = false)
3844
private BigInteger _gasLimit;
3945

4046
private String sha3Uncles;

Diff for: src/main/java/io/api/etherscan/model/proxy/ReceiptProxy.java

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.api.etherscan.model.proxy;
22

3+
import com.google.gson.annotations.Expose;
34
import io.api.etherscan.model.Log;
45
import io.api.etherscan.util.BasicUtils;
56

@@ -18,14 +19,18 @@ public class ReceiptProxy {
1819
private String from;
1920
private String to;
2021
private String blockNumber;
22+
@Expose(serialize = false, deserialize = false)
2123
private Long _blockNumber;
2224
private String blockHash;
2325
private String transactionHash;
2426
private String transactionIndex;
27+
@Expose(serialize = false, deserialize = false)
2528
private Long _transactionIndex;
2629
private String gasUsed;
30+
@Expose(serialize = false, deserialize = false)
2731
private BigInteger _gasUsed;
2832
private String cumulativeGasUsed;
33+
@Expose(serialize = false, deserialize = false)
2934
private BigInteger _cumulativeGasUsed;
3035
private String contractAddress;
3136

Diff for: src/main/java/io/api/etherscan/model/proxy/TxProxy.java

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.api.etherscan.model.proxy;
22

3+
import com.google.gson.annotations.Expose;
34
import io.api.etherscan.util.BasicUtils;
45

56
import java.math.BigInteger;
@@ -15,21 +16,26 @@ public class TxProxy {
1516
private String to;
1617
private String hash;
1718
private String transactionIndex;
19+
@Expose(serialize = false, deserialize = false)
1820
private Long _transactionIndex;
1921
private String from;
2022
private String v;
2123
private String input;
2224
private String s;
2325
private String r;
2426
private String nonce;
27+
@Expose(serialize = false, deserialize = false)
2528
private Long _nonce;
2629
private String value;
2730
private String gas;
31+
@Expose(serialize = false, deserialize = false)
2832
private BigInteger _gas;
2933
private String gasPrice;
34+
@Expose(serialize = false, deserialize = false)
3035
private BigInteger _gasPrice;
3136
private String blockHash;
3237
private String blockNumber;
38+
@Expose(serialize = false, deserialize = false)
3339
private Long _blockNumber;
3440

3541
// <editor-fold desc="Getters">

Diff for: src/test/java/io/api/etherscan/account/AccountTxInternalTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public void correctStartBlock() {
2929
List<TxInternal> txs = getApi().account().txsInternal("0x2C1ba59D6F58433FB1EaEe7d20b26Ed83bDA51A3", 2558775);
3030
assertNotNull(txs);
3131
assertEquals(24, txs.size());
32+
assertNotEquals(txs.get(0), txs.get(1));
33+
assertNotEquals(txs.get(0).toString(), txs.get(1).toString());
3234
assertTxs(txs);
3335
}
3436

Diff for: src/test/java/io/api/etherscan/proxy/ProxyStorageApiTest.java

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import io.api.ApiRunner;
44
import io.api.etherscan.error.InvalidAddressException;
5-
import io.api.etherscan.util.BasicUtils;
65
import org.junit.Test;
76

87
import java.util.Optional;

0 commit comments

Comments
 (0)