Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7ea0526

Browse files
committed
[3.0.0-SNAPSHOT]
Added JdkEthHttpClient gzip/deflate protocol supportAdded EthScanAPIBuilder key requiredFixed JdkEthHttpClient fallback to UrlEthHttpClient cause content-length works incorrectlyUpdated test and fixed
1 parent260899b commit7ea0526

File tree

10 files changed

+62
-66
lines changed

10 files changed

+62
-66
lines changed

‎.github/workflows/master.yml‎

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name:CI Master
2+
3+
on:
4+
push:
5+
branches:
6+
-master
7+
schedule:
8+
-cron:0 0 * * 0
9+
10+
jobs:
11+
build:
12+
runs-on:ubuntu-latest
13+
strategy:
14+
matrix:
15+
java:[ '11', '17' ]
16+
name:Master Java ${{ matrix.java }} action
17+
18+
steps:
19+
-uses:actions/checkout@v3
20+
-name:Set up JDK
21+
uses:actions/setup-java@v3
22+
with:
23+
java-version:${{ matrix.java }}
24+
distribution:'adopt'
25+
26+
-name:Build
27+
run:'./gradlew classes'
28+
29+
-name:Test
30+
run:'./gradlew test jacocoTestReport'
31+
32+
-name:SonarQube
33+
if:matrix.java == '17'
34+
run:'./gradlew sonar --info'
35+
env:
36+
GITHUB_TOKEN:${{ secrets.GITHUB_TOKEN }}
37+
SONAR_TOKEN:${{ secrets.SONAR_TOKEN }}

‎.github/workflows/publish-release.yml‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name:CI Master
1+
name:Release
22

33
on:
44
release:
@@ -22,8 +22,6 @@ jobs:
2222

2323
-name:Test
2424
run:'./gradlew test jacocoTestReport'
25-
env:
26-
ETHERSCAN_API_KEY:${{ secrets.ETHERSCAN_API_KEY_2 }}
2725

2826
-name:SonarQube
2927
run:'./gradlew sonar --info'

‎.github/workflows/publish-snapshot.yml‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name:CI Dev
1+
name:Snapshot
22

33
on:
44
push:
@@ -32,8 +32,6 @@ jobs:
3232

3333
-name:Test
3434
run:'./gradlew test jacocoTestReport'
35-
env:
36-
ETHERSCAN_API_KEY:${{ secrets.ETHERSCAN_API_KEY_2 }}
3735

3836
-name:Publish Snapshot
3937
run:'./gradlew publish'

‎.github/workflows/pull-request.yml‎

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
matrix:
1414
java:[ '11', '17' ]
15-
name:Java ${{ matrix.java }}Pull Request setup
15+
name:Pull RequestJava ${{ matrix.java }}action
1616

1717
steps:
1818
-uses:actions/checkout@v3
@@ -29,23 +29,7 @@ jobs:
2929
run:'./gradlew classes'
3030

3131
-name:Test
32-
if:matrix.java == '11'
3332
run:'./gradlew test jacocoTestReport'
34-
env:
35-
ETHERSCAN_API_KEY:${{ secrets.ETHERSCAN_API_KEY_1 }}
36-
37-
-name:Test
38-
if:matrix.java == '17'
39-
run:'./gradlew test jacocoTestReport'
40-
env:
41-
ETHERSCAN_API_KEY:${{ secrets.ETHERSCAN_API_KEY_2 }}
42-
43-
-name:Test Report
44-
if:matrix.java == '17'
45-
uses:EnricoMi/publish-unit-test-result-action@v2
46-
with:
47-
files:|
48-
**/test-results/**/*.xml
4933

5034
-name:SonarQube
5135
if:matrix.java == '17'

‎build.gradle‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ test {
3535
testLogging {
3636
events("passed","skipped","failed")
3737
exceptionFormat("full")
38-
showStandardStreams(false)
38+
showStandardStreams(true)
3939
}
4040

4141
reports {
@@ -71,8 +71,8 @@ nexusPublishing {
7171
sonatype {
7272
username=System.getenv("OSS_USERNAME")
7373
password=System.getenv("OSS_PASSWORD")
74-
nexusUrl.set(uri("https://oss.sonatype.org/service/local/"))
75-
snapshotRepositoryUrl.set(uri("https://oss.sonatype.org/content/repositories/snapshots/"))
74+
nexusUrl.set(uri("https://ossrh-staging-api.central.sonatype.com/service/local/"))
75+
snapshotRepositoryUrl.set(uri("https://central.sonatype.com/repository/maven-snapshots/"))
7676
}
7777
}
7878
}
@@ -110,8 +110,8 @@ publishing {
110110
}
111111
repositories {
112112
maven {
113-
def releasesRepoUrl="https://oss.sonatype.org/service/local/staging/deploy/maven2"
114-
def snapshotsRepoUrl="https://oss.sonatype.org/content/repositories/snapshots/"
113+
def releasesRepoUrl="https://ossrh-staging-api.central.sonatype.com/service/local/"
114+
def snapshotsRepoUrl="https://central.sonatype.com/repository/maven-snapshots/"
115115
url= version.endsWith("SNAPSHOT")? snapshotsRepoUrl: releasesRepoUrl
116116
credentials {
117117
usernameSystem.getenv("OSS_USERNAME")

‎src/main/java/io/goodforgod/api/etherscan/http/impl/JdkEthHttpClient.java‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public class JdkEthHttpClient implements EthHttpClient {
4242
privatefinalHttpClienthttpClient;
4343
privatefinalDurationrequestTimeout;
4444
privatefinalMap<String,String>headers;
45+
privatefinalUrlEthHttpClienturlEthHttpClient;
4546

4647
publicJdkEthHttpClient() {
4748
this(HttpClient.newBuilder()
@@ -65,6 +66,7 @@ public JdkEthHttpClient(HttpClient httpClient, Duration requestTimeout, Map<Stri
6566
this.httpClient =httpClient;
6667
this.requestTimeout =requestTimeout;
6768
this.headers =headers;
69+
this.urlEthHttpClient =newUrlEthHttpClient(DEFAULT_CONNECT_TIMEOUT,requestTimeout,headers);
6870
}
6971

7072
@Override
@@ -111,12 +113,19 @@ public byte[] body() {
111113

112114
@Override
113115
publicEthResponsepost(@NotNullURIuri,byte[]body) {
116+
returnurlEthHttpClient.post(uri,body);
117+
}
118+
119+
// content-length somehow is not working properly and can't force user to override
120+
// "jdk.httpclient.allowRestrictedHeaders" prop, so will force use UrlEthHttpClient
121+
privateEthResponsepostJdk(@NotNullURIuri,byte[]body) {
114122
HttpRequest.BuilderrequestBuilder =HttpRequest.newBuilder()
115123
.POST(HttpRequest.BodyPublishers.ofByteArray(body))
116124
.uri(uri)
117125
.timeout(requestTimeout);
118126

119127
headers.forEach(requestBuilder::header);
128+
requestBuilder.header("Content-Type","application/json; charset=UTF-8");
120129

121130
try {
122131
HttpResponse<InputStream>response =httpClient.send(requestBuilder.build(),

‎src/main/java/io/goodforgod/api/etherscan/model/GasOracle.java‎

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
packageio.goodforgod.api.etherscan.model;
22

33
importjava.math.BigDecimal;
4-
importjava.math.BigInteger;
54
importjava.util.Arrays;
65
importjava.util.List;
76
importjava.util.Objects;
@@ -14,9 +13,9 @@
1413
publicclassGasOracle {
1514

1615
privateLongLastBlock;
17-
privateBigIntegerSafeGasPrice;
18-
privateBigIntegerProposeGasPrice;
19-
privateBigIntegerFastGasPrice;
16+
privateBigDecimalSafeGasPrice;
17+
privateBigDecimalProposeGasPrice;
18+
privateBigDecimalFastGasPrice;
2019
privateBigDecimalsuggestBaseFee;
2120
privateStringgasUsedRatio;
2221

@@ -129,13 +128,13 @@ public GasOracle build() {
129128
gasOracle.LastBlock =this.lastBlock;
130129
gasOracle.suggestBaseFee =this.suggestBaseFee;
131130
if (this.proposeGasPrice !=null) {
132-
gasOracle.ProposeGasPrice =this.proposeGasPrice.asGwei().toBigInteger();
131+
gasOracle.ProposeGasPrice =this.proposeGasPrice.asGwei();
133132
}
134133
if (this.safeGasPrice !=null) {
135-
gasOracle.SafeGasPrice =this.safeGasPrice.asGwei().toBigInteger();
134+
gasOracle.SafeGasPrice =this.safeGasPrice.asGwei();
136135
}
137136
if (this.fastGasPrice !=null) {
138-
gasOracle.FastGasPrice =this.fastGasPrice.asGwei().toBigInteger();
137+
gasOracle.FastGasPrice =this.fastGasPrice.asGwei();
139138
}
140139
if (this.gasUsedRatio !=null) {
141140
gasOracle.gasUsedRatio =this.gasUsedRatio.stream()

‎src/test/java/io/goodforgod/api/etherscan/EtherScanAPITests.java‎

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
importio.goodforgod.api.etherscan.error.EtherScanKeyException;
55
importio.goodforgod.api.etherscan.http.EthHttpClient;
66
importio.goodforgod.api.etherscan.http.impl.UrlEthHttpClient;
7-
importio.goodforgod.api.etherscan.model.Balance;
87
importjava.net.URI;
98
importjava.time.Duration;
109
importjava.util.concurrent.TimeUnit;
@@ -37,33 +36,6 @@ void blankKey() {
3736
() ->EtherScanAPI.builder("someKey").withApiKey(" ").withNetwork(network).build());
3837
}
3938

40-
@Test
41-
voidnoTimeoutOnRead() {
42-
Supplier<EthHttpClient>supplier = () ->newUrlEthHttpClient(Duration.ofMillis(300));
43-
EtherScanAPIapi =EtherScanAPI.builder(ApiRunner.getKey()).withNetwork(EthNetworks.MAINNET).withHttpClient(supplier)
44-
.build();
45-
Balancebalance =api.account().balance("0xF318ABc9A5a92357c4Fea8d082dade4D43e780B7");
46-
assertNotNull(balance);
47-
}
48-
49-
@Test
50-
voidnoTimeoutOnReadGroli() {
51-
Balancebalance =getApi().account().balance("0xF318ABc9A5a92357c4Fea8d082dade4D43e780B7");
52-
assertNotNull(balance);
53-
}
54-
55-
@Test
56-
voidnoTimeoutOnReadTobalala() {
57-
Balancebalance =getApi().account().balance("0xF318ABc9A5a92357c4Fea8d082dade4D43e780B7");
58-
assertNotNull(balance);
59-
}
60-
61-
@Test
62-
voidnoTimeoutUnlimitedAwait() {
63-
Balancebalance =getApi().account().balance("0xF318ABc9A5a92357c4Fea8d082dade4D43e780B7");
64-
assertNotNull(balance);
65-
}
66-
6739
@Test
6840
voidtimeout()throwsInterruptedException {
6941
TimeUnit.SECONDS.sleep(5);

‎src/test/java/io/goodforgod/api/etherscan/account/AccountTxsTests.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class AccountTxsTests extends ApiRunner {
1616
voidcorrect() {
1717
List<Tx>txs =getApi().account().txs("0x9327cb34984c3992ec1EA0eAE98Ccf80A74f95B9");
1818
assertNotNull(txs);
19-
assertEquals(5,txs.size());
19+
assertEquals(6,txs.size());
2020
assertTxs(txs);
2121
assertNotNull(txs.get(0).getTimeStamp());
2222
assertNotNull(txs.get(0).getHash());
@@ -39,7 +39,7 @@ void correct() {
3939
voidcorrectStartBlock() {
4040
List<Tx>txs =getApi().account().txs("0x9327cb34984c3992ec1EA0eAE98Ccf80A74f95B9",3892842);
4141
assertNotNull(txs);
42-
assertEquals(4,txs.size());
42+
assertEquals(5,txs.size());
4343
assertTxs(txs);
4444
}
4545

‎src/test/java/io/goodforgod/api/etherscan/proxy/ProxyBlockApiTests.java‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ void correct() {
2222
assertNotNull(proxy.getStateRoot());
2323
assertNotNull(proxy.getSize());
2424
assertNotNull(proxy.getDifficulty());
25-
assertNotNull(proxy.getTotalDifficulty());
2625
assertNotNull(proxy.getTimeStamp());
2726
assertNotNull(proxy.getMiner());
2827
assertNotNull(proxy.getNonce());

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp